Как написать игру: подходы, решения



Каждый программист, играя в компьютерную игру, невольно оценивает ее с точки зрения того, как бы он сам смог реализовать подобный игровой алгоритм. Чаще всего дальше мечтаний дело не идет, так как «игроделы» довольно неохотно делятся своими секретами. Нет, есть, конечно, исходники игр, открытые игровые движки и прочее, но кто бы еще помог в них разобраться? Начинающим обычно предлагают писать самые простые игры, так что не будем отходить от этой традиции, рассмотрев несколько игр вкратце.

«Быки и коровы». Здесь нужно угадать 4-х значное число меньше чем за 10 попыток. Цифры в числе не повторяются, ноль не используется. Если цифра стоит на своем месте, то это «бык», если есть, но на чужом месте – «корова». Итак, цель игры в логическом подборе четырех «быков». Алгоритм простой: в цикле вычисляете случайное число из допустимых (rnd(1)*9+1), затем переносите цифру в строку, если там ее нет. Если есть, продолжаете вычислять дальше, пока не получите строку из четырех цифр. Далее просто запрашиваете вариант пользователя, сравниваете пары цифр и уменьшаете число попыток.

Игры типа «Тетрис». Правила все знают. Стакан представляет собой двумерный массив. Очередная фигурка появляется случайным образом вверху. Затем нужно реализовать следующие подпрограммы проверки:

1) Проверка самой нижней координаты на столкновение с заполненным элементом массива.
2) Ожидание по таймеру, которое уменьшается с каждым уровнем.
3) Очистка старых координат фигурки, прорисовка заново с учетом возможного поворота и уменьшением верхней координаты.
4) Проверка заполнения строк внизу. Если есть заполнение, массив сдвигается, очищается его часть.

Игры типа «Сапер». Большинство подобных игр используют тот же двумерный массив. Сначала в нем случайным образом расставляются мины. Уже на этом этапе можно заполнить массив нулями. Когда в координату попадает мина, то все 8 ячеек массива вокруг него должны увеличиться на единицу. Это делать проще, чем вычислять число мин рядом после очередного хода.

Игры типа «Шарики». Она похожа на Сапера организацией массива, и самое сложное здесь – вычисление алгоритма поиска пути шарика. Есть несколько интересных алгоритмов, среди которых выделяется алгоритм Эйлера для поиска кратчайшего пути. Советуем изучить его. Суть его в создании графа и таблиц инцидентности, но пусть эти термины вас не пугают. Зато вы наловчитесь после этого манипулировать графами, а это в жизни может пригодиться.

Александр Шаповалов

«Точка зрения, будто верующий более счастлив, чем атеист, столь же абсурдна, как распространенное убеждение, что пьяный счастливее трезвого»

Шоу Бернард

Файлы

Закат и падение Римской империи

Язык тела: природа и культура

Слепой часовщик

Мир, полный демонов. Наука - как свеча во тьме