Java

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! помогите пожалуйста найти ошибку, вроде бы правильно всё, но программа не работает
import java.awt.*;
 import java.awt.event.*;
 //import java util.*;
 public class Primer1 extends Frame {
 
        int k; String ss;
        int x[]=new int[16]; //массив случайных чисел от 1 до 15
        int y[][]=new int[4][4]; // массив случайных чисел в матричной форме
        Button n[][]=new Button[4][4];
        GridTest1(){
               setLayout(new GridLayout(4,4,5,5));
               massiv();
               for(int i=0;i<4;i++)
                  for(int j=0;j<4;j++) {
                     n[i][j]=new Button(""+x[j+4*i]);
                     add(n[i][j]); //добавление кнопок с номерами из матрицы y(4*4)
                  }
                setSize(200,200);
                setVisible(true);
                //n[3][3].setVisible(false);
         }
               //Формирование массива случайных чисел
               void massiv(){
                  int c;k=0;
                  x[0]=(int) (15*Math.random()+1);
                  for(int i=1;i<15;i++) {
                     while(true) {
                         k=0;
                         c=(int) (15*Math.random()+1);
                         for(int j=0;j<i;j++)
                             if(c==x[j]) {k=1;break;}
                         if(k==0) {break;}
                         }
                      x[i]=c;
                      }
                      k=0;
                      for(int i=0;i<4;i++)
                          for(int j=0;j<4;j++)
                              y[i][j]=x[k++];
                 }
 
                  public static void main(String[] args) {
                       Frame f=new GridTest1();
                       f.addWindowListener(new WindowAdapter(){
                           public void windowClosing (WindowEvent ev){
                           System.exit(0);
                       }});
                }

                                public boolean action (Event evt,Object obj){
                                      for(int i=0;i<4;i++){
                                           for(int j=0;j<4;j++)
                                              if (evt.target ==n[i][j]){
                                                 if(i<3) { 
                                                   ss=n[i+1][j].getLabel(); 
                                                   if(Integer.parseInt (ss)==0) {
                                                       
                                                        k=y[i][j];y[i][j]=y[i+1][j];y[i+1][j]=k;
                                                        n[i][j].setLabel(""+y[i][j]);
                                                        n[i][j].setLabel(""+y[i+1][j]); 
                                                      n[i][j].setVilable(false);
                                                      n[i][j].setVilable(true);                                                 }
 
                                          }
 
                                    }
                                    return false;
                                }
 
         }

Решение задачи: «Java»

textual
Листинг программы
import java.awt.*;
import java.awt.event.*;
 
/**
 * Created by KOS on 08.12.2017.
 */
public class Primer1 extends Frame {
    int k;
    String ss;
    int x[] = new int[16]; //массив случайных чисел от 1 до 15
    int y[][] = new int[4][4]; // массив случайных чисел в матричной форме
    Button n[][] = new Button[4][4];
 
    Primer1() {
        setLayout(new GridLayout(4, 4, 5, 5));
        massiv();
        for (int i = 0; i < 4; i++)
            for (int j = 0; j < 4; j++) {
                n[i][j] = new Button("" + x[j + 4 * i]);
                add(n[i][j]); //добавление кнопок с номерами из матрицы y(4*4)
            }
        setSize(200, 200);
        setVisible(true);
        //n[3][3].setVisible(false);
        //Формирование массива случайных чисел
 
 
    }
    void massiv(){
        int c;k=0;
        x[0]=(int) (15*Math.random()+1);
        for(int i=1;i<15;i++) {
            while(true) {
                k=0;
                c=(int) (15*Math.random()+1);
                for(int j=0;j<i;j++)
                    if(c==x[j]) {k=1;break;}
                if(k==0) {break;}
            }
            x[i]=c;
        }
        k=0;
        for(int i=0;i<4;i++)
            for(int j=0;j<4;j++)
                y[i][j]=x[k++];
    }
 
 
 
    public static void main(String[] args) {
        Frame f=new Primer1();
        f.addWindowListener(new WindowAdapter(){
            public void windowClosing (WindowEvent ev){
                System.exit(0);
            }});
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5