Создание игр для мобильных телефонов
Шрифт:
В копилку Игрока
С технической точки зрения, в игре Connect 4 вы можете выиграть всегда, вне зависимости от стратегии игрока, если делаете ход первым.
Разработка игры
Создание игры Connect 4 будет не таким сложным занятием, если вы разобьете весь процесс на отдельные этапы, например, так:
► графика и пользовательский интерфейс;
► сетевое соединение.
► игровая логика;
В следующих разделах будут подробно
Графика и пользовательский интерфейс
Как и в случае большинства игр, разработка Connect 4 начинается с разработки графики. Элементы игровой графики – это фигуры и доска. Кроме этого полезно выводить дополнительную информацию, например, информацию о статусе соединения, а также то, кому принадлежит ход. В любой момент времени строка статуса должна выводить сообщение «Waiting for player\'s move» (Ожидание хода игрока) или «Your turn» (Ваш ход).
Чтобы создать интуитивно понятный интерфейс в игре, полезно показывать, какая колонка выбрана в настоящий момент. Чтобы сделать ход, нужно выбрать колонку с помощью стрелок влево и вправо, и потом поставить фишку. Маркер колонки в игре Connect 4 – это графическая стрелка, цвет которой зависит от игрока (красная – для игрока серверного устройства, а синяя – для игрока клиентского устройства). Маркер колонки выводится непосредственно над выбранной колонкой, поэтому игрок всегда может знать, в какую колонку будет брошена фишка.
В копилку Игрока
На самом деле цветовое разделение указателей не является обязательным, поскольку эта информация игрокам не нужна. Однако с точки зрения тестирования игры, очень полезно окрасить указатели в разные цвета, чтобы понять, какое устройство является серверным, а какое клиентским.
Итак, в игре Connect 4 есть четыре основных графических элемента:
► доска;
► строка состояния;
► фишки;
► стрелка-маркер.
У вас уже есть опыт разработки игр с анимационными спрайтами, поэтому программирование интерфейса игры Connect 4 для вас не составит труда. Давайте перейдем к разработке логики игры.
Игровая логика
Самое трудное препятствие в разработке логики игры Connect 4 – определение победившего игрока. Сначала это может показаться достаточно простой задачей: просто проверить наличие четырех фишек одного цвета в ряду, столбце или диагонали, так? Это и впрямь просто для человека, однако научить делать такую проверку компьютер – не такая уж и простая задача. Подумайте о том, как можно с помощью Java-кода проверить состояние игры Connect 4.
Одно из возможных решений – отслеживать всевозможные комбинации положений, приводящих к победе. Эти комбинации можно хранить в таблице, а затем использовать для определения, насколько близок каждый из игроков к победе. Хотя такой подход может показаться не столь очевидным, реализовать его не составит труда. На самом деле, в коде игры Connect 4 вы используете «силовой прием». Уверен, что есть более элегантные способы решения задачи, но таблица с выигрышными комбинациями –
это очень простой и весьма эффективный метод с точки зрения производительности.Сеть
Как вы, несомненно, поняли, Connect 4 – это пошаговая игра. Это означает, что для ее реализации идеально подходит сетевое датаграммное соединение. Оказывается, игра Connect 4 может быть построена на тех же приемах, что и созданный в предыдущей главе мидлет Lighthouse. Но теперь нужно переправлять не символы азбуки Морзе (точек или тире), а номер столбца, в который производится ход. Единственное, что отличает игру Connect 4 от мидлета Lighthouse, – это необходимость отслеживания очередности ходов. Иначе говоря, вы не можете создать «свободное соединение», как это было в случае Lighthouse.
Подобно мидлету Lighthouse, игра Connect 4 работает в двух режимах: клиент и сервер. Режим работы определяется при первом запуске игры. Предполагается, что для игры клиент должен подсоединиться к серверу. После того как соединение клиент-сервер установлено, игроки поочередно выполняют ходы, отправляя сообщения. Проблема заключается в том, чтобы сохранить синхронизацию образов игры Connect 4. Решение этой проблемы – тщательное отслеживание очередности ходов и проверка получения игроком информации о ходе соперника.
Ниже приведены основные элементы работы сетевого соединения в игре Connect 4:
1. телефон-сервер открывает датаграммное соединение и ждет ответа клиента;
2. телефон-клиент открывает датаграммное соединение и подключается к серверу;
3. по установлению соединения игра начинается ходом клиента. Далее право первого хода будет принадлежать проигравшему;
4. клиент совершает ход и передает серверу информацию о выбранном столбце;
5. ход переходит к серверу;
6. игра длится до тех пор, пока один из игроков не одержит победу или не будет возможности для совершения новых ходов;
7. клиент и сервер завершают соединение.
Как вы видите, с точки зрения работы с сетью, игра Connect 4 – это более интересный вариант мидлета Lighthouse. Единственное значительное отличие – это управление ходами игроков и обмен информацией о выбранной колонке, а не символами азбуки Морзе. Как вы увидите дальше, код для работы с сетью игры Connect 4 во многом похож на код мидлета Lighthouse.
Разработка игры
Подобно тому, как процесс разработки игры Connect 4 был разбит на отдельные этапы, разработка программного кода так же может быть разделена. В следующих разделах вы увидите коды различных игровых компонентов.
Клиент и сервер в игре Connect 4
Большая часть кода игры Connect 4 содержится в двух классах: C4 Client и C4Server. Неудивительно, что эти два класса представляют клиента и сервер, которые обмениваются игровыми сообщениями. Оба класса реализуют интерфейс Runnable. Это означает, что каждый из них выполняется в отдельном потоке. Поскольку сервер обычно запускается первым, давайте начнем разработку класса C4Server.
Ниже приведены переменные класса C4Server:
private C4Canvas canvas;
private DatagramConnection dc;
private String address;
private boolean connected;