Текущая страница - Пятнашки - Форум



Как Вы нашли сайт?

Всего ответов - 145

Rambler's Top100

Баннер нашего сайта

Форум программистов

Создание игр
на Adobe Flash

Создание игр на Adobe Flash

Блог Виталия Серова
Виталий Серов - БЛОГ

http://delphi-guru.pp.ua
Уроки Delphi



Добро пожаловать на сайт по игростроению
Пожалуйста pарегистрируйтесь, для того чтобы отписываться в темах

[ Последние сообщения · Форумчане · Правила форума · Поиск ]
  • Страница 1 из 1
  • 1
Пятнашки
Чебурашка Дата: Воскресенье, 08.08.2010, 10:47 | Сообщение # 1
Специалист
Группа: Администраторы
Сообщений: 221
Репутация: 6
Статус: Offline
В статье я напишу рассказ о том, как сделать простенькую игрушку - пятнашки. Пользоваться я буду готовым материалом, найденном в Интернете (ссылка на скачивание). Скачать проект можно по ссылке.

Итак начнём-с...

Первым делом выполняется обработка события OnCreate формы. Автор игры задаёт размеры окна, стиль и размер текста, рисуемого на канве. Далее происходит вызов процедуры NewGame (на этом заканчивается обработка события).

Переходим непосредственно к проуедуре NewGame.


Автор описывает два массива размером 4х4, в одном из которых составлено исходное (правильное) положение всех фишек. В начале процедуры происходит заполнение поля исходным положением фишек. Почему автор заполняет поле за пределами описанного диапазона мне не понятно :). В описанные массивы даный диапазон не влезает и в принципе он не нужен. Поэтому можно оставить массивы от 1 до h/w. Далее следует вызов двух процедур "Миксер" и "Показать поле".

Процедура Миксе/Mixer


Определяем пустую клетку, как нижняя правая. Подключаем процедуру Randomize. И начинаем передвигать наши фишки 150 раз. smile Количество сдвигов вы можете определить самостоятельно. "Рандомно" (случайно) выбираем фишку для сдвига, и если она входит в диапазон нашего поля, то мы её меняем с пустой клеткой. Пустой клетке присваиваем новые координаты. И в конце концов запоминаем координаты пустой клетки.

Процедура ShowPole/Показать поле

Полурусское, полуанглийское название говорит само за себя =).
На канве рисуем сетку поля игры. Далее определяя координаты вывода, выводим перемешанные фишки.

На этом все приготовления для игры заканчиваются. Начинается игра =).
Пользователь делает щелчок по форме и происходит обработка события MouseDown.

В нём определяем координаты нажатой фишки. Если щелчок произошел по сетке, то выбирается правая или нижняя фишка от сетки. Вызываем процедуру Move для сдвига.

Происходит простенькая проверка обмена. Если обмен невозможен, то выходим из процедуры. Пользователю при этом можно вывести сообщение, что ход невозможен, но автор решил этого не делать =).
Двигаем фишку в массиве. Запоминаем пустую клетку. И вызываем процедуру ShowPole. Но вместо того, чтобы выводить всю сетку и всё поле заново, можно выводить только две фишки!!!
Далее проверяем расположены ли фишки в правильном порядке, вызывая Функцию Finish. Если игра закончена, то спрашиваем у пользователя хочет ли он играть ещё раз. Здесь придётся добавить (в случае согласия) вызов процедуры NewGame.

Функция Finish/Конец?

В процедурке пробегаем по полю и смотрим, в правильном порядке расположены фишки или нет. Самостоятельно пробегаем по полю, то есть сами меняем положение поля. Хотя можно сделать полегче и побыстрее!

На этом моя статья заканчивается smile Жду Ваших вопросов и комментариев.

Dr.Cheburator & http://programmersclub.ru © 08.08.2010, 12:45
Копирование элементов статьи без ссылки на автора - запрещено!
Flier Дата: Воскресенье, 08.08.2010, 12:23 | Сообщение # 2
VIP
Группа: Администраторы
Сообщений: 296
Репутация: 7
Статус: Offline
круто, прочту
Чебурашка Дата: Воскресенье, 08.08.2010, 12:39 | Сообщение # 3
Специалист
Группа: Администраторы
Сообщений: 221
Репутация: 6
Статус: Offline
Я сам запланировал сделать пятнашки smile более удобные в использовании и красивее smile
Так что, примерно в этом месяце выложу готовую игру.
Flier Дата: Воскресенье, 08.08.2010, 20:37 | Сообщение # 4
VIP
Группа: Администраторы
Сообщений: 296
Репутация: 7
Статус: Offline
ок, ждемс)))
  • Страница 1 из 1
  • 1
Поиск:
Game Builder © 2010
Сайт управляется системой uCoz