Pomóżcie mi .. mam napisać program w borland pascal grę lotto ma to wyglądać tak
w jaką gre chcesz grać 1duży lotek 2multi lotek 3 expreslotek
i po przez naciśnięcie jakiejś liczby 1,2lub3 gramy w tą grę duzy lotek ma wyświetlać 6 liczb,, expres 5 a multi 20 i nakonie ma wyświetlać taki komunikat
czy chcesz grać dalej? 1.TAK 2.NIE i znowu po przez naciśnięcie 1 lub 2 wracamy do menu i gramy dalej lub kończymy gre.. POMÓŻCIE MI PROSZĘ
procedure menu; var znak: char; x: byte; wybor: boolean; begin x := 1; repeat if znak = #80 then x := x + 1; if znak = #72 then x := x - 1; if x = 4 then x := 1; if x = 0 then x := 3; if x = 1 then textcolor(yellow) else textcolor(white); gotoxy(36,10); writeln('Wlasne typy'); if x = 2 then textcolor(yellow) else textcolor(white); gotoxy(35,11); writeln('Chybil trafil'); if x = 3 then textcolor(yellow) else textcolor(white); gotoxy(38,12); writeln('Wyjscie'); znak := readkey; until znak = #13; if x = 1 then wprowadz(true); if x = 2 then wprowadz(false); if x = 3 then halt; end;
function losuj: integer; begin randomize; losuj := random(49)+1; end;
procedure wprowadz(wybor: boolean); var i,x: byte; liczba: Ttab; liczb: byte; begin if wybor = true then begin for i := 1 to 6 do begin repeat x := i; clrscr; write('Wprowadz szesc roznych liczb (1-49): '); readln(liczba[i]); for x := x-1 downto 1 do if liczba[i] = liczba[x] then begin liczb := liczba[i];; repeat gotoxy(1,2); write('Ta liczba juz byla! Wprowadz inna: '); readln(liczba[i]); clreol; until liczb <> liczba[i]; end; if (liczba[i] < 1) or (liczba[i] > 49) then begin gotoxy(1,2); writeln(#7,'Ta liczba wykracza poza zakres 1 - 49!!!'); delay(2000); end; until (liczba[i] > 0) and (liczba[i] < 49); end; end; if wybor = false then begin for i := 1 to 6 do begin for x := 1 to 6 do if liczba[i] = liczba[x] then begin liczb := liczba[i]; repeat liczba[i] := losuj; until liczba[i] <> liczb; end; liczba[i] := losuj; end; end; clrscr; wylosowywuj(liczba); end;
procedure wylosowywuj (liczba: Ttab); var kula: Ttab; i,x: byte; liczb: byte; begin for i := 1 to 6 do begin for x := 1 to 6 do if kula[i] = kula[x] then begin liczb := kula[i]; repeat kula[i] := losuj; until kula[i] <> liczb; end; kula[i] := losuj; end; sprawdz(kula,liczba); end;
procedure sprawdz(kula, liczba: Ttab); var i, x: byte; odgadniete: byte; begin odgadniete := 0; for i := 1 to 6 do begin for x := 1 to 6 do begin if kula[i] = liczba[x] then odgadniete := odgadniete + 1; end; end; wypisz(kula,liczba,odgadniete); end;
procedure wypisz(kula, liczba: Ttab; odgadniete:byte); var i: byte; begin write('Twoje liczby: '); for i := 1 to 6 do write(liczba[i],'; '); writeln; write('Wylosowane liczby: '); for i := 1 to 6 do write(kula[i],'; '); writeln; writeln('Wspolne: ',odgadniete); writeln; if odgadniete < 3 then writeln('Niestety nic nie wygrales!!!'); if odgadniete = 3 then writeln('Wygrales 10 zlotych!!!'); if odgadniete = 4 then writeln('Wygrales 125 zlotych!!!'); if odgadniete = 5 then writeln('Wygrales ok. 5 000 zlotych!!!'); if odgadniete = 6 then writeln('Wygrales ok. 1 000 000 zlotych!!!'); readln; end;
procedure koniec; var zakoncz: char; begin repeat clrscr; gotoxy(27,10); write('Jeszcze raz?? (T)ak / (N)ie: '); zakoncz := readkey; until zakoncz in ['T','t','N','n']; if zakoncz in ['N','n'] then halt; end;
begin poczatek: clrscr; logo; menu; koniec; goto poczatek; end.
uses
crt;
type
Ttab = array[1..6] of byte;
label
poczatek;
procedure wylosowywuj (liczba: Ttab); forward;
procedure sprawdz(kula, liczba: Ttab); forward;
procedure wypisz(kula, liczba: Ttab; odgadniete:byte); forward;
procedure wprowadz(wybor: boolean); forward;
procedure logo;
begin
textcolor(white);
gotoxy(30,1);
writeln('*************************');
gotoxy(30,2);
writeln('** LOTTO 1.0 **');
gotoxy(30,3);
writeln('*************************');
end;
procedure menu;
var
znak: char;
x: byte;
wybor: boolean;
begin
x := 1;
repeat
if znak = #80 then x := x + 1;
if znak = #72 then x := x - 1;
if x = 4 then x := 1;
if x = 0 then x := 3;
if x = 1 then
textcolor(yellow)
else
textcolor(white);
gotoxy(36,10);
writeln('Wlasne typy');
if x = 2 then
textcolor(yellow)
else
textcolor(white);
gotoxy(35,11);
writeln('Chybil trafil');
if x = 3 then
textcolor(yellow)
else
textcolor(white);
gotoxy(38,12);
writeln('Wyjscie');
znak := readkey;
until znak = #13;
if x = 1 then wprowadz(true);
if x = 2 then wprowadz(false);
if x = 3 then halt;
end;
function losuj: integer;
begin
randomize;
losuj := random(49)+1;
end;
procedure wprowadz(wybor: boolean);
var
i,x: byte;
liczba: Ttab;
liczb: byte;
begin
if wybor = true then
begin
for i := 1 to 6 do
begin
repeat
x := i;
clrscr;
write('Wprowadz szesc roznych liczb (1-49): ');
readln(liczba[i]);
for x := x-1 downto 1 do
if liczba[i] = liczba[x] then
begin
liczb := liczba[i];;
repeat
gotoxy(1,2);
write('Ta liczba juz byla! Wprowadz inna: ');
readln(liczba[i]);
clreol;
until liczb <> liczba[i];
end;
if (liczba[i] < 1) or (liczba[i] > 49) then
begin
gotoxy(1,2);
writeln(#7,'Ta liczba wykracza poza zakres 1 - 49!!!');
delay(2000);
end;
until (liczba[i] > 0) and (liczba[i] < 49);
end;
end;
if wybor = false then
begin
for i := 1 to 6 do
begin
for x := 1 to 6 do
if liczba[i] = liczba[x] then
begin
liczb := liczba[i];
repeat
liczba[i] := losuj;
until liczba[i] <> liczb;
end;
liczba[i] := losuj;
end;
end;
clrscr;
wylosowywuj(liczba);
end;
procedure wylosowywuj (liczba: Ttab);
var
kula: Ttab;
i,x: byte;
liczb: byte;
begin
for i := 1 to 6 do
begin
for x := 1 to 6 do
if kula[i] = kula[x] then
begin
liczb := kula[i];
repeat
kula[i] := losuj;
until kula[i] <> liczb;
end;
kula[i] := losuj;
end;
sprawdz(kula,liczba);
end;
procedure sprawdz(kula, liczba: Ttab);
var
i, x: byte;
odgadniete: byte;
begin
odgadniete := 0;
for i := 1 to 6 do
begin
for x := 1 to 6 do
begin
if kula[i] = liczba[x] then odgadniete := odgadniete + 1;
end;
end;
wypisz(kula,liczba,odgadniete);
end;
procedure wypisz(kula, liczba: Ttab; odgadniete:byte);
var
i: byte;
begin
write('Twoje liczby: ');
for i := 1 to 6 do
write(liczba[i],'; ');
writeln;
write('Wylosowane liczby: ');
for i := 1 to 6 do
write(kula[i],'; ');
writeln;
writeln('Wspolne: ',odgadniete);
writeln;
if odgadniete < 3 then
writeln('Niestety nic nie wygrales!!!');
if odgadniete = 3 then
writeln('Wygrales 10 zlotych!!!');
if odgadniete = 4 then
writeln('Wygrales 125 zlotych!!!');
if odgadniete = 5 then
writeln('Wygrales ok. 5 000 zlotych!!!');
if odgadniete = 6 then
writeln('Wygrales ok. 1 000 000 zlotych!!!');
readln;
end;
procedure koniec;
var
zakoncz: char;
begin
repeat
clrscr;
gotoxy(27,10);
write('Jeszcze raz?? (T)ak / (N)ie: ');
zakoncz := readkey;
until zakoncz in ['T','t','N','n'];
if zakoncz in ['N','n'] then halt;
end;
begin
poczatek:
clrscr;
logo;
menu;
koniec;
goto poczatek;
end.
Duży lotek