Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2012, 02:49   #1
loktor
 
Регистрация: 08.11.2010
Сообщений: 3
Смущение Pascal. Игра. 2 игрока, вычеркивают клеточки, последний проигрывает.

Игра. Играют 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.
loktor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Turbo Pascal. В каждом нечетном по порядку слове поменять местами первый и последний символы cdc Помощь студентам 0 08.11.2012 14:21
Pascal.поменять местами первый и последний символ в последнем слове Kris92 Помощь студентам 5 07.07.2010 14:00
записать то что проигрывает компьютер -=kip=- Мультимедиа в Delphi 1 17.05.2010 08:30
RxGIFAnimator проигрывает анимацию ускоренно Kottik Компоненты Delphi 2 19.09.2009 11:52
Нужна игра в которой 2 игрока играют по сетке Ellita Софт 4 03.01.2009 20:37