Разработка программы для игры в морской бой с игровым полем 10х10 позиций, страница 3

mybuild(integer)                               - заполнение нашего поля 

mybuild_empty1(integer)                 - рекурсивное заполнение пустыми клетками

mybuild_empty2(integer,integer)    

myadd_one(integer,integer)              - добавление однопалубного корабля

myadd_two(integer,integer,integer)   - добавление двухпалубного корабля

myadd_three(integer,integer,integer) - добавление трехпалубного корабля

myadd_four(integer,integer,integer)  - добавление четырехпалубного корабля

mychange1(list,list,integer)               - изменение состояний клеток

mychange(integer,integer,type)

mycmp(integer,integer,type)            - сравнение с заданным значением

myhod                                                - наш ход      

hod_my(integer,integer)                   - ход по заданным координатам

mykill                                                - возможная смерть корабля противника

Общие предикаты

win                                                      -  рекурсивный вызов ходов до победы

axis                                                    -  вывод координатной сетки

del1                                                    -  очистка баз данных

del2

start                                                    -  первоначальный запуск 

menu                                                   -  меню

Дополнительные предикаты

min(integer,integer,integer)              - поиск минимума

max(integer,integer,integer)             - поиск максимума

rand(integer,integer)                         - генерация случайного

Описание пользовательского интерфейса

Игра происходит в отдельном окне, слева располагается поле противника, справа- наше поле. Координаты X  и Y обоих полей изменяются в пределах от 0 до 9. Для удобства на экран выводятся координатные сетки полей. При выводе поля противника на экран «не стрелянные клетки » обозначаются символом ‘*’, пустые  - ‘-’,  раненые и убитые корабли - символом  ‘X’. При выводе на экран нашего поля «не стреляный» корабль обозначается символом ‘0’ , пустая «не стреляная » клетка – символом ‘*’, «стреляная» клетка  - символом  ‘-’, убитый и раненый корабль - символом ‘X’.

Первоначально игроку представляется выбор: заполнить свое поле автоматически или с клавиатуры. По окончании игры предоставляется возможность еще раз сыграть или выйти из программы (вводом 0 или 1).

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

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

2.         Доорс Дж., Рейблейн А., Вадера С. Пролог – язык программирования будущего / М.: Финансы и статистика, 1990 – 144 с.

Приложение: исходный текст программы

DOMAINS

position=pole(integer, integer)

type=integer                       % состояние клетки

kletka=kletka(position,type)

list=integer*

PREDICATES

print                              % вывод поля ЭВМ

sim(integer,char)                  % какой символ выводить

build                              % заполнение поля ЭВМ

                                   % генерация координат с проверкой 

firstrand(integer,integer,integer,integer,integer,integer)

change(integer,integer,type)       % изменение значения клетки

build_empty1(integer)              % первоначальное заполнение

build_empty2(integer,integer)

add_one                            % добавление однопалубного корабля ЭВМ

add_two(integer)                   % добавление двухпалубного корабля ЭВМ

add_three(integer)                 % добавление трехпалубного корабля ЭВМ

add_four(integer)                  % добавление четырехпалубного корабля ЭВМ

add_nil                            % добавление пустых клеток поля ЭВМ

add_empty1(integer)                % заполнение оставшихся пустых клеток add_empty2(integer,integer)

evmhod                             % ход ЭВМ

hod_rand                           % случайный ход

hod_think                          % обдуманный ход

hod(integer,integer,integer)      

still(integer)                     % еще один возможный ход