Turbo Pascal - Programowanie Wszystko o Turbo Pascalu
Obszerny download i wiele kodów źródłowych
Menu
Kurs
Pozostałe


Walka

Opis: brak;

program walka;

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.

Dodano: 2007-05-16

Twoja ocena:

 

Ocena:

[powrót]

Największy zbiór informacji o Turbo Pascalu
Copyright © 2007 by rafael. All rights reserved. : Hosting zapewnia: programuj.com turbopascal.programuj.com - programowanie najlepsze kursy w sieci unikatowe artykuły za darmo Borland Turbo Pascal 7.0