Решая мою собственную головоломку - PullRequest
2 голосов
/ 26 октября 2011

Я делал игру, и она шла нормально, но я сделал ее настолько случайной, что не могу понять, как реализовать функцию решения.

Я генерирую 36 кнопок, каждой из которых присваивается номер от 1 до 18 дважды, чтобы на доске были найдены совпадающие пары. Каждому из них при щелчке присваивается значок его номера, и если вы получаете два в правильном порядке, он показывает оба. (Игра на память)

Я хочу извлечь командное действие из моих кнопок, не нажимая их, но я сделал кнопки такими:

 generateArray();
        String letters[] = {"0", "a", "b", "c", "d", "e", "f"};        
        int count = 0;            

        for (int f=1; f < 7;f++){

            for (int i=1; i < 7;i++){
                btn[i] = new JButton(letters[f]+i);
                btn[i].setName(letters[f]+i);
                mainGameWindow.add(btn[i]);
                btn[i].addActionListener(this);
                String StringCommand = Integer.toString(randomArrayNum());
                btn[i].setActionCommand(StringCommand);
                count++;
                if(count == 18){
                    generateArray();
                }
            }
        }

Я пытался запустить массив кнопок в цикле, но он не дает мне то, что я хочу.

Как получить кнопки и их командные действия из массива кнопок?

1 Ответ

3 голосов
/ 26 октября 2011

Указатель, который вы используете для btn[], неверен, вы запоминаете только 6 кнопок!

Вместо btn[i] используйте везде btn[f * 6 + i], таким образом вы запомните ВСЕ кнопки.

Совет: вам следует начинать индекс с 0, а не с 1, поскольку индекс массивов Java основан на 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...