pascal, извращения в особой форме, рабочий квест

Discussion in 'Болталка' started by /Alex/, 30 Jan 2012.

  1. /Alex/

    /Alex/ Member

    Joined:
    7 Feb 2009
    Messages:
    60
    Likes Received:
    15
    Reputations:
    0
    доброго времени суток!
    Задача: сделать квест по типу

    Code:
    program f;
    uses crt;
    var x:byte;
    begin
    clrscr;
            Write('Вы голый в лесу. На вас прет медведь. ваши действия?);
            Readln(X);
            Repeat
                 Case X Of 
                 1 : Writeln('убежать');
                 2 : Writeln('вдуть медведю');
                 End;
                 Readln(X);
           Until X = 0;
           Readln;
    End.
    Прописать выбор одного действия - понятно как. но: как создать последующие действия,связанные с предыдущим логически?
    именно паскаль.
    вариант выше - не идеальный, буду рад предложениям рациональнее
    спасибо за ответы
     
  2. Ereee

    Ereee Elder - Старейшина

    Joined:
    1 Dec 2011
    Messages:
    560
    Likes Received:
    370
    Reputations:
    267
    Code:
    ... ваши действия?[B][SIZE=5]'[/SIZE][/B]);
    Кавычку забыл.
    Потроллим:
    Code:
    program f;
    uses crt;
    var x:byte;
    i:integer;
    label 1,2;
    begin
    clrscr;
            1:
            Writeln('Вы голый в лесу. На вас прет медведь. Ваши действия? 1. Убежать 2.Вдуть медведю');
            Readln(X);
               if (X=1) then
                          begin
                     writeln('Беги, блеать!');
                          end
            else
                if (X=2) then
                       begin
                     writeln('Квест окончен. Медведь тебя съел.');
                     goto 2;
                       end
            else
                      begin
                         clrscr;
                         goto 1;
                      end;
            
            if (X=1) then
                    begin
                       for i:=0 to 10 do
                              begin
                              writeln('Беги!!!');
                              end;
                       writeln('Говно... Тебя съели.');
                       goto 2;
                    end;
    
    
           2:
           Readln;
    End.
    UPD. Епт!
    Это обязательно?
     
  3. /Alex/

    /Alex/ Member

    Joined:
    7 Feb 2009
    Messages:
    60
    Likes Received:
    15
    Reputations:
    0
    ты убил его :(
    да, именно это я имел в виду) выбор одного действия осуществлен, как наиболее грамотно приписатьк нему остальные? последующие, назовем их так.
     
  4. Ereee

    Ereee Elder - Старейшина

    Joined:
    1 Dec 2011
    Messages:
    560
    Likes Received:
    370
    Reputations:
    267
    Поправь сточку:
    на
    И будет тебе счастье.

    UPD. i:integer на i:extended смени.
     
    #4 Ereee, 30 Jan 2012
    Last edited: 30 Jan 2012
  5. /Alex/

    /Alex/ Member

    Joined:
    7 Feb 2009
    Messages:
    60
    Likes Received:
    15
    Reputations:
    0
    не, не)
    мне нужен последующий выбор. т.е. - мужик убежал, потом:
    1 - пойти дальше в лес
    2 - выбежать из леса
    в случае 1 - 1громко заорать 2сесть и думать о жизни
    в случае 2 - 1побежать в сторону ближайшего города 2искать реку

    древо событий своеобразное, которое будет постоянно расширяться по ходу сюжета, как-то так.
     
  6. Ereee

    Ereee Elder - Старейшина

    Joined:
    1 Dec 2011
    Messages:
    560
    Likes Received:
    370
    Reputations:
    267
    Как видишь все легко и извращенно, как заказывал:
    Code:
    program f;
    uses crt;
    var x:byte;
    i:integer;
    label 1,2,3,4,5;
    begin
    clrscr;
            1:
            Writeln('Вы голый в лесу. На вас прет медведь. Ваши действия? 1. Убежать 2.Вдуть медведю');
            Readln(X);
               if (X=1) then
                          begin
                     writeln('Беги, блеать!');
                          end
            else
                if (X=2) then
                       begin
                     writeln('Квест окончен. Медведь тебя съел.');
                     goto 2;
                       end
            else
                      begin
                         clrscr;
                         goto 1;
                      end;
    
            if (X=1) then
                    begin
                       for i:=0 to 10 do
                              begin
                              writeln('Беги!!!');
                              end;
                    end;
                    
                    3:
                        Writeln('Вы убежали. Ваши действия? 1. Пойти дальше в лес 2.Выбежать из леса');
                        Readln(X);
                                     if (X=1) then
                          begin
                     writeln('Тебе хана... Ваши действия? 1. Громко заорать 2. Сесть и думать о жизни');
                     goto 5;
                          end
            else
                if (X=2) then
                       begin
                        writeln('Молодец... Ваши действия? 1. Побежать в сторону ближайшего города 2. Искать реку');
                     goto 4;
                       end
            else
                      begin
                         clrscr;
                         goto 3;
                      end;
    
                      5:
                      readln(X);
                      if (X=1) then begin
                      writeln('Ничем тебе не помочь...');
                      goto 2;
                      end else if (X=2) then begin
                      writeln('Думать надо было раньше...');
                      goto 2;
                      end
                      else
                      goto 2;
                      
                      4:
                      readln(X);
                                        if (X=1) then begin
                      writeln('Иди, а мне то что :D');
                      goto 2;
                      end else if (X=2) then begin
                      writeln('Ваще тупо. Накой тебе река?');
                      goto 2;
                      end
                      else
                      goto 2;
    
    
           2:
           writeln('THE END!');
           Readln;
    End.
     
  7. /Alex/

    /Alex/ Member

    Joined:
    7 Feb 2009
    Messages:
    60
    Likes Received:
    15
    Reputations:
    0
    Ereee, да, именно оно, спасибо.
     
  8. Nizhegorodets

    Nizhegorodets Member

    Joined:
    21 Mar 2009
    Messages:
    80
    Likes Received:
    66
    Reputations:
    9
    во внешний файл не вынести варианты и только потом подгружать? или извращения обязательны?
     
  9. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    156
    Likes Received:
    6
    Reputations:
    0
    используй swtich`i блееять!
     
  10. lukmus

    lukmus Elder - Старейшина

    Joined:
    18 Nov 2009
    Messages:
    366
    Likes Received:
    115
    Reputations:
    23
    конечный автомат, теория автоматов Тьюринга, не?
     
  11. Ereee

    Ereee Elder - Старейшина

    Joined:
    1 Dec 2011
    Messages:
    560
    Likes Received:
    370
    Reputations:
    267
    Ну... он хотел извращения :D А так можно с файла, да и код будет понятней. Хотя че там понимать :D