Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012 DKA-201 Ivanov Vladimir.docx
Скачиваний:
17
Добавлен:
19.09.2019
Размер:
264.3 Кб
Скачать

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

Для демонстрации применения списков, требуется написать игру. Программа написана на языке С++. Тип списка – двунаправленный, кольцевой, с головным элементом. Тип игры выбирается произвольно, в случае данной работы - сапер.

При заполнении поля игры случайными элементами каждый из них заносится в список. Каждый элемент содержит следующие поля:

i, j – номер строки и столбца ячейки, в которой находится элемент

k – порядковый номер элемента

true/false – boolean переменная, которая говорит является ли элемент бомбой

Когда бомба на поле отмечена флагом верно, соответствующий элемент списка переносится в другой список, состоящий только из отмеченных бомб. В конце игры оба списка выводятся на экран, а потом очищаются.

Описание работы

Меню игры многоуровневое и циклическое, главное меню состоит из четырех пунктов, во втором пункте есть 4 подпункта:

- New game (Новая игра)

- Options (Опции)

- Bomb number (Количество бомб)

- Color (Выбор цвета)

- Red (Красный)

- Green (Зеленый)

-Blue (Синий)

- Difficulty (Сложность)

- 5х5

- 9х9

-Back (Возврат на уровень выше)

-Developers (Разработчики)

-Exit (Выход)

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

Начало игры происходит при выборе соответствующего пункта меню. Игра представляет собой поле размером 5 на 5 или 9 на 9, на котором случайным образом расположены бомбы. Цель игры – открывать ячейки поля и с помощью цифр вычислять расположение бомб на поле. Далее необходимо отметить их с помощью флагов, ни разу не ошибившись (не открыв ячейку с бомбой). Игра заканчивается, когда все бомбы отмечены флагами (победа) или открыта ячейка с бомбой (проигрыш).

Тестирование

Ячейка с бомбой открыта, следовательно зафиксирован проигрыш и выведены на экран списки. Все элементы остались в первом списке, так как не выполнено условие (не отмечена флагом ни одна бомба). Второй список пуст.

На игровом поле отмечены флагами две бомбы, одна ячейка с бомбой открыта. Результат: в первом списке осталось 23 элемента (20 элементов-цифр и три бомбы), во втором списке оказались две найденные бомбы.

Флагами отмечены 20 ячеек игрового поля, во второй список перенесены только элементы-бомбы.

Все бомбы отмечены флагами, условие победы выполнено.

Список материалов

Литература: Т.О. Сундукова, Г.В. Ваныкина Структуры и алгоритмы компьютерной обработки данных

Бьерн Страуструп. Язык программирования С++ 

Джесс Либерти: Освой самостоятельно C++   

http://www.vr-online.ru/content/s-dvusvjaznye-spiski-3085 - с++ , Двусвязные списки.

http://www.rsdn.ru/forum/src/2261478.1.aspx с++, списки

http://comp-science.narod.ru/Progr/Dynamic.htm - динамические структуры данных, списки

Исходный проект находится по адресу

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]