Читаем Создание игр для мобильных телефонов полностью

Результат используется для определения ничьей. Ничья возникает, если все ячейки на доске заняты, а ни один из игроков не одержал победу.

Другая константа класса – это Empty, она соответствует свободному пространству на доске. Каждая ячейка на доске может содержать число 0, 1 или значение константы Empty – 2.

Возвращаясь к приведенному выше списку констант, переменная map – это трехмерный массив булевского типа, который содержит таблицу выигрышных положений. Чтобы лучше понять, как устроен массив map, представьте его двумерным массивом размером, равным размеру игровой доски. А теперь добавьте к нему третье измерение, присоединив к каждой ячейке массив выигрышных положений.

Каждая отдельная выигрышная комбинация в игре имеет свое уникальное положение в массиве (длинна массива выигрышных положений равна значению переменной winPlaces). Каждая ячейка массива содержит значение true или false в зависимости от того, лежит ли ячейка на пересечении выигрышной комбинации.

Давайте рассмотрим небольшой пример, чтобы понять, как работает массив map. Взгляните на верхний левый угол игровой доски (рис. 15.1). Давайте назовем это положение (0,0). Теперь представьте различные выигрышные комбинации, включающие это положение. Сдаетесь? Посмотрите на рис. 15.4.

Как вы видите, в положении (0,0) на доске имеет три выигрышных комбинации. Следовательно, массив для положения (0,0) отразит эти комбинации, установив значения соответствующих ячеек true, при этом значения во всех остальных ячейках будут false. Если выигрышные положения, показанные на рис. 15.4, будут в положениях 11–13, массив map инициализировался бы так:

map[0][0][9] = false;

map[0][0][10] = false;

map[0][0][11] = true;

map[0][0][12] = true;

map[0][0][13] = true;

map[0][0][14] = false;

map[0][0][15] = false;

После того как массив map создан, вы можете использовать его для проверки выигрышных комбинаций и определить, кто из игроков победил.

Переменная board – это целочисленный массив размером 7 6, он отражает состояние игры. Каждая ячейка может содержать одно из значений: 0, 1 (в зависимости от игрока) или Empty.

Переменная score – это двумерный целочисленный массив, хранящий счет игры. Основной массив в переменной score содержит массив для каждого из игроков длиной winPlaces. Эти массивы содержат информацию, описывающую, насколько близок каждый из игроков к потенциальной выигрышной комбинации, а также количество фишек, входящих в последовательность. Этот массив используется так: если в выигрышной комбинации нет ни одной фишки, то значение соответствующей ячейки массива равно 0. Если в комбинации появляются фишки, то значение ячейки массива становится равным 2 в степени m, где m – число фишек. Если в ячейке массива появляется число 16, это означает, что игрок одержал победу.

...

Совет Разработчику

Не важно полностью понимать, как класс C4State подсчитывает очки и определяет победителя. Основная цель этого примера – продемонстрировать работу сетевой мобильной игры. Хитрый код подсчета очков – это неотъемлемая часть кода, помогающая определить победителя в игре Connect 4, но она не столь важна для сетевых аспектов мидлета.

Перейти на страницу:

Похожие книги

1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных
Язык программирования C++. Пятое издание
Язык программирования C++. Пятое издание

Лучшее руководство по программированию и справочник по языку, полностью пересмотренное и обновленное под стандарт С++11!Р'С‹ держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под стандарт С++11. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. Р' соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать РёС… наилучшие СЃРїРѕСЃРѕР±С‹ применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.Стенли Р'. Липпман работал старшим консультантом в Jet Propulsion Laboratory, архитектором РіСЂСѓРїРїС‹ Visual С++ корпорации Microsoft, техническим сотрудником Bell Laboratories и главным инженером- программистом по анимации в кинокомпаниях Disney, DreamWorks, Pixar и PDI.Р–РѕР·и Лажойе, работающий ныне в кинокомпании Pixar, был членом канадской РіСЂСѓРїРїС‹ разработчиков компилятора C/C++ корпорации IBM, а также возглавлял рабочую группу базового языка С++ в составе международной организации по стандартизации ANSI/ISO.Барбара Э. Му имеет почти тридцатилетний опыт программирования. На протяжении пятнадцати лет она работала в компании AT&T, сотрудничая с Бьярне Страуструпом, автором языка С++, и несколько лет руководила РіСЂСѓРїРїРѕР№ разработчиков С++.• Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования• Р

Барбара Э. Му , Жози Лажойе , Стенли Б. Липпман

Программирование, программы, базы данных