русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Алгоритм для реализации игры Змейка


Дата добавления: 2015-06-12; просмотров: 12449; Нарушение авторских прав


Принципы создания двумерных игр мы изучали на примере создания игры "Новогодний дождь".

Все эти принципы подходят и для создания игр Змейка, Морской бой,Пасьянс-Косынка.

Приемы загрузки изображений, работа с таймером, обработка событий от клавиатуры, отрисовка игрового поля, работа с графикой –всё это было продемонстрировано в игре "Новогодний дождь". Построение интерфейса пользователя, размещение кнопок и надписей, обработка событий при нажатии кнопок –всё это было изучено при создании приложений под Windows с построением интерфейса пользователя. Другими словами, все технические моменты, необходимые вам,можно найти в методической литературе по курсу Java.

Более сложная часть–это реализация алгоритма игры Змейка. Алгоритм–это точный план или схема действий, которая может привести к нужному результату. Если программист знает алгоритм, то ему остается запрограммировать его и отладить программный код. Для решения одной задачи может существовать несколько алгоритмов.Рассмотрим один из них. Для хранения информации об игровом поле можно воспользоваться двумерным массивом целых чисел. Размер игрового поля 30x30, поэтому размерность массива будет также 30x30.

//Двумерный массив для хранения игрового поля

int[][] mas;

// Создаем новый массив 30x30

mas = new int[30][30];

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

//Заполняем весь массив нулями

for (int i = 0; i < 30; i++) {

for (int j = 0; j < 30; j++) {

mas[i][j] = 0;

}

}

Клетку с объектом для поедания змейкой обозначим в массиве числом минус один: -1 (см. рис.17):

Внимание!!!Цифры на игровом поле показаны с целью демонстрации значений в двумерном массиве. Такой подход можно использовать при отладке

Рис. 17



Голову змейки обозначим в массиве числом один: 1 (см. рис. 18). Каждую последующую клетку от головы змейки будем обозначать по возрастанию числа на единицу. Получится так, что клетки змейки будут обозначены числами: 1,2,3,4,5 и т.д.(см. рис. 18), где единица –это голова змейки. При увеличении длины змейки будет добавляться еще одно число, которое на единицу больше числа в хвосте змейки.

Рис. 18

При поедании объекта змейкой на (рис. 18) к змейке добавится число пять:5, которое станет новым хвостом змейки. Таким образом,рост змейки будет происходить за счет увеличения хвоста.

Теоретически можно голову змейки обозначить числом один:1, а клетки туловища числом два: 2. Но возникнет проблема, когда змейка будет согнута полностью пополам, и две её части будут полностью прилегать друг к другу и мы не сможем определить где хвост змейки (см. рис. 19).

Рис. 19

Поэтому такой метод не подходит! В процессе отрисовки игрового поля мы будем по числу определять, что именно располагается в данной клетке.Отрисовщик будет постоянно перерисовывать игровое поле на основании данных массива.Другими словами, нам предстоит перемещать числа в двумерном массиве. Тогда игровое поле начнет менять свой внешний вид и программирование игры сведется к изменению расположения чисел в массиве.Последний сложный вопрос, который заслуживает внимания –это проблема перемещения тела змейки по игровому полю.При этом тело змейки должно проходить по пути прохождения головы змейки (см. рис. 20).

Рис. 20

Как запоминать путь движения змейки? Этот путь каждый раз изменяется и может иметь различный вид. Если тщательно подумать над этим вопросом, то можно увидеть совершенно простой выход из этой ситуации.Перемещение змейки представляет собой перемещение ее головы в одном из четырех направлений, которое на данный момент является текущим и перемещение ее хвоста.Таким образом, для перемещения змейки следует выполнять две операции:

1. Перемещать голову змейки в нужном направлении.

2. Удалять хвост змейки. Удаление хвоста равносильно записи нулевого значения в элемент массива, где находилось число, отвечающее за хвост змейки.

При таком подходе тело змейки будет автоматически проходить по нужному пути. Это и есть пример алгоритма(схемы, плана действий) для решения определенной задачи. Пока неизвестен алгоритм –бесполезно писать программный код!

Внимание!!!Далее предстоит самостоятельное создание игры Змейка на основе полученного задания и вспомогательной информации.



<== предыдущая лекция | следующая лекция ==>
Разделение задания для трех уровней сложности | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.771 сек.