10. december 2003 - 12:34
#1
Hvorfor bruger du ikke et array til terningværdierne i stedet for 6 variable.
Nå men pyt med det.
En funktion der checker for et par;
function etpar(a,b,c,d,e:integer):boolean; {ovrfør terning øjne}
var
x:array[1..6] of integer;
i: integer
Begin
etpar := false;
for i := 1 to 6 do
x[i] := 0;
inc(x[a]);
inc(x[b]);
inc(x[c]);
inc(x[d]);
inc(x[e]);
for i := 1 to 6 do
if x[i] >= 2 then etpar := true;
end;
if etpar(terning1,terning2,terning3,terning4,terning5) then
showmessage('Der er et par');
Funktionen kan naturligvis udvides så det oplyses det højeste par;
function etpar(a,b,c,d,e:integer):integer;
var
x:array[1..6] of integer;
i: integer
Begin
etpar := 0;
for i := 1 to 6 do
x[i] := 0;
inc(x[a]);
inc(x[b]);
inc(x[c]);
inc(x[d]);
inc(x[e]);
for i := 1 to 6 do
if x[i] >= 2 then etpar := i;
end;
par := etpar(terning1,terning2,terning3,terning4,terning5)
if par > 0 then showmessage('Der er et par '+par+'-ere');
Tilsvarende funktion kan også bruges til 3 ens, 4 ens, yatzy osv. ved at ændre sidste linje til
if x[i] >= ens then etpar := i;
hvor ens er antallet af ens terninger. Du kan jo omdøbe funktionen til antalens
function antalens(a,b,c,d,e: integer; ens:integer):integer;
og kalde den med:
if antalens(terning1,terning2,terning3,terning4,terning5,5)>0 then
showmessage('Yatzy');
if antalens(terning1,terning2,terning3,terning4,terning5,4)>0 then
showmessage('4 ens');
osv.
God fornøjelse