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) % еще один возможный ход
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.