Привязка к пользовательскому интерфейсу

Теперь остается все соединить вместе.

В классе DesktopFrame создаем переменную уровня класса типа Game:

Game game;

Далее, в конструктор класса DesktopFrame добавьте (в конец) следующий код:

lbP1.setIcon(new ImageIcon(Card.cardPicArray[Card.NULL]));

lbP2.setIcon(new ImageIcon(Card.cardPicArray[Card.NULL]));

lbD1.setIcon(new ImageIcon(Card.cardPicArray[Card.NULL]));

lbD2.setIcon(new ImageIcon(Card.cardPicArray[Card.NULL]));

Этот код присваивает местам для карт на форме изображение красного креста на белом фоне.

Затем там же создаем объект game:

game = new Game(lbP1, lbP2, lbD1, lbD2);

Создаем обработчик выбора пункта меню «Новая игра». Для этого выберите этот пункт меню, нажмите на него правой клавишей мыши и в появившемся контекстном меню выберите События->Action->ActionPerformed.

В создавшемся методе-обработчике напишите:

//вызываем метод newGame

game.newGame();

//Показываем количество карт у игроков

lbCount1.setText(String.valueOf(game.getCountPlayer1()));

lbCount2.setText(String.valueOf(game.getCountPlayer2()));

//делаем кнопку «Сделать ход» активной

btStep1.setEnabled(true);

//а кнопку «ОК» неактивной

btStep2.setEnabled(false);

Аналогично создаем обработчики событий ActionPerformed (нажатие на кнопку) для кнопок btStep1 и btStep2.

В обработчике для кнопки btStep1 добавляем:

//вызываем метод stepOne объекта game

game.stepOne();

//обновляем информацию о количестве карт у пользователей

lbCount1.setText(String.valueOf(game.getCountPlayer1()));

lbCount2.setText(String.valueOf(game.getCountPlayer2()));

//делаем кнопку «Сделать ход» неактивной

btStep1.setEnabled(false);

//а кнопку «ОК» активной

btStep2.setEnabled(true);

//если возник спор, текст на кнопке btStep2 изменяем на «Спор»

if(game.isContest()) btStep2.setText("Спор");

Обработчик нажатия на кнопку btStep2, делаем самостоятельно.

В нем должно быть следующее:

  • вызываем метод game.stepTwo();
  • если спора нет, обновляем информацию о количестве карт у игроков;
  • если у кого-то из игроков закончились карты, объявляем конец игры
    для этого вводим следующий код:

JOptionPane.showMessageDialog(rootPane, "Игра окончена");

game.gameOver();

btStep1.setEnabled(false);

btStep2.setEnabled(false);

  • текст на кнопке btStep2 изменяем на «ОК»
  • делаем активными/неактивными кнопки как до начала хода

А что делать, если возник спор? Подумайте сами...

Лабораторная работа 5. Лабораторная работа
Создание игры «Тетрис».

Задание.

Написать программу, реализующую игру «Тетрис».


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: