Пишем игру Lines с использованием MFC

Домой Наверх Следующий

Постановка задачи (Lines)

Есть пара игр, которые в своё время стали хитами как по количеству распространенных копий , так и по количеству всевозможных клонов. Это, как нетрудно догадаться, тетрис и Lines (название тетрис умышленно написано со строчной буквы, так как это слово уже давно превратилось из имени собственного в имя нарицательное). Трудно найти человека, который хоть раз в жизни не сыграл в каждую из этих игр (если, конечно, он вообще сидел за компьютером). Как и для всех более-менее популярных игр существует целый ряд клонов для них - как от самопальных, так и до довольно-таки симпатичных и профессиональных. Мы тоже в качестве упражнения (довольно-таки большого, заметим в скобках) сделаем игру Lines. Конечно, игра наша будет в большей части лишь повторением того, что уже и без нас сделали и распространили в миллионах копий по всему миру. Но это в большей части. Чтобы работа наша мы совсем была плагиатом (в смысле идеи игры), мы привнесем в неё некоторое количество усовершенствований. Например, мы добавим возможность отмены хода или возможность выбрать уровень сложности .

Но всё же нельзя полагаться, что все знакомы с Lines настолько хорошо, чтобы тут же приняться за кодирование. Поэтому правила игры всё же необходимо описать.

Итак, игра ведётся на поле девять на девять клеточек. Вы играете против компьютера. Первоначально поле почти пустое - на нём в случайных клеточках находятся только пять шариков случайных цветов (всего количество цветов равно семи) (рис. 1). Ваша задача - продержаться как можно дольше и набрать как можно больше очков. Задача компьютера - завалить Вас и в идеале не дать Вам набрать ни одного очка. Ходы делаются по очереди: Ваш ход - ход компьютера, Ваш ход - ход компьютера… Ход компьютера заключается в том, что он каждый раз выбрасывает на поле три шарика - случайных цветов и в случайные свободные места . Ваш ход заключается в перемещении любого шарика на другое свободное место. Перемещение возможно только по свободным клеточкам по горизонтали или вертикали. Если пять или более шариков одного цвета оказываются расположенными подряд по горизонтали, вертикали или диагонали, то они исчезают, и место, соответственно, освобождается. Пять или более шариков могут оказаться расположенными рядом на одной линии как в результате хода компьютера (в этом случае Вам, разумеется, никаких очков не начисляется, хотя шарики и исчезают), так и в результате Вашего хода (в этом случае Вам, во-первых, начисляется некоторое количество очков, которое зависит от количества расположенных рядом шариков, и, во-вторых, ход остаётся за Вами и не переходит к компьютеру, т. е. Вы можете передвинуть ещё один шарик, а потом возможно и ещё один (если у Вас и во второй раз окажется более пяти шариков, идущих подряд) и т. д.).

Вот такие у нас планы.

Но прежде чем приступить непосредственно к кодированию, нам надо ещё обсудить некоторый кусочек теории - так называемую архитектуру "Документ-Вид". Но об этом - в следующем разделе.

Далее

© Шмидт О.Ю.

hidden/visible

Используются технологии uCoz