Gistrec

procedure attak

May 3rd, 2014
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 9.21 KB | None | 0 0
  1. uses crt;
  2. var
  3.   slaves_attak:real; //Сколько рабов идет атаковать
  4.   hp:real; //общее кол-во едениц жизней у рабов
  5.   attak:real; //общее кол-во едениц атаки
  6. ///  speed_hp:real; //Скорость атаки (коэффициент атаки)
  7. ///  speed_attack:real;
  8.   slaves_attak_:real; //кол-во рабов в замке врага
  9.   hp_:real;//Общее кол-во жизней у врагов
  10.   attak_:real; //кол-во едениц атаки в замке врага
  11.  
  12.   slaves_sk:real; //сравниваем рабов в процессе битвы наши
  13.   slaves_sk_:real;//                                  вражесике
  14.   slaves_sk_end:real; //сравниваем рабов в конце   наши
  15.   slaves_sk_end_:real;//                           вражеские
  16. ///  speed_hp_:real;
  17. ///  speed_atack_:real;
  18.   castle_:integer; //Порядковый номер замка
  19.   castle:integer;//Номер замка, который выбрали
  20.   y:integer;
  21.   x:string;//заглушка
  22.  
  23.   n:integer;//номер боя
  24.   w:integer;//кто атакует первым 0-мои 1-враг
  25.   slaves:integer;
  26.   label up_slaves_attak_,attak_lb,exit,start,end_attak;
  27.  
  28.  
  29. begin
  30. slaves:=999;
  31. n:=1;//номер боя приравниваем к еденице
  32.     Randomize;
  33.     castle_:=random(3); //определяем, сколько замков рядом с нами
  34.     writeln('Рядом с вами есть ',castle_,' замка.');
  35.     writeln('Какой замок вы хотите атаковать?(номер замка)');
  36.     read(castle);
  37.     if castle_-castle<0 then begin
  38.                              writeln('Такого замка нету');
  39.                              goto exit;
  40.                              end;{begin}
  41.     case castle of
  42.        1:begin
  43.          Randomize;
  44.          writeln('Отсылаем шпионов во вражеский замок...');
  45.          sleep(500);
  46. up_slaves_attak_: slaves_attak_:=random(slaves)*random(5);
  47.          if slaves_attak_=0 then goto up_slaves_attak_;
  48.          slaves_sk_end_:=slaves_attak_;
  49.          writeln('Во вражеском замке находятся ',slaves_attak_,' рабов');
  50.          sleep(1000);
  51.          writeln('');
  52.          writeln('Вы действительно хотите напасть на этот замок?');
  53.          writeln('1-да, напасть; 0-нет, не нападать');
  54.          sleep(250);
  55.          readln(y);
  56.             if y=0 then goto exit;
  57.          writeln('У вас есть ',slaves,' рабов.');
  58.          writeln('Сколько рабов вы хотите отправить на вражеский замок');
  59.          read(slaves_attak);
  60.            if slaves_attak>slaves then begin
  61.                                        writeln('Недостаточно рабов');
  62.                                        readln(x);
  63.                                        goto exit;
  64.                                        end;{begin}
  65.          slaves_sk_end:=slaves_attak;
  66.          writeln('Отправляем ',slaves_attak,' рабов на замок ', castle);
  67.          sleep(3000);
  68.          w:=random(1);//0-мы 1-они
  69.          goto attak_lb;
  70.          end;{begin}
  71.        2: ;    
  72.      end;{case}
  73.        
  74.  //attak
  75. attak_lb: sleep(1000);
  76.           clrscr;
  77.           writeln('Идет ',n,' стадия боя');
  78.           w:=1-w; //Определяем, кто атакует следуюдий. Если было 0, то станет 1, и наоборот
  79.           hp:=slaves_attak*10;   //жизни у моих рабов
  80.           attak:=slaves_attak*5;//атака у моих рабов
  81. {Враги}   hp_:=slaves_attak_*10; //жизни у чужих рабов
  82.           attak_:=slaves_attak_*5;//атака у чужих рабов
  83.           // writeln('Наши войны имеют ',hp,' едениц жизней.');
  84.           // writeln('Наши войны имеют ',attak,' едениц атаки.');
  85.           case w of          
  86. {мы первые}      0: begin
  87.                     n:=n+1;
  88.                     writeln(slaves_attak,' наших рабов атакуют ',slaves_attak_,' вражеских рабов');
  89.                     sleep(1000);
  90.                     slaves_sk_:=slaves_attak_;
  91.                     slaves_attak_:=(hp_-attak)/10;
  92.                     slaves_attak_:=round(slaves_attak_);
  93.                     if slaves_attak_<1 then begin
  94.                                             slaves_attak_:=0;
  95.                                             sleep(1000);
  96.                                             goto end_attak;
  97.                                             end;{begin}
  98.                     writeln('У нас осталось ',slaves_attak,' рабов');                        
  99.                     writeln('У врага осталось ',slaves_attak_,' рабов.');
  100.                     writeln('Потери врага составляют ',slaves_sk_-slaves_attak_,' рабов');
  101.                     sleep(1000);
  102.                     writeln('');
  103.                     writeln('Продолжить битву?');
  104.                     writeln('1-да, продолжить; 0-нет, сбежать');
  105.                     readln(y);
  106.                     if y=1 then goto attak_lb;
  107.                     if y=0 then goto end_attak;
  108.                     end;{begin}
  109.                   1:begin
  110.                     n:=n+1;
  111.                     writeln(slaves_attak_,' вражеских рабов атакуют ',slaves_attak,' наших рабов');
  112.                     sleep(1000);
  113.                     slaves_sk:=slaves_attak;
  114.                     slaves_attak:=(hp-attak_)/10;
  115.                     slaves_attak:=round(slaves_attak);
  116.                     if slaves_attak<1 then begin
  117.                                            slaves_attak:=0;
  118.                                            sleep(1000);
  119.                                            goto end_attak;
  120.                                            end;{begin}
  121.                     writeln('Наши потери составляют ',slaves_sk-slaves_attak,' рабов');
  122.                     writeln('У нас осталось ',slaves_attak,' рабов');
  123.                     writeln('У врага осталось ',slaves_attak_,' рабов.');
  124.                     sleep(1000);
  125.                     writeln('');
  126.                     writeln('Продолжить битву?');
  127.                     writeln('1-да, продолжить; 0-нет, сбежать');
  128.                     readln(y);
  129.                     if y=1 then goto attak_lb;
  130.                     if y=0 then goto end_attak;
  131.                     end;
  132.           end;{case}
  133.  //attak
  134. end_attak: if slaves_attak=0 then begin
  135.                                   clrscr;
  136.                                   writeln('Мы потерпели поражение');
  137.                                   writeln('Мы потеряли ',slaves_sk_end-slaves_attak,' рабов');
  138.                                   writeln('У противника осталось ',slaves_attak_,' и он потерял ',slaves_sk_end_-slaves_attak_,' рабов');
  139.                                  /// slaves:=slaves_attak;
  140.                                   end;{begin}
  141.            if slaves_attak_=0 then begin  
  142.                                   clrscr;
  143.                                   writeln('Мы победили');
  144.                                   writeln('Мы потеряли ',slaves_sk_end-slaves_attak,' рабов и у нас осталось ',slaves_attak,' рабов');
  145.                                   writeln('Враг потерял ',slaves_sk_end_-slaves_attak_,' рабов');
  146.                                  /// slaves:=slaves_attak;
  147.                                   end;{begin}
  148.            if (slaves_attak<>0) and (slaves_attak<>0) then begin
  149.                                   writeln('Из ',slaves_sk_end,' мы потеряли ',slaves_sk_end-slaves_attak,' рабов и у нас осталось ',slaves_attak,' рабов');
  150.                                   writeln('Из ',slaves_sk_end_,' враг потерял ',slaves_sk_end_-slaves_attak_,' рабов и у него осталось ',slaves_attak_,' рабов');
  151.                                  ///  slaves:=slaves_attak;
  152.                                   end;{begin}
  153. exit:
  154. end.
  155.  
  156. //   Допустим у нас есть 100 рабов. Каждый раб имеет 10 жизней и атакует на 5 жизней.
  157. //Если мы атакуем другого, у которого 60 рабов, которые имеют по 10 жизней и по 5 атаки
  158. //То наш удар: 100(рабов)*5(атака)=500
  159. //Вражеские жизни 60(рабов)*10(жизней)=600
  160. //У врага осталось рабов: (600-500)/10=10(рабов)
  161. //Таким образом надо знать:
  162. //1.Жизни наших рабов                    3.На сколько атакуют наши рабы    
  163. //2.Жизни вражеских рабов                4.На сколько атакуют вражеские рабы
Advertisement
Add Comment
Please, Sign In to add comment