Ciao a tutti,
sto realizzando un programma con pascal in cui viene simulata un estrazione del lotto e l'utente può fare una puntata e verificare se ha vinto o meno.
Il codice funziona quasi tutto però mi dà problemi quando deve verificare se (mettiamo nel caso che si voglia fare un ambo) ci sono nella ruota i due numeri che l'utente ha giocato.
Infatti anche se i due numeri ci sono nella ruota numero 1 il programma continua a dirmi "Hai perso".
Se al posto del AND metto l'OR mi dà due "Hai vinto"..
Perchè funzioni quando vi chiede se volete fare terno o ambo dovete digitare 1 (dopo sistemerò questo).
program estrazione_lotto;
uses crt;
type
tabella = array[1..11,1..5] of integer;
nomi = array[1..11] of string[12];
const
nomi_ruote : nomi = ('Nazionale', 'Bari','Cagliari',
'Firenze','Genova','Milano','Napoli','Palermo','Ro ma','Torino','Venezia');
var
tab:tabella;
procedure estrazione;
var
a,b,pos,x,i,j: integer;
begin
randomize;
for a:=1 to 11 do
begin
tab[a,1]:=random(90)+1;
for b:=2 to 5 do
begin
repeat
x:=random(90)+1;
pos:=1;
while (tab[a,pos]<>x) and (pos < b) do
pos:=pos+1;
until (pos>=b);
tab[a,b]:=x
end;
end;
end;
procedure scrivi;
var
a,b,num,col:integer;
begin
num:=2;
col:=5;
(* gotoxy(1,5);*)
for a:=1 to 11 do
begin
gotoxy(num,col);
write (nomi_ruote[a]:9);
Write(' ');
for b:=1 to 5 do
begin
write (tab[a,b]:5);
end;
col:=col+1;
end;
end;
procedure centra(scritta:string;y:integer);
var
x:integer;
begin
x:=((80-(length(scritta)))div 2);
gotoxy(x,y);
write(scritta);
end;
procedure cerca;
var a,b,cont,num:integer;
begin
gotoxy(2,20);
Write('Cerca un Numero: ');
readln(num);
cont:=0;
for a:=1 to 11 do
for b:=1 to 5 do
if num=tab[a,b] then
begin
Writeln(' Il numero si trova nella ruota numero ',a,' in posizione ', b,'');
cont:=1;
end;
If cont=0 then writeln(' Il numero non e'' presente in nessuna ruota');
end;
procedure nomi2;
var b:integer;
begin
end;
procedure gioca;
var
inizio,terno:string[10];
numa,numb,numc,lol,a,b,ambo,tipo:integer;
begin
write('Vuole fare una puntata? (si\no) ');
readln(inizio);
if
inizio=('si') then
begin
write('Vuole giocare un ambo o un terno? ');
readln(tipo);
ambo:=1;
case tipo of
1 : begin
Write('Inserisci il primo numero che vuoi puntare: ');
readln(numa);
Write('Inserisci il secondo numero che vuoi puntare: ');
readln(numb);
lol:=0;
for a:=1 to 1 do
for b:=1 to 5 do
begin
if (numa=tab[a,b]) and (numb=tab[a,b])
then
begin
Writeln('Hai vinto');
lol:=1;
end; end;
If lol=0 then writeln('Hai perso!');
end;
end;
end;end;
var a,num1,col1:integer; begin
clrscr;
estrazione;
centra('Estrazione del lotto',1);
scrivi;
(*cerca;*)
writeln;
Writeln;
gioca;
readln;
end.
f hhh