Написание программного кода для игры "Угадай слово"

Процесс разработки одной из разновидностей словесных игр и изучение программирования на языке Prolog. Характеристика требований к информационной системе. Лингвистическое обеспечение и требования к документированию. Используемые программные средства.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 06.01.2014
Размер файла 98,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Исследование предметной части

2. Техническое задание

2.1 Общие сведения

2.2 Назначение и цели создания

2.3 Требования к системе

2.4 Источники разработки

2.5 Лингвистическое обеспечение

2.6 Входные данные

2.7 Выходные данные

2.8 Требования к документированию

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

3.1 Общие сведения

3.2 Функциональное назначение

3.3 Используемые технические средства

3.4 Входные данные

3.5 Выходные данные

3.6 Вызов

3.7 Загрузка

3.8 Описание лингвистической структуры

4. Руководство оператора

4.1 Назначение программы

4.2 Условия выполнения программы

4.3 Выполнение программы

4.4 Сообщения оператору

Литература

Приложение

Введение

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

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

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

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

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

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

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

Язык Prolog предназначен для использования в разработках по искусственному интеллекту и в современных экспертных системах. Повышение требований к "дружественности" интерфейса и интеллектуальности программных средств обслуживает рост популярности этого языка [3].

Целью данной курсовой работы является написание программного кода для игры «Угадай слово». Эта игра относится к классу интеллектуальных словесных игр и основана на обработке базы данных, поэтому для написания программного кода был выбран язык Prolog.

1. Исследование предметной части

В игре «Угадай слово» участвуют от 2-х и более игроков. Один из игроков загадывает слово, остальные в порядке очереди отгадывают буквы, которые имеются в этом слове. При этом могут оговариваться различные условия, например, количество игроков, количество неправильных ответов, при котором игрок выбывает из игры и т. п.

У игры «Угадай слово» существуют аналоги, такие как всем известные телевизионные игры «Поле чудес» и «Что? Где? Когда?», различные виды кроссвордов.

Игра «Поле чудес» проходит в три раунда, в каждом из которых участвуют 3 игрока.

Ведущий загадывает слово (редко словосочетание), указанное на табло, а по ходу игры даёт наводящие подсказки.

Рисунок 1 Интеллектуальная игра «Поле чудес»

Игроки по очереди крутят барабан. На барабане могут выпасть сектора с различным числом очков, которые игрок получит, если угадает букву, или специальные сектора:

-- приз - игрок может выбрать: продолжить игру или выбыть из неё, но получить приз, спрятанный в чёрном ящике. Ведущий торгуется с игроком за приз, в качестве которого может оказаться любая вещь: от ключей от автомобиля до тыквы. Также вместо чёрного ящика можно взять денежный приз. (Игрок сам выбирает сумму).

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

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

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

-- банкрот -очки, набранные игроком, сгорают, а ход переходит к следующему игроку. При выпадении сектора Банкрот игроку дважды, автоматически считается сектор Приз.

-- 0 - набранные очки не сгорают, но ход передаётся другому игроку.

-- х2 - набранные игроком очки удваиваются. (Если две буквы, то х3, три х4 и т. д.)

Далее игрок называет букву русского алфавита, которая, как он считает, присутствует в загаданном слове. Если такая буква есть, то она открывается на табло, а игрок получает выпавшее количество очков (если таких букв несколько, они открываются все и очки начисляются за каждую), и может крутить барабан ещё раз. Буквы «Е» и «Ё», «И» и «Й», «Ъ» и «Ь» считаются за одну букву. При неверном ответе ход переходит к следующему игроку. Количество очков при этом нигде не отображается, а сумма, набранная победителем финала, озвучивается ведущим. При трёх подряд верно угаданных буквах игрок имеет право на две шкатулки, в одной из которых деньги, а в другой пусто, и предлагает игроку угадать, в какой из них деньги. Если он угадывает, то получает деньги, которые не могут сгореть.

В любой момент (но только во время своего хода) игрок может рискнуть и назвать слово целиком.

Игрок выбывает из игры, если взял «Приз» (или деньги за него), либо назвал неверное слово.

Если выбыло два игрока, то для третьего работает правило три результативных хода (результативным считается тот, после которого игрок должен назвать букву или сектор плюс), (не результативными ходом считается не угаданная буква, сектор «Банкрот» или сектор ноль, так если игроку по вращению барабана выпадет 0 или Банкрот, то он автоматически теряет ход), после 2-х ходов на 3-й он должен назвать слово. Если на третий ход он не называет слово, то в финале участвуют два игрока или один игрок. Если ситуация трех ходов произошла в финале, то оставшийся игрок вне зависимости от исхода финала становится победителем.

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

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

«Что? Где? Когда?» -- интеллектуальная викторина, наиболее распространённая в русскоязычной среде. Сущность игры заключается в противостоянии команды Знатоков (игровой команды из шести человек) команде Телезрителей. Знатоки должны за одну минуту при помощи мозгового штурма найти ответ на вопрос, присланный телезрителем. Как правило, игрокам задаются вопросы, ответить на которые можно с помощью общих знаний и логики. За каждый правильный ответ команда Знатоков получает одно очко, в случае неверного ответа очко начисляется команде Телезрителей. Игра ведётся до шести очков.

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

Обсуждение ведётся одну минуту. В конце обсуждения капитан команды должен назвать знатока, который даст ответ. Как правило, слово даётся автору версии.

Игра требует большой образованности и широкого кругозора в области современной науки, способности быстро, оригинально и неординарно мыслить. Из краткого описания игры можно ошибочно заключить, что для успешного ведения игры необходимо помнить множество фактов. На самом деле вопросы, требующие знания определённых фактов, обычно неинтересны, таких вопросов стараются избегать. Хороший вопрос должен содержать в себе всё необходимое для ответа, кроме того могут требоваться знания на уровне средней школы, внимательность, наблюдательность и т. п. Часто какое-то лишнее, не очень пригодное в данном контексте слово или грамматическая тонкость являются сильным намёком; такую роль играют каламбуры и т. п., так что вопросы часто непереводимы и предполагают наличие познаний в культурологии.

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

Кроссворд (англ. Crossword -- пересечение слов) или крестословица -- самая распространённая в мире игра со словами, которая состоит в разгадывании слов по определениям. К каждому слову дается текстовое определение, в описательной или вопросительной форме указывающее некое слово, являющееся ответом. Ответ вписывается в сетку кроссворда и, благодаря пересечениям с другими словами, облегчает нахождение ответов на другие определения.

Рисунок 2 Интеллектуальная игра «Кроссворд»

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

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

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

Слова-ответы должны быть существительными в именительном падеже и единственном числе. Множественное число допускается только тогда, когда оно обозначает единственный предмет (то, что в лингвистике называется pluralia tantum) или единственное число редко употребляется («родители», а не «родитель»). Во многих языках это правило не имеет смысла (так как одно слово может выполнять роль и существительного, и прилагательного, и даже глагола) и не соблюдается.

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

«Балда» -- довольно простая и распространённая настольная игра, в которой необходимо составлять слова с помощью букв, расположенных на игровом поле. Играть могут два и более человек.

Рисунок 3 Интеллектуальная игра «Балда»

Как правило, игровое поле представляет из себя таблицу из 25 клеток (5х5), в центральный горизонтальный ряд которого ставится произвольное слово из пяти букв, каждая буква которого находится в отдельной ячейке. Размеры поля, расположение слова, длину слова можно варьировать, однако необходимо, чтобы количество пустых клеток в начале игры было чётным, чтобы у обоих игроков получилось одинаковое количество слов. Для игры на бумаге необходимо начертить на листке в клеточку квадрат (обычно 5х5, но возможно 7х7 и т. д.). Далее один из игроков придумывает слово с количеством букв равным стороне квадрата и вписывает его в середину квадрата.

Во время своего хода игрок должен подставить на игровое поле букву так, чтобы она располагалась в клетке, смежной уже заполненным клеткам по горизонтали или по вертикали. Иными словами, слева, справа, сверху или снизу относительно уже заполненных клеток. (Существует также «королевский» вариант, который предусматривает установку букв по диагонали). После этого необходимо составить слово с использованием установленной буквы. При этом действуют следующие правила:

-- слово должно составляться переходом по смежным клеткам, расположенным под прямыми углами относительно друг друга (в «королевском» варианте -- в любых смежных направлениях).

-- слово должно существовать в словарях.

-- слово должно являться нарицательным именем существительным в начальной форме (единственном числе и именительном падеже или множественном числе и именительном падеже в случае слова, не употребляющегося в единственном числе).

-- в слове должна быть использована поставленная на поле буква. Иногда правила допускают прохождение по одной и той же клетке дважды, то есть, например, из букв К, О, Л можно составить слово «колокол». Например, к слову «балда» первый игрок приписывает букву «к». Получилось слово «лак».

-- чем длиннее слово вы придумаете, тем больше очков получаете. Одна буква -- одно очко.

-- игра заканчивается тогда, когда будут заполнены все клетки.

-- в каждой клетке по 1 букве, игроки ходят по очереди.

-- слова в одной игре повторяться не могут.

-- по предварительной договорённости, буквы «е» и «ё», а также иногда «и» и «й» считаются за одну и ту же букву.

-- запрещается написание слова в случае, если оно уже читается на поле, даже если оно не было составлено ни одним из играющих.

-- в королевском варианте запрещаются любые самопересечения слова.

В устном варианте:

-- играть могут два или более человек.

-- разрешается использовать только нарицательные существительные в единственном числе и именительном падеже. Жаргонные и составные слова запрещены.

-- на всю игру устанавливается определённая очерёдность ходов и количество штрафных очков, до которых ведётся игра. Начинающий называет любую букву.

-- следующий игрок либо делает ход, либо отказывается от хода. Ход заключается в добавлении своей буквы до или после данной ему буквы (буквосочетания), причём нельзя создавать сочетания, не встречающиеся в русском языке, а также сочетания, образующие законченное слово.

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

-- после присуждения штрафного очка игра продолжается с нового слова, следующий по очереди игрок называет первую букву.

Возможные модификации:

-- разрешается подставлять очередную букву не только по краям, но и внутрь текущего буквосочетания.

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

-- «Aнтибалда»: тот, кто первым завершает слово, зарабатывает выигрышное очко. В этом варианте игры можно набрать несколько очков, пока не будут исчерпаны возможности продолжения.

«Виселица» -- игра на бумаге для двух человек.

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

Согласно традиции русских лингвистических игр слово должно быть именем существительным нарицательным в именительном падеже единственного числа, либо множественного числа при отсутствии у слова формы единственного числа.

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

Рисунок 4 Интеллектуальная игра «Виселица»

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

«Скрэббл» (англ. Scrabble -- «рыться в поисках чего-либо») -- настольная игра, в которую могут играть от 2 до 4 человек, выкладывая слова из имеющихся у них букв в поле размером 15 x 15. В русскоязычной среде известна под названием «Эрудит».

Игровое поле состоит из 15х15, то есть 225 квадратов, на которые участники игры выкладывают буквы, составляя тем самым слова. В начале игры каждый игрок получает 7 случайных букв (всего их в игре 104). На середину игрового поля выкладывается первое слово, затем следующий игрок может добавить слово «на пересечение» из своих букв. Слова выкладываются либо слева направо, либо сверху вниз.

Разрешается использовать все слова приведённые в стандартном словаре языка за исключением слов, пишущихся с прописных букв, сокращений, и слов, которые пишутся через апостроф или дефис. В варианте «Скрэббл» можно использовать все падежи, склонения и времена.

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

Запрещено использовать словарь для поиска слов. Словарь разрешён только в случае проверки на существование уже выложенного слова.

Краткое описание и тип игр представлены в сводной таблице 1.

Таблица 1 Сводная таблица

№пп

Название

Тип

Краткое описание

1

«Вимселица»

игра на бумаге для двух человек

Один из игроков загадывает слово -- пишет на бумаге

2

«Скрэббл»

настольная игра

выкладываются слова из имеющихся у них букв в поле размером 15 x 15

3

«Что? Где? Когда?»

интеллектуальная викторина

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

4

«Кроссворд»

интеллектуальная игра

Игра заключается в разгадывании слов по определениям

5

«Балда»

простая и распространённая настольная игра

Необходимо составлять слова

2. Техническое задание

2.1 Общие сведения

Настоящее техническое задание распространяется на разработку и испытание компьютерной игры «Угадай слово». Данное программное обеспечение может использоваться на любом компьютере с установленной операционной системой Windows 98/2000/ХР.

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

2.2 Назначение и цели создания

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

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

2.3 Требования к системе

Информационная система должна обеспечить возможность выполнения следующих функций:

- работать под управлением ОС Windows 98 и выше;

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

Надежное функционирование программы должно быть обеспечено выполнением Заказчиком совокупности организационно-технических мероприятий, перечень которых приведен ниже:

- организацией бесперебойного питания технических средств;

- использованием лицензионного программного обеспечения;

- регулярным выполнением рекомендаций Министерства труда и социального развития РФ, изложенных в Постановлении от 23 июля 1998 г. Об утверждении межотраслевых типовых норм времени на работы по сервисному обслуживанию ПЭВМ и оргтехники и сопровождению программных средств»;

- регулярным выполнением требований ГОСТ 51188-98. Защита информации. Испытания программных средств на наличие компьютерных вирусов.

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

2.4 Источники разработки

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

2.5 Лингвистическое обеспечение

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

2.6 Входные данные

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

2.7 Выходные данные

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

2.8 Требования к документированию

Сопроводительная документация на программное обеспечение должна отвечать ГОСТ 34.201-89 и требованиям заказчика.

программирование prolog лингвистический

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

3.1 Общие сведения

Программа носит название «Угадай слово» и запускается файлом guess.exe. Программа написана на языке функционального программирования Prolog. работает в операционной системе Windows 98 и выше. Для написания программы использован компилятор Turbo Prolog 2.0.

3.2 Функциональное назначение

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

3.3 Используемые технические и программные средства

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

Таблица 2 Спецификация программно-технического комплекса

№пп

Наименование

Примечание

1

Процессор

PentiumII

2

Компилятор

Turbo Prolog 2.0

3

Операционная система

Windows 98/NT/2000/XP

4

Свободное пространство на диске

10 Мб

5

ОЗУ

64 Мб

6

HDD

4 Gb

7

Файл программы

Guess.exe

8

Файл данных программы

Data.dat

9

Руководство оператора

4 глава

10

Техническое задание

2 глава

3.4 Входные данные

В качестве входных данных используется содержимое файла data.dat, в котором прописаны угадываемые слова, а также предполагаемые буквы, которые есть в этом слове. Кроме того пользователем задается режим «машина-человек» или «человек-машина».

3.5 Выходные данные

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

3.6 Вызов

Вызов программы осуществляется активацией файла guess.exe двойным кликом мыши либо из командной строки.

3.7 Загрузка

Программа загружается жесткого диска в консольном режиме. Для правильного отображения кириллицы консоль должна работать в оконном режиме (не на весь экран). Программа может загружаться и с других носителей (USB - Flash и т. п.), при этом файлы guess.exe и data.dat должны находиться в одном каталоге.

3.8 Описание лингвистической структуры

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

4. Руководство оператора

4.1 Назначение программы

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

4.2 Условия выполнения программы

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

Процессор - не ниже PentiumII

Объем ОЗУ - не ниже 64 Мб

Свободное пространство на диске - 10 Мб

Монитор с разрешением не менее 800x600, TrueColor

Клавиатура - Windows-совместимая

Манипулятор типа “мышь”

Операционная система - Windows 98/NT/2000/XP

4.3 Выполнение программы

После запуска программы появляется предложение о выборе режима «человек-машина» или «машина-человек». Режим выбирается нажатием клавиш m («человек-машина») или с («машина-человек»), после чего программа входит в выбранный режим.

В режиме «машина-человек» появляется поле, заполненное звездочками (Рисунок 5).

Рисунок 5 Начало игры

В этом поле формируется загаданное слово по мере угадывания букв. Предполагаемые буквы вводятся в соответствующее поле обозначенное знаком «?». Если введенная буква присутствует в слове, то в соответствующем месте звездочка заменяется на угаданную букву (Рисунок 6).

Рисунок 6 Правильно угаданная буква

В режиме «человек-машина» в центре экрана появляются предполагаемые компьютером буквы в загаданном человеком слове.

Если буква присутствует в загаданном слове, то пользователь нажимает клавишу Y и клавишу N если такой буквы в слове нет.

4.4 Сообщения оператору

При выборе режима появляется сообщение «Выберите режим». В случае отсутствия указанной буквы в слове появляется сообщение «Такой буквы нет» (Рисунок 7). Когда слово полностью угадано появляется сообщение «Вы выиграли» (Рисунок 8) либо «Вы проиграли» после десяти неудачных попыток.

Рисунок 7 Неправильно угаданная буква

Рисунок 8 Конец игры

Заключение

Данная курсовая работа посвящена разработке игры «Угадывание слова» на языке Пролог.

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

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

В настоящее время, связи с появлением новых информационных технологий язык программирования Пролог становится популярным [5].

Цели, поставленные перед началом работы считаю достигнутыми, а тему, освещенную в рамках данной работы - полностью раскрытой.

Список используемой литературы

1.Братко И. Программирование на языке Пролог для искусственного интеллекта: М. Мир, 1990

2.Джордж Ф. Люгер Искусственный интеллект: М. Вильямс, 2003

3.Клоксин У. Программирование на языке Пролог: М. Мир, 1991

4.Янсон А. Турбо-Пролог в сжатом изложении: М. Мир, 1991

5.Журнал «Практика функционального программирования», Выпуск 1, 2009г.

6.http://www.mari-el.ru/mmlab/home/prolog/study_l.html

7.http://www.codenet.ru/progr/alg/ai/htm/gl4_3.php

Приложение

domains

C, W, Quit, A1, Quit1 = char

M, Count, N = integer

predicates

chr(integer, char)

rand

letter(symbol, char, integer)

compare(C,W)

comp(C,W)

quit(char)

repeat

guess

word(integer, symbol)

new_game(char)

start_new

man

right_no(char)

clauses

compare(C,W):-

comp(C,W),

cursor(X2,Y2),

Z3=Y2-1,

cursor(X2, Z3),

write(C),

N=1.

compare(C,W):- comp(C,_).

repeat.

repeat:- repeat.

quit('\027') :- write("bye").

quit(_):- fail.

right_no('y'):-

cursor(5,0),

write("You are right!").

right_no('n'):-

cursor(5,0),

write("You are not right").

letter(Z,B,Z1):-

frontchar(Z, CH, Y),

cursor(X1,Y1),

Z2=Y1+1,

cursor(4,Z2),

compare(B,CH),

letter(Y,B,Z2).

letter(Z,'\027',Z1):-!.

rand:- not(keypressed), random(9,X), rand.

new_game('c'):- guess.

new_game('m'):- man.

start_new:-

repeat,

readchar(O),

new_game(O).

guess:-

cursor(4,0),

write("**********"),

random(9,N),

repeat,

word(N,X),

str_len(X,Z4),

cursor(4,Z4),

write(" "),

cursor(10,0),

write("Press 'Esc' for exit"),

cursor(0,0),

write("Input character"),

nl,

write("?"),

readchar(A),

nl,

cursor(4,0),

letter(X,A,0),

nl,

quit(A),!.

man:-

repeat,

clearwindow,

random(26,X),

chr(X,Y),

cursor(0,0),

write(Y),

nl,

nl,

write("Am I right?"),

nl,

readchar(Z),

right_no(Z),

nl,

quit(Z),!.

comp('a','a'). comp('b','b'). comp('c','c'). comp('d','d').

comp('e','e'). comp('f','f'). comp('g','g'). comp('h','h').

comp('i','i'). comp('j','j'). comp('k','k'). comp('l','l').

comp('m','m'). comp('n','n'). comp('o','o'). comp('p','p').

comp('q','q'). comp('r','r'). comp('s','s'). comp('t','t').

comp('u','u'). comp('v','v'). comp('w','w'). comp('x','x').

comp('y','y'). comp('z','z').

word(0,abracadabra). word(1,anaconda).

word(2,crocodile). word(3,minimum).

word(4,maximum). word(5,middle).

word(6,prolog). word(7,pascal).

word(8,modem). word(9,computer).

chr(1,'a'). chr(2,'b'). chr(3,'c'). chr(4,'d').

chr(5,'e'). chr(6,'f'). chr(7,'g'). chr(8,'h').

chr(9,'i'). chr(10,'j'). chr(11,'k'). chr(12,'l').

chr(13,'m'). chr(14,'n'). chr(15,'o'). chr(16,'p').

chr(17,'q'). chr(18,'r'). chr(19,'s'). chr(20,'t').

chr(21,'u'). chr(22,'v'). chr(23,'w'). chr(24,'x').

chr(25,'y'). chr(26,'z').

goal

random(9,N),

clearwindow,

random(9,N1),

write("Choose mode: computer-man(c) or man-computer(m)"),

random(9,N2),

start_new.

Размещено на Allbest.ru


Подобные документы

  • Характеристика основных функций и состава программного обеспечения. Понятие компьютерной программы и операционной системы. Система и языки программирования. Утилиты - программные средства контроля ПК, используемые для проверки его работоспособности.

    презентация [481,3 K], добавлен 29.11.2012

  • Основные этапы разработки программного обеспечения (пакета программ), анализ требований к системе. Метод пошаговой детализации. Языки программирования низкого уровня и высокого уровня (императивные, объектно-ориентированные, функциональные, логические).

    презентация [41,4 K], добавлен 13.10.2013

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

    курсовая работа [19,0 K], добавлен 24.05.2012

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

    отчет по практике [203,8 K], добавлен 12.04.2015

  • Многообразие мини-игр и возможности языка Visual basic 6.0 для их реализации. Понятие мини-игр и их классификация. Элементы управления мини-игры "Реверси". Разработка прикладной программы. Создание игрового интерфейса. Написание программного кода.

    курсовая работа [1,5 M], добавлен 03.06.2014

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

    дипломная работа [2,4 M], добавлен 24.08.2016

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

    курсовая работа [42,8 K], добавлен 25.02.2012

  • Требования к информационной системе интернет-магазина на базе "1С:Предприятие 8". Выбор средства для разработки. Реализация и тестирование программного средства. Редактирование базы данных. Оценка функционального качества программного средства.

    курсовая работа [1,7 M], добавлен 07.09.2012

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

    реферат [87,7 K], добавлен 07.03.2009

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

    контрольная работа [205,3 K], добавлен 23.07.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.