07/10/12 22:15
Ultimo
è normale che ne escano 3, c'è un errore logico
write(' Vuole fare una puntata(si\no)? '); readln(inizio); if inizio=('si') then begin write(' Vuole giocare un ambo o un terno? '); readln(tipo); case tipo of 'a' : begin Write(' Inserisci il primo numero che vuoi puntare: '); readln(numa); Write(' Inserisci il secondo numero che vuoi puntare: '); readln(numb); Write(' Inserisci il nome(numero da 1 a 11) della ruota in cui vuoi giocare: '); readln(ruota); band:=0; a:=ruota; for b:=1 to 5 do begin if (numa=tab[a,b]) then band:=band+1; if (numb=tab[a,b]) then band:=band+1; end; if band=2 then begin textcolor(green); Writeln(' Hai vinto!'); end; If band<2 then begin textcolor(red); writeln(' Hai perso!'); end; end; 't': writeln(' Work in progress'); end; end; if inizio='no' then write(' Premi invio per uscire'); end;
hai capito perchè ne uscivano 3 ?
If ok Then GOTO Avanza else GOTO Inizia
07/10/12 23:37
Grazie mille, in effetti avevo fatto un casino con i Begin/end
Domani proverò a vedere se in qualche modo posso permettere all utente di scrivere la ruota in lettere e non in numeri senza ricorrere a 11 case
Domani proverò a vedere se in qualche modo posso permettere all utente di scrivere la ruota in lettere e non in numeri senza ricorrere a 11 case
08/10/12 10:11
Goblin
Codice buttato giù "al volo" in questo modo prendi tutte le ruote e puoi puntare sino alla cinquina...
non è testato al 100%, magari va migliorato ... ma potrebbe essere un idea
non è testato al 100%, magari va migliorato ... ma potrebbe essere un idea
type Puntata = array[1..5] of integer; .... function RiempiNumeri(nTipo: Integer): Puntata; var x: integer; begin for x := 1 to 5 do Result[x] := -1; for x := 0 to nTipo do begin Writeln('Inserisci il numero che vuoi puntare: '); readln(Result[x+1]); end; end; procedure gioca; var inizio,terno:string[10]; ruota,numa,numb,numc,lol,a,b,ambo,tipo:integer; aNumeri: Array[1..5] of Integer; begin write('Vuole fare una puntata? (si\no) '); readln(inizio); if inizio=('si') then begin writeln('Vuoi giocare: '); writeln('1) Ambo '); writeln('2) Terno '); writeln('3) Quaterna '); writeln('4) Cinquina '); readln(tipo); writeln('Seleziona la ruota: '); For a := 1 to 11 do writeln(IntToStr(a)+') '+nomi_ruote[a]); readln(Ruota); aNumeri := RiempiNumeri(tipo); lol:=0; for b:=1 to 5 do begin for a := 1 to Tipo+1 do if tab[Ruota,b] = aNumeri[a] then lol := lol+1; end; If lol = Tipo+1 then begin textcolor(green); writeln('Hai vinto !!') end else begin textcolor(Red); Writeln('Hai perso !!'); end; end; end;
Ibis redibis non morieris in bello
08/10/12 19:18
Ciao e grazie per la risposta.
Dato che sono alle prime armi con Pascal non ho capito benissimo il tuo codice ma va bene lo stesso
Soprattutto non capisco a cosa servono queste parti:
Dato che sono alle prime armi con Pascal non ho capito benissimo il tuo codice ma va bene lo stesso
Soprattutto non capisco a cosa servono queste parti:
For a := 1 to 11 do writeln(IntToStr(a)+') '+nomi_ruote[a]); readln(Ruota); aNumeri := RiempiNumeri(tipo); lol:=0; for b:=1 to 5 do begin for a := 1 to Tipo+1 do if tab[Ruota,b] = aNumeri[a] then lol := lol+1; end;
Ultima modifica effettuata da 08/10/12 20:12
08/10/12 20:33
Goblin
Postato originariamente da stichtom:
Ciao e grazie per la risposta.
Dato che sono alle prime armi con Pascal non ho capito benissimo il tuo codice ma va bene lo stesso
Soprattutto non capisco a cosa servono queste parti:
Ciao e grazie per la risposta.
Dato che sono alle prime armi con Pascal non ho capito benissimo il tuo codice ma va bene lo stesso
Soprattutto non capisco a cosa servono queste parti:
For a := 1 to 11 do writeln(IntToStr(a)+') '+nomi_ruote[a]); readln(Ruota); aNumeri := RiempiNumeri(tipo); lol:=0; for b:=1 to 5 do begin for a := 1 to Tipo+1 do if tab[Ruota,b] = aNumeri[a] then lol := lol+1; end;
le prime 2 righe stampano le ruote l'output è:
1) Nazionale
......
11) Venezia
la terza chiede la ruota dove puntare
la quarta riempe un array con le puntate a seconda della scelta (ambo, terno .. ect ect)
il doppio ciclo for testa se i numeri puntati sono stati estratti.
Ultima modifica effettuata da Goblin 08/10/12 20:34
Ibis redibis non morieris in bello
08/10/12 20:51
Postato originariamente da Goblin:
le prime 2 righe stampano le ruote l'output è:
1) Nazionale
......
11) Venezia
la terza chiede la ruota dove puntare
la quarta riempe un array con le puntate a seconda della scelta (ambo, terno .. ect ect)
il doppio ciclo for testa se i numeri puntati sono stati estratti.
Postato originariamente da stichtom:
Ciao e grazie per la risposta.
Dato che sono alle prime armi con Pascal non ho capito benissimo il tuo codice ma va bene lo stesso
Soprattutto non capisco a cosa servono queste parti:
Ciao e grazie per la risposta.
Dato che sono alle prime armi con Pascal non ho capito benissimo il tuo codice ma va bene lo stesso
Soprattutto non capisco a cosa servono queste parti:
For a := 1 to 11 do writeln(IntToStr(a)+') '+nomi_ruote[a]); readln(Ruota); aNumeri := RiempiNumeri(tipo); lol:=0; for b:=1 to 5 do begin for a := 1 to Tipo+1 do if tab[Ruota,b] = aNumeri[a] then lol := lol+1; end;
le prime 2 righe stampano le ruote l'output è:
1) Nazionale
......
11) Venezia
la terza chiede la ruota dove puntare
la quarta riempe un array con le puntate a seconda della scelta (ambo, terno .. ect ect)
il doppio ciclo for testa se i numeri puntati sono stati estratti.
Già piu chiaro
Ultimi dubbi:
1) Perchè se metto IntToStr mi dice che non è una variabile
2) Sempre IntToStr permette di passare da integer a stringhe vero?
Grazie mille
08/10/12 21:13
Goblin
Sono solito usare il compilatore pascal di lazarus il quale contiene la funzione IntToStr che è definita (vado a memoria):
function IntToStr(Value: integer): string;
begin
Str(Value, result);
end ;
dunque dato in input un numero mi ritorna una stringa contenete il numero
function IntToStr(Value: integer): string;
begin
Str(Value, result);
end ;
dunque dato in input un numero mi ritorna una stringa contenete il numero
Ibis redibis non morieris in bello