Turbo Pascal
 
Szukanie zaawansowane
   
 
Home Rejestracja FAQ Użytkownicy Grupy Galerie  
 
 

Forum Turbo Pascal Strona Główna Kody źródłowe Walka
Wyświetl posty z ostatnich:   
       
Napisz nowy temat  Odpowiedz do tematu

Sob 11:32, 11 Lut 2006
Autor Wiadomość
rafael
Administrator



Dołączył: 07 Lut 2006
Posty: 72
Przeczytał: 0 tematów

Ostrzeżeń: 0/3
Skąd: Pszczyna

Temat postu: Walka

Kod:
program walka;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  TWojownik = record
    sila: integer;
    zrecznosc: integer;
    wytrzymalosc: integer;
    Detale: record
      wzrost: integer;
      waga: integer;
      ksywa: string[20];
    end;
  end;
  TDruzyna = array[1..10] of TWojownik;

procedure intro;
begin
  writeln('***************************');
  writeln('   Walka ziomale vs zule   ');
  writeln('    autor: RAFAEL   ');
  writeln('***************************');
  readln;
end;

procedure fightOneToOne(var woj1, woj2: TWojownik);
var
  sa1, sa2: integer;
begin
  randomize;
  repeat
    sa1 := woj1.sila + woj1.zrecznosc + random(10);
    sa2 := woj2.sila + woj2.zrecznosc + random(10);
    if sa1 > sa2 then
      begin
        dec(woj2.wytrzymalosc, round(0.5*sa1));
        writeln('Zul dostal ', round(0.5*sa1),' obrazen.');
      end
    else
      dec(woj1.wytrzymalosc, round(0.5*sa2));
      writeln('Ziomal dostal ', round(0.5*sa1), ' obrazen');
  until (woj1.wytrzymalosc <= 0) or (woj2.wytrzymalosc <= 0);
  if woj1.wytrzymalosc <= 0 then
    begin
      writeln('Ziomal zostal pokonany!!!');
      woj1.wytrzymalosc := 0;
    end
  else
    if woj2.wytrzymalosc <= 0 then
    begin
      writeln('Zul zostal pokonany!!!');
      woj2.wytrzymalosc := 0;
    end;
  readln;
end;

procedure losWojownik(var woj: TWojownik);
begin
  randomize;
  with woj do
  begin
    sila := 10 + random(10);
    zrecznosc := 10 + random(10);
    wytrzymalosc := 100 + random(100);
    with detale do
      begin
        ksywa := chr(Random(23)) + chr(Random(23)) + chr(Random(23));
        waga := random(100);
        wzrost := random(100);
      end;
  end;
end;

procedure wyswietl(woj: TWojownik);
begin
  with woj do
    begin
      writeln('sila: ', sila);
      writeln('zrecznosc: ', zrecznosc);
      writeln('wytrzymalosc: ', wytrzymalosc);
      with detale do
        writeln('Ksywa: ', ksywa);
      writeln;
    end;
end;

procedure generujDruzyne(var team: TDruzyna; n: integer);
var
  i: integer;
begin
  for i := 1 to n do
    losWojownik(team[i]);
end;

procedure WalkaDruzynowa(ziomale, zule: TDruzyna; n: integer);
var
  wytrz_zula, wytrz_ziomala, suma_wytrz_zuli, suma_wytrz_ziomali, nr_ziomala, nr_zula, i: integer;
begin
  Randomize;
  suma_wytrz_zuli := 0;
  suma_wytrz_ziomali := 0;
  for i := 1 to n do
    suma_wytrz_zuli := suma_wytrz_zuli + zule[i].wytrzymalosc;
  for i := 1 to n do
    suma_wytrz_ziomali := suma_wytrz_ziomali + ziomale[i].wytrzymalosc;
  repeat
    repeat
    nr_ziomala := Random(n) + 1;
    until ziomale[nr_ziomala].wytrzymalosc > 0;
    writeln('Walka pomiedzy: ');
    readln;
    wyswietl(ziomale[nr_ziomala]);
    readln;
    repeat
      nr_zula := Random(n) + 1;
    until zule[nr_zula].wytrzymalosc > 0;
    wyswietl(zule[nr_zula]);
    readln;
    wytrz_zula := zule[nr_zula].wytrzymalosc;
    wytrz_ziomala := ziomale[nr_ziomala].wytrzymalosc;
    fightOneToOne(ziomale[nr_ziomala],zule[nr_zula]);
    wytrz_zula := wytrz_zula - zule[nr_zula].wytrzymalosc;
    wytrz_ziomala := wytrz_ziomala - ziomale[nr_ziomala].wytrzymalosc;
    suma_wytrz_zuli := suma_wytrz_zuli - wytrz_zula;
    suma_wytrz_ziomali := suma_wytrz_ziomali - wytrz_ziomala;

    writeln('Zulom pozostalo: ', suma_wytrz_zuli, ' wytrzymalosci.');
    writeln('Ziomalom pozostalo: ', suma_wytrz_ziomali, ' wytrzymalosci.');
    readln;
    until (suma_wytrz_zuli <= 0) or (suma_wytrz_ziomali <= 0);
    if suma_wytrz_zuli <= 0 then
     writeln('Ziomale zwyciezyli!!!')
    else
      writeln('Zule zwyciezyli!!!');
end;

var
  ziomale: TDruzyna;
  zule: TDruzyna;

begin
  intro;
  generujDruzyne(ziomale,5);
  generujDruzyne(zule,5);
  walkaDruzynowa(ziomale,zule,5);
  readln;
end.


Aby pobrać plik exe. kliknij :arrow: [link widoczny dla zalogowanych]


Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  
Napisz nowy temat  Odpowiedz do tematu

 
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


      Do góry  

Strona 1 z 1
Skocz do:  
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2002 phpBB Group
Avalanche style by What Is Real © 2004
             
Regulamin