Правила игры
Начальная позиция
Игра ведется на табличке 3х3, которую, при желании, можно пронумеровать латинскими буквами от A до C по горизонтали и цифрами от 1 до 3 по вертикали. У игроков вначале имеется абсолютно пустая таблица, письменная принадлежность и надежда на победу. Один из игроков условно именуется «крестики», другой «нолики».
Партию начинает играющий крестиками. Он ставит его на любую из клеточек таблицы. Затем играющий ноликами ставит свою фигуру на любое из свободных полей. Далее крестиками и ноликами по очереди заполняются свободные клетки.
Итог игры
Выигрыш фиксируется, если крестиками или ноликами полностью заполняется вертикаль, горизонталь или диагональ. Так же советуем посмотреть http://oldbk.com.
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 Требования к документированию
Сопроводительная документация на программное обеспечение отвечает ГОСТ 34.201-89 и требованиям заказчика.
3. Описание программы
3.1 Общие сведения
Программа носит название «Крестики нолики» и запускается файлом guess.exe. Программа написана на языке функционального программирования Prolog. Работает в операционной системе Windows 98 и выше.
3.2 Функциональное назначение
Игра «Крестики нолики» относятся к классу интеллектуальных, логических игр, предназначенных для тренировки логического мышления.
3.3 Используемые технические и программные средства
Для функционирования программы необходимо программные и технические средства, которые представлены в таблицы 2.
Таблица 2. Спецификация программнотехнического комплекса
3.4 Входные данные
В качестве входных данных используется «крестик» либо «нолик», которые вводятся оператором.
3.5 Выходные данные
Выходными данными являются сообщения о том куда поставил «крестик» либо «нолик» компьютер.
3.6 Вызов
Вызов программы осуществляется активацией файла guess.exe. двойным кликом мыши либо из командой строки.
3.7 Загрузка
Программа загружается с жесткого диска в консольном режиме. Программа может загружаться из других носителей, при этом файлы guess.exe. и data.dat. должны находиться в одном каталоге.
4. Руководство оператора
4.1 Назначение программы
Программа относится к разряду компьютерных игр предназначена для использования на любом персональном компьютере, оснащенном операционной системой Windows 98 и выше.
4.2 Условие выполнения программы
Для работы программы требуется следующее минимальное конфигурация аппаратных и программных средств:
1. Процессор – не ниже PentiumII
2. Объем ОЗУ – не ниже 64 Мб
3. Свободное пространство на диске – 10 Мб
4. Монитор с разрешением не менее 800x600, TrueColor
5. Клавиатура – Windows-совместимая
6. Манипулятор типа “мышь”
7. Операционная система – Windows 98/NT/2000/XP
4.3 Выполнение программы
После запуска программы появляется предложение о выборе режима «человек-машина» или «машина-человек».
4.4 Сообщения оператору
При выборе режима появляется сообщение «Кто начинает игру». Игрок должен ввести либо 1- человек, либо 0- компьютер.
Рисунок 5. Результат работы программы игры «крестики нолики» начало.
Рисунок 6. Результат работы программы игры «крестики нолики» ничья.
Заключение
Данная курсовая работа посвящена разработке игры «Крестики нолики» на языке Пролог.
В курсовой работе были проведены исследования предметной части и приведены аналоги интеллектуальных игр. Также был проведен анализ игр, который представлен в сводной таблице.
В качестве практической части была разработана в соответствии с предварительно составленным техническим заданием программа, которая реализует игру «Крестики нолики». В ходе разработки были изучены требования, предъявляемые к процессу создания ПО ГОСТ, разработки и приемки программного обеспечения. Был изучен и рассмотрен вопрос о документации программного обеспечения.
В настоящее время, связи с появлением новых информационных технологий язык программирования Пролог становится популярным.
Список литературы
1.Шихов Е. Варианты реализации искусственного интеллекта – ресурс
2. Эндрю А. Искусственный интеллект – М.: Мир, 2005.
3. Квасный Р. Искусственный интеллект – ресурс Интернета,
4. Брушлинский А.В. Возможен ли искусственный интеллект?
5. Н. Винер Н. Кибернетика – М.: Наука, электронная версия, 2006.
6. Труды третьего международного симпозиума «Интеллектуальные системы» –Псков: 2005.
ПРИЛОЖЕНИЕ
Исходный код программы игры «Крестики нолики»
Predicates
z(integer,integer,symbol)
predicates картинка
ход(integer,symbol,symbol)
блок(symbol,symbol)
чем(integer,symbol)
наоб(symbol,symbol)
goal
write("Кто ходит первым? (1 - человек, 0 - компьютер) "),
readint(Игрок),write("чем? (1 - крестиками, 0 - ноликами) "),
readint(N),чем(N,И1),наоб(И1,И2),ход(Игрок,И1,И2),!,
nl,nl; write("Правила нарушены."),nl.
clauses
z(1,1,"-"). z(1,2,"-"). z(1,3,"-"). z(2,1,"-"). z(2,2,"-").
z(2,3,"-"). z(3,1,"-"). z(3,2,"-"). z(3,3,"-").
чем(1,х). чем(0,о). наоб(х,о). наоб(о,х).
ход(0,S,_):- блок(S,S),!,картинка,write("nКомпьютер выиграл!").
ход(0,S,C):- блок(S,C),!,картинка,ход(1,C,S).
ход(0,S,C):- retract(z(2,2,"-")),!,assert(z(2,2,S)),
картинка,ход(1,C,S).
ход(0,S,C):- z(R,St,"-"), (R+St) mod 2=0,retract(z(R,St,"-")),!,
assert(z(R,St,S)),картинка,ход(1,C,S).
ход(0,S,C):- retract(z(R,St,"-")),!,assert(z(R,St,S)),
картинка,ход(1,C,S).
ход(1,C,S):- z(_,_,"-"),write("Ходи:","ncтрока (от 1 до 3) - "),
readint(R),R>0,R<4,write("cтолбец (от 1 до 3) - "),
readint(St),St>0,St<4,retract(z(R,St,"-")),!,
assert(z(R,St,C)),ход(0,S,C).
ход(_,_,_):- not(z(_,_,"-")),nl,write("Ничья!").
блок(S,C):- z(N1,St,C),z(N2,St,C),N1<>N2,
retract(z(N3,St,"-")),!,assert(z(N3,St,S));
z(R,N1,C),z(R,N2,C),N1<>N2,retract(z(R,N3,"-")),!,
assert(z(R,N3,S));
z(I,I1,C),I=I1,z(J,J1,C),J=J1,I<>J,z(K,K1,"-"),K=K1,
retract(z(K,K1,"-")),!,assert(z(K,K1,S));
z(I,J,C),I+J=4,z(N,K,C),N<>I,N+K=4,z(M,L,"-"),M+L=4,
retract(z(M,L,"-")),!,assert(z(M,L,S)).
картинка:- z(1,1,S1),z(1,2,S2),z(1,3,S3),z(2,1,S4),z(2,2,S5),
z(2,3,S6),z(3,1,S7),z(3,2,S8),z(3,3,S9),!,
write("nХод компьютера."),nl,nl,
writef("t%t%t%nt%t%t%nt%t%t%",
S1,S2,S3,S4,S5,S6,S7,S8,S9),nl,nl.
|