Помощь - Поиск - Пользователи - Календарь
Полная версия: 2 игрока вычеркивают клетки по очереди, последний - проиграл
Форум «Всё о Паскале» > Pascal, Object Pascal > Написание игр
malt
Игра. Играют 2 игрока, по очереди отрезают 1,2 или 3 клетки из 11, кто отрежет последнюю - проиграл.
Прописал "руками" ИИ, надо переписать через dfs (поиск в глубину). Может кто помочь в этом деле или подкинуть светлые идеи/какие-то ссылки??

uses
crt;

procedure player(var course:integer);
label
1;
var
rand:integer;
begin
writeln('Полосочный нагибатор 1.0');readln;
clrscr;
1: rand:=random(3);
if (rand<1) then goto 1;
if (rand=1) then
begin
writeln('По результатам жребия право первого хода передается игроку!');
course:=1
end;
if (rand=2) then
begin
writeln('По результатам жребия право первого хода передается нагибатору!');
course:=2
end;
readln
end;

procedure ending(var course:integer);
begin
if (course=1) then writeln('Противостояние закончилось победой игрока!')
else writeln('Противостояние закончилось победой нагибатора!')
end;

{---------------------------------------------------------------------------------------}

procedure player1(var course,score:integer);
var
pl1:integer;
begin
if (course=1) then
begin
clrscr;
writeln('Ход игрока.');
write('Осталось клеточек: ');writeln(score);
write('Введите, сколько клеточек вы хотите отрезать: ');readln(pl1);
if (pl1>0) and (pl1<4) and (pl1<=score) then
begin
score:=score-pl1;
write('Вы отрезали ',pl1,' клеточ');
if (pl1>1) and (pl1<4) then writeln('ки')
else writeln('ку');
write('Осталось клеточек: ');writeln(score)
end
else
begin
clrscr;
writeln('Вы не можете столько отрезать!')
end;
readln;
course:=2
// if (score=0) then ending(course)
end;
end;

procedure player2(var course,score:integer);
label
1;
var
pl2:integer;
begin
if (course=2) then
begin
case score of
11: pl2:=2;
10: pl2:=1;
9: pl2:=1;
8: pl2:=3;
7: pl2:=2;
6: pl2:=1;
5: pl2:=1;
4: pl2:=3;
3: pl2:=2;
2: pl2:=1;
1: pl2:=1;
0: goto 1
end;
write('Ход нагибатора.');
write('Осталось клеточек: ');writeln(score);
score:=score-pl2;
clrscr;
write('Нагибатор, не долго думая, отрезал ',pl2,' клеточ');
if (pl2>1) and (pl2<4) then writeln('ки.')
else writeln('ку.');
readln;
course:=1;
1: if (score=0) then ending(course)
end;
end;

procedure game(var course,score:integer);
begin
player(course);
score:=11;
while (score<>0) do
begin
player1(course,score);
player2(course,score)
end;
end;

var
course,score:integer;
begin
game(course,score)
end.
TarasBer
Цитата(malt @ 16.12.2012 3:05) *

Прописал "руками" ИИ, надо переписать через dfs (поиск в глубину).

Это такое задание - прописать поиск в глубину? Стратегя же очевидна и без этого.
malt
Согласен, но фишка в другом.
Если увеличить(уменьшить) полоску клеток хотя бы на 1, придется переписывать ИИ. Надо как бы написать общий случай, а именно, чтобы комп находил правильные ходы с помощью dfs ((
Из-за этого и не принимают задачу dry.gif
MeatCrash
Эх, если бы мои познания были поболее чем на данный момент, я б с удовольствием помог. =) Но увы... =(
Kopunenko
Познавательно, но не убедительно. Чего-то не хватает, а чего не пойму. Но, скажу прямо: – светлые и доброжелательные мысли.
-Franciskn-
Наш вебсайт создан исключительно для фанатов такой популярной игры, как Minecraft. На нашем вебресурсе можно выбрать самый подходящий для вас сервер для игры Minecraft и с наслаждением окунуться в загадочный и увлекательный мир игры. Мы предлагаем новым пользователям скачать лаунчер игры, для этого необходимо воспользоваться кнопкой “начать игру”.

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

Чтобы пользоваться всеми предоставляемыми нами сервисами, надо только пройти несложный процесс регистрации после чего для вас будут открыты все наши двери. Наш вебресурс – это самый лучший способ узнать всё о самой популярной на сегодняшний день игре – Minecraft. Закачав игру и подобрав для себя самый лучший сервер Minecraft, вы станете на голову выше большинства игроков Minecraft. РФ
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.