Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 14

Пятнашки

10.12.2015, 16:16. Показов 1660. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для зачета в институте преподаватель дал задание реализовать пятнашки на java.
Кое что работает, но не корректно
вот код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import java.awt.Container;
import java.awt.GridLayout;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
 
 
 
import javax.swing.JMenuItem;
import java.awt.event.ActionListener;
import java.util.Random;
import java.awt.event.ActionEvent;
 
public class mainWindows extends JFrame {
    private JPanel panel = new JPanel(new GridLayout(4, 4));
    JButton[][] but =new JButton[4][4];
    int k=0;
    int[] knop = new int[16];
    int  qq=0;
    Random fullRandom =  new Random();
    public mainWindows(){
    
        super("Пятнашки");
        setBounds(200, 200, 300, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(true);
        Container container = getContentPane();
        panel.setDoubleBuffered(true);
        container.add(panel);
        fullRandom();
        JMenuBar menuBar = new JMenuBar();
        setJMenuBar(menuBar);
        JMenu mnFile = new JMenu("File");
        menuBar.add(mnFile);        
        JMenuItem mntmNewGame = new JMenuItem("New Game");
        mntmNewGame.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                button();
            }
        });
        mnFile.add(mntmNewGame);
        button();
        JMenuItem mntmExit = new JMenuItem("Exit");
        mntmExit.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                System.exit(0);
            }
        });
        mnFile.add(mntmExit);
        
    }
    public void button(){
        panel.removeAll();
        int qq = 0,ww = 0; 
        for(int i=0;i<but.length;i++){
            for(int j=0;j<but[0].length;j++){
                but[i][j]= new JButton(""+knop[k]);
                if(knop[k]==16){but[i][j].setVisible(false);qq=i;ww=j;}
                panel.add(but[i][j]);
                //but[i][j].addActionListener(new ClickListener(i,j,qq,ww));
                k=k+1;
            }
        }
        
        for(int i=0;i<but.length;i++){
            for(int j=0;j<but[0].length;j++){
                but[i][j].addActionListener(new ClickListener(i,j,qq,ww));
            }
        }
        
         panel.validate();      
    }
    public void fullRandom(){
        for (int i=0;i<knop.length;i++){ 
             knop[i]=fullRandom.nextInt(16)+1; 
             boolean w=true; 
             while(w){qq=0; 
             if(i>0){for(int j=0;j<=i-1;j++){ 
             if(knop[i]==knop[j]){ 
             knop[i]=fullRandom.nextInt(16)+1; 
             }else{qq=qq+1;} 
             } 
             } if(qq==i){w=false;} 
             }}
    }
    private class ClickListener implements ActionListener {
        int aa,ss,dd,ff;
        public ClickListener(int i, int j, int qq,int ww) {
            aa=i;ss=j;dd=qq;ff=ww;
        }
        public void actionPerformed(ActionEvent e) {
            int ii=aa; int jj=ss; int ee = dd; int rr= ff;
            //if((ii==ee&&((jj+1==rr)||(jj-1==rr)))||((jj==rr)&&(ii-1==ee)||(ii+1==ee))){
            for(int q=0;q<but.length;q++){
                for(int w=0;w<but[0].length;w++){
                    but[q][w].setVisible(true);
                    
                }
            }
            String test = e.getActionCommand();
            System.out.println(test);
            but[ii][jj].setVisible(false);
            but[ee][rr].setText(test);
            System.out.println("ii "+ii+" jj= "+jj+" ee= "+ee+" rr="+rr);
            int it = ii;
            int ij = jj;
            ii=ee;jj=rr; dd=it;ff=ij;
            
            //}
            
            
             
        }
    }
    public static void main(String[] args) {
        mainWindows frame = new mainWindows();
           frame.setVisible(true);
           frame.setSize(250,275);
           frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
 
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.12.2015, 16:16
Ответы с готовыми решениями:

Пятнашки
Всем привет! Помогите пожалуйста с игрой или наведите на определенные мысли. Для зачета по программированию мне нужно написать игру, я...

Пятнашки
Здраствуйте, я хочу написать игру пятнашки на java с использиванием коллекций и графики fx, так вот нету случайно ни у кого ...

Игра Пятнашки
Здравствуйте.В общем вот код программы,не мой,взял с нета. Как нужно сделать чтобы на пустом месте так же выводилось число(по умолчанию...

2
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
10.12.2015, 16:45
Что не работает нам сами надо понять?
1
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 14
10.12.2015, 16:56  [ТС]
Неправильно передаются названия кнопок или же сами кнопки
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.12.2015, 16:56
Помогаю со студенческими работами здесь

Игра пятнашки
Нашел в интернете код игры пятнышки стало интересно как сделать что бы пользователь сам вводил поле допустим 4х3 и т.д и сделать так же...

Давайте разберём , как эти пятнашки работают?
Давайте разберём , как эти пятнашки работают? http://www.brian-borowski.com/software/puzzle/

Решение "Пятнашки" с Acmp
Здравствуйте. Текст задачи: Пятнашки (Время: 1 сек. Память: 16 Мб Сложность: 35%) Пятнашки Пятнашки – популярная головоломка,...

Решение задачи "Пятнашки"/"Восьмёрки" методом поиска в глубину (DFS)
Может кто-то сталкивался с решение данной задачи? Не могу осмыслить алгоритм перемещения пустой клетки и сохранением состояния поля.

Игра "Пятнашки"
Здравствуйте! Есть код реализации игры &quot;Пятнашки&quot;, только весь код в одном классе с разными методами. Код должен быть основан на ООП....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru