|
Turbo Pascal Twoje źródło wiedzy o Turbo Pascalu. |
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2002 phpBB Group
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|