Смекни!
smekni.com

Игра "Пятнашки" (стр. 1 из 6)

Содержание

1. Введение 3

2. Назначение и область применения 4

3. Цели и задачи 4

4. Используемые методы 5

5. Описание алгоритма программы 8

6. Описание входных и выводных данных 24

7. Программное и аппаратное обеспечение программы 24

8. Руководство пользователя 25

9. Заключение 30

10. Список литературы 31

Приложение 1 Листинг программы 32

Приложение 2 Результаты работы. 46


1. Введение

После изучения предмета Основы алгоритмизации и программирования, необходимо выполнить курсовой проект.

После изучение предложенных тем выбрана очень популярная и всем известная игра в «пятнашки».

При изучении предметной области, выяснилось, что «пятнашки» на первый взгляд простая игра, но для ее реализации необходимо обратится практически ко всем разделам программирования в среде Турбо Паскаль.

Суть самой игры заключается в следующем:

- Игрок на экране видит табло, которое разбито на 16 клеток. В пятнадцати из них расположены неповторяющиеся цифры, в случайном порядке от 1 до 15 и одна пустая.

В общем виде данное табло можно представить в виде таблицы 1:

Таблица 1 – Образец табло.

5 7 3 8
15 1 13 2
14 10 6 4
9 11 12

- Игрок должен перемещать по одной клетки с цифрой на пустое место.

- Так происходит до тех пор, пока пользователь не выстроит последовательную комбинацию цифр (Таблица 2), и лишь после этого игрок считается победителем.


Таблица 2 – Правильное заполнение табло.

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15

2. Назначение и область применения

Данная программа является, компьютерной версии знаменитой игры «пятнашки». Это логически не сложная и достаточно простая в управлении и использовании программа. Применения данной программы возможны везде, ведь в любой работе нужен отдых, а данная простенькая игра поможет расслабиться и отвлечься от повседневных дел.


3. Цели и задачи.

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

В курсовой работе используются основные возможности языка в работе со структурами, файлами, графикой.

В данной игре предполагалось создание:

a. интуитивно понятного интерфейса;

b. скромного, но графически точного табло, где осуществляется перемещение цифр;

c. удобного для пользователя управления;

d. доступного для понимания руководства пользователя;

e. списка лучших игроков, т.е. тех игроков, которые за наименьшее количество ходов собрали требуемую комбинацию цифр.

f. Возможность в любой момент покинуть игру.

В данной программе использовались следующие разделы Турбо Паскаль:

- Управляющие структуры (условие, циклы);

- Массивы (одномерные, двумерные);

- Символы и строки;

- Процедуры;

- Работа с файлами;

- Работа с графическими возможностями.

В итоги получилась программа – игра, в которой использовались основные возможности среды Турбо Паскаль.


4. Используемые методы

Программа выполнена в среде программирования Турбо Паскаль. Сама программа - приложение Windows. Для вывода графических объектов используются модуль Graph. Программой обрабатываются события от нажатия клавиш на клавиатуре, выбора соответствующих пунктов меню, а также считывание количества ходов для ведение статистики лучших игроков.

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

- Основные процедуры, т.е. те процедуры, которые отвечают за саму игру и взаимодействие с пользователем во время игры;

- Вспомогательные процедуры. Это те процедуры, которые дополняют данное приложение дополнительными и очень полезными функциями;

- Основная программа.

К основным процедурам относятся:

- Tablo;

- Vivod;

- Napravlenie;

- Poisk;

- Zamena;

- Proverka;

- Mesto;

- Game15

К вспомогательным процедурам относится:

- ReadFile;

- WriteFile;

- Bonus.

Алгоритм всей программы описан в пункте 5, а в данном разделе опишем основные приемы используемых процедур.

4.1 Основные процедуры.

4.1.1 procedureTablo;

Данная процедура формирует табло, заполненное случайными, неповторяющимися цифрами от 1 до 15 и одной пустой клеткой. Процедура реализована с использованием двух массивов: одномерный и двумерный.

Одномерный массив с 16 целыми числами заполняется случайным образом, причем, учитывается, чтобы цифры в данном массиве не повторялись.

Каждой цифре из одномерного массива присваивается, аналогичный ей строковый элемент и вводится в двумерный массив. К примеру, цифре 5, присваивается строковый элемент ‘5 ‘. Исключение составляет цифра 16, ей присваивается пробел.

4.1.2 procedure Vivod;

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

4.1.3 procedureNapravlenie;

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


4.1.4 ProcedurePoisk;

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

4.1.5 procedureZamena;

Программа в зависимости от выбора направления осуществляет перестановку элементов в двумерном массиве.

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

4.1.6 procedure proverka;

После совершения перестановки цифр, а иными словами после очередного хода, программа сравнивает расстановку цифр в двумерной матрицы. Если текущая комбинация является правильной, тогда игрок считается победителем.

4.1.7 procedure Mesto;

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


4.1.8 procedureGame15;

Эта процедура является основной. В ней подключается графический модуль и происходит основной процесс игры.

Игра будет продолжаться до тех пор, пока не будет разложен правильный расклад или до тех пор пока пользователь не прервет игру при помощи клавиши ESC.

4.2 Вспомогательные процедуры.

4.2.2 procedure readFile;

После ввода имени пользователя (пункт 4.1.7), информация добавляется в файл res.txt

4.2.3 procedurewriteFile;

Данная процедура считывает информацию с файла res.txt и выводит на экран полученные данные, а именно игроков, которые за наименьшее количество ходов разложили требуемую комбинацию.

4.2.4 procedurebonus;

Маленькая хитрость данной программы. Она предназначена для разработчика программы и для преподавателя проверяющего правильность написания игры. Чтобы, при проверке, преподавателю не требовалась проходить всю игру, достаточно нажать клавишу End на клавиатуре и расклад почти разолжется. Также эта процедура была бы очень полезна разработчику, для отладки и тестирования программы.


4.3 Основная программа.

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

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


5. Описание алгоритма программы

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

Основной алгоритм программы разбит на четыре раздела (схема 1):

- Описание;

- Управление;

- Игра;

- Результаты.



Схема 1 - Основной алгоритм программы

5.1 Раздел Описание.

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

Раздел реализован при помощи процедуры Avtor. Данная процедура считывает информацию из файла fhelp1.txt и выводит считанную информацию на экран, для ознакомления пользователю.

Общий алгоритм данного раздела заключается в следующем (Схема 2):