Реферат: Игра Что?Где?Когда? на Паскале

Содержание

ВВЕДЕНИЕ. 3

1       Вариант задания. 5

2       Описание задачи. 6

3       Структуры данных. 8

4       Описание программы. 10

4.1     Общие сведения. 10

4.2     Функциональное назначение. 10

4.3     Описание логической структуры программы. 10

5       Разработка алгоритмовпрограммы. 11

6       Описание работы основногомодуля программы… 18

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

8       Руководство системногопрограммиста. 21

9       Результаты отладки программы. 22

Заключение. 23

Литература. 24


ВВЕДЕНИЕ

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

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

В персональных компьютерах фирмы IBM программистам предоставленавозможность и прямого управления устройством через их регистры. В рамках даннойкурсовой работы все операции с графическим интерфейсом будем проводить спомощью графического пакета языка программирования Turbo — Pascal. Операторыпозволяют определять характеристики драйвера, режим его работы и соответственнонастроить графический пакет, команды перехода от графического режима ктекстовому и наоборот. Основная группа графических операторов, непосредственноосуществляющих вывод графических примитивов (точек, линий, ломаных,окружностей) на экран графического дисплея. Также имеются операторы,позволяющие устанавливать параметры прорисовки графических примитивов (цвет,толщина, тип линии). Имеются операторы для определения параметров графическихпримитивов, которые могут быть установлены по умолчанию. Один и тот жеграфический приметив может быть нарисован на экране с использованием различныхустановок: цвет, тип линии, тип штриховки. Внесенные в палитру изменения немедленноотображаются на экране.

Также имеются процедуры для вывода текстовой информации иустановления параметров текстового вывода.

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

Однако эти возможности значительно усложняютпрограммирование и снижают производительность персонального компьютера. Об этомсвидетельствует простое сравнение объемов информации, с которыми приходится работатьв текстовом и графическом режимах. Так например в случае 16-ти цветного графическогорежима с разрешающей способностью 640*350 пикселов требуемый объем видеобуфераувеличивается до 112000 байт.

 Целью курсового проектирования является разработкапрограммы имитирующий игру «Что? Где? Когда?». В процессе проектирования следуетрассмотреть существующие графические примитивы, изучить работу с графическимимодулями. Основной целью использования программы является разработка ее вкачестве тренажера.


1  Вариант задания.

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

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


2  Описание задачи

Следует отметить, что построения данной задачи творческое, иформализация его достаточно затруднительна. Сначала разделим задачу построенияданных графических примитивов на 2 подзадачи, в соответствии с трактовкойсходного задания:

-   построенияБД с вопросами и их случайным  выбором и чередованием;

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

Для построения графических примитивов следует определитькоординаты центра графического экрана и его максимальные координаты по оси абсцисси по оси ординат.

/>

Рисунок 1 Графические координаты.

Следовательно координаты центра экрана и центра любогографического окна можно найти по формуле:

/>

Для организации игрового поля следует определить следующиекоординаты:

-   /> - координатыпрямоугольника- графического экрана;

-   /> - координатыцентра круглого игрового стола

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

-   0,0,X0,Y0 – рамкасо счетом игры.

В этом случае игровое поле примет вид:

/>

Рисунок 2


/>3   Структуры данных

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

Наиболее удобной формой хранения разнородных данныхявляется тип структура (запись). В языке Borland Pascal 7.0 она обозначаетсятак

<ИМЯ>: record

<ИМЯ ПОЛЯ1>: <ТИППОЛЯ1>;

<ИМЯ ПОЛЯ2>: <ТИППОЛЯ2>;

---------------------------------------------

<ИМЯ ПОЛЯ M>: <ТИП ПОЛЯ M>;

           end;

Для хранения данных в программе  используем следующие структуры данных:

Trec_TST = record

         use      : integer;

         name     : string; {_наименование вопроса}

        ans      : string; {_наименование ответа}

       end;

 Trec_YN = record

         use      : integer;

         name     : string; {_наименование вопроса}

         ans_int      : integer; { ответY/N}

        end;

 Trec_USR = record

         name    : string; {_наименование вопроса}

        psw     : string; {_наименование ответа}

        ans_am  : integer; {_наименование ответа}

       end;

Как следует из [1], поля могут быть разного типа, и все онигруппируются под именем записи. В качестве <ТИП ПОЛЯ M> любой скалярныйтип.

Для ввода таких полей как «Наименование» достаточно 255 символов. Следовательно будем использовать тип String.На основании имеющейся информации составим структуру данных:

Название  поля Примечание Name Вопрос Ans Ответ Ans_RTIME Ответ   по типу  да/нет

Таблица 1


/>4   Описаниепрограммы./>4.1   Общие сведения.

Для решения поставленной задачи, ее наиболее трудоемкойчасти –ввод и хранения   списка вопросов  тестов. Его реализуем на языкеBorland Pascal 7.0 под операционную систему MS-DOS. Данная ОС наиболее подходитдля решения подобных задач и создания программного обеспечения способногорешать задачи по работе со структурами данных и записи их в файл.

4.2   />Функциональноеназначение.

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

 Программа  должна поддерживать работу  в  2режимах:

-   ввод данных;

-   выдача результатов по  указанным запросам.

4.3   />Описание логическойструктуры программы.

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


5  Разработка алгоритмов программы.

Разделим задачу на несколько подзадач. Выделим следующиеосновные подзадачи:

-   построение главного меню;

-   организацию ввода файла с базой вопросов;

-   проведение игры;

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

Подзадачу проведение игры разделим на следующие подзадачи:

-  загрузку 12 вопросов из списка;

-  построение игрового поля;

-  проведение до 12 раундов игры;

-  подсчет очков.

Рассмотрим задачупроведения раунда игры подробнее. Она состоит из подзадач:

-   выборавопроса из 12 вопросов случайным образом;

-   выводсодержимого вопроса на экран;

-   вводответа.

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

Далее рассмотрим алгоритм работы основного меню:

/>

Рисунок 3

Затем рассмотрим алгоритм ввода новых вопросов:

/>

Рисунок 4

Рассмотри алгоритм ввода строки вопроса или ответа на негоподробнее:

/>

Рассмотрим ввод пароля:

/>

Рисунок 5

Как видно алгоритм ввода строкис информацией и ввод пароля отличается только то, что вместо введенного символаотображается «*».  Эти алгоритмы можно реализовать одной подпрограммой, введяпризнак вводимой строки (пароль /данные).

Рассмотрим алгоритм игры подробнее:

/>

Рисунок 6

Рассмотрим алгоритм регистрации подробнее:

/>


6  Описание работы основного модуля программы

Основным модулем программы является модуль <CGK.EXE >. Сначала вызываютсяподпограмма построения основного меню.

При помощи нажатия пользователем клавиши можновыбрать:

-   ввод идополнение списка вопросов;

-   просмотрзаставки с правилами игры;

-   проведенияигры;

-   регистрациянового пользователя.

При выборе пункта «Проведения игры»:

-    экранобновляется;

-   выбираютсяиз файла 12 вопросов по 1 на каждый игровой сектор. После этого случайнымобразом выбирается любой из этих вопросов и выводится внизу экрана;

-   послеввода и сравнения с правильным ответом, происходит обновление счета и заданиенового вопроса. Так продолжается до тех пор, пока счет не достигнет 6 очков состороны игрока или «Телезрителя».

При выборе пункта «Ввод и дополнение списка вопросов»:

-   программазапросит содержание запроса;

-   программазапросит правильный ответ на него;

-   программазапросит тип вопроса, является ли он интерактивным и ответ на интерактивныйвопрос.

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

При выборе пункта «Регистрация нового пользователя»программа запросит:

-   имянового пользователя;

-   парольпользователя (вводимые символы на экране не отображаются).

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

При запуске программа запросит:

-   имянового пользователя – следует ввести  “1”;

-   парольпользователя — следует ввести  “1”.

После этого выводится основное меню приложения.


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

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

a)  Дождаться появления подсказки операционной системы MS DOS следующеговида <Имя диска>:\<Каталог1>\… <Каталог N>\. b)  Набрать имя исполняемого модуля < CGK.EXE> и запустить его на выполнение. Если операционная система выдала сообщениеоб ошибке запуска графической системы, следует проверить наличие в рабочемкаталоге наличие файла EGAVGA.BGI. Без него работа программы невозможна. Начинаетсяработа с заставки, после прохождения которой программа запросит инициативупользователя. После это необходимо зарегистрироваться. Первоначальнаярегистрация — 1,1. Дальнейшие действия кратко описаны в пункте главного меню <Краткая справка>.c)  В программе предусмотрены приоритеты доступа к пункту главного меню<Ввод данных>: Имя регистрации: admin                                      Пароль: OpenAll — полный доступ;Соответственно для guest, guest или 1,1 — доступ закрыт; при вводе имени и пароля содержащихсяв файле регистрации Usr.psбудет запрошен пароль доступа OpenAll.
8  Руководство системного программиста.

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

-   IBM PCXT/AT совместимый компьютер;

-   Операционнуюсистему MS DOS v 6.22 или Windows 95 OEM;

-   ОЗУ 640Кбайт.

Программа состоит из файлов:

-   K16.EXE — содержит исполняемый модуль программы;

-   K16.PAS — содержит основной модуль программы;

–    Zast_uni.tpu– модуль заставки;

–    CGK_uni.tpu –модуль содержащий процедуры вывода главного меню, подменю ввода вопросов,регистрации, справки, и непосредственно самой игры;

-   Usr.ps – файл со списком зарегистрированных пользователей;

-   Vopr[1..11].ps– файлы со списком   вопросов соответственной цены;

-   Vopryn.ps -– файл со списком интерактивных вопросов;

EGAVGA.BGI — файл, необходимый для инициализации графическойсистемы.

Файл EGAVGA.BGI должен находиться в рабочем каталоге, наличиефайла EGAVGA.BGI проверяется при запуске программы. Без него работа программыневозможна.


9  Результаты отладки программы.

В процессе написания и отладки были обнаружены следующие ошибки:

–    отсутствие«;» после операторов (наиболее частая ошибка);

–    лишняяили недостающая операторная скобка «end»;

–    приработе в графическом режиме очень долго не работала клавиша «Backspace»из- за неправильного указания координат стирания буквы;

–    из-занесогласования глобальных переменных не работало главное меню;

–    приустановке синего цвета фона при закрашивании фигур черным цветом ониприобретали цвет фона (была исправлена путем изменения темно-серого цветапалитры на черный и закрашивании этим цветом);

–    происходилозацикливание программы из-за отсутствия условия выхода из цикла;

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


Заключение

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

К достоинствам данной программы можно отнести:

–   программа визуально полностью выполнена в графическом режиме, поэтомупредстает перед пользователем в достаточно благопристойном виде;

–   предусмотрена полная защита от ввода лишних, неразумнодлинных и т.п. данных;

–   в процессе игры пользователю предоставляется шанс проверить свои знанияпо различным областям знания;

–   реализован интуитивно-понятный интерфейс в меню и в процессе вводаданных;

–   популярность программы обеспечивает высокий спрос на подобного вида программы;

–   возможность прямо из программы дополнять список вопросов (если у васесть доступ к этому пункту меню);

–   привлекающе для пользователя реализована заставка (единственнаядоступная функция при отсутствии у пользователя имени и пароля);

–   программа выполнена в одном стиле, в результате чего пользователь неустает от переизбытка сменяющих друг друга палитр;

–   

К недостаткам данной программы можно отнести следующее:

-  низкая скорость работы;

-  ограниченный набор графических примитивов;

-  использование стандартного видеорежима VGA, с разрешением 640 на480 пикселов и палитрой в 16 цветов, вместо более высоких разрешений (800 на600 пикселов) и палитры в 256 цветов.


Литература

1. Лукач Ю. С., Сибиряков А. Е. Программно-техническиесредства персональных ЭВМ семейства IBM PC. Сведловск: Инженерно-техническое бюро.1990

2. Нортон П. Персональный компьютер фирмы IBM и операционнаясистема MS-DOS. М.: Радио и связь. 1992

3. Нортон П. Программно-аппаратная организация IBM PC. М.: Радио и связь. 1992

4. Фаронов В. В. Турбо Паскаль. М. «Нолидж» 2001

5. В.С. Новичков, Н.И. Парфилова, А.Н. Пылькин,Алгоритмические языки в техникуме: Паскаль, М. «Высшая школа» 1994

6. В.С. Новичков, О.Г. Швечкова Методические указания ккурсовой работе: «Конструирование программ», №2133, Рязань 1993

7. В.С. Новичков, О.Г. Швечкова,Н.И. Парфилова, А.Н. Пылькин, Методические указания к лабораторным работам№6-10: «Реализация циклических алгоритмов на Турбо Паскале», Рязань, 1998

еще рефераты
Еще работы по информатике, программированию