Ok, ich habe mir noch ein paar Gedanken gemacht und die SetPoint erweitert, nachdem ich mir in der Hilfe inc/
dec nochmals angesehen habe. Das ist zwar jetzt noch nicht die Endversion, aber ein Zählen von 0 -40 und andersrum ist nun drin. 4 Probleme/Fragen habe ich derzeit. Sicher nicht die letzten.
1. Ich habe noch nicht herausgefunden, wie ich das mit dem Vorteil lösen soll, da ja die Punkte in den Variablen akt_point_a und akt_point_b, welche vom Typ her integer sind, geschrieben und auch hochgezählt werden. Also wie soll ich da ein A für Vorteil reinschreiben, bzw. wie kann ich das händeln?
2. Den Code finde ich schon jetzt ziemlich aufgebläht. Geht das auch anders? Ich denke meist nach Schema F und würde gern über den Tellerrand hinausblicken.
3. Ich würde gern das Befüllen der Controls, den die Inhalte sollen ja dann dem Programm auch sichtbar zugeführt werden, bzw. rausgeschickt werden, extra abhandeln. Anwelcher Stelle würdet Ihr das zentral lösen? Zur Zeit tue ich dies per DUmmy mit dem Showmessage am Ende von SetPoint, aber eigentlich kanns das nicht sein, weil ich diese Routine auch in Richtung SetGame verlassen muss, wenn ein Spieler mit dem aktuell gewonnenen Punkt ein Spiel gewonnen hat.
4. Desweiteren müsste ich dann nachdem ich ein gewonnenes Spiel erkannt habe akt_point_a und akt_point_b wieder auf 0 zurücksetzen. Sollte das in Setpoint geschehen oder besser in SetGame, respektive SetSetWin (gibts noch nicht)...
Hier mein Code von SetPoint:
Delphi-Quellcode:
function SetPoint(player,point: integer):boolean;
var
n : integer;
begin
// wenn player = 1
case player
of
1 :
begin
// wenn point > 0 erhoehe Spieler1
if point > 0
then
begin
//festlegen, um wieviel ge-inc-t wird
case akt_points_a
of
0,15 : n := 15;
30,40 : n := 10;
else exit;
end;
inc(akt_points_a,n);
end;
// wenn point < 0 senke Spieler1
if point < 1
then
begin
//festlegen, um wieviel ge-dec-t wird
case akt_points_a
of
15,30 : n := 15;
40 : n := 10;
else exit;
end;
dec(akt_points_a,n);
end;
end;
2 :
begin
// wenn point > 0 erhoehe Spieler2
if point > 0
then
begin
//festlegen, um wieviel ge-inc-t wird
case akt_points_b
of
0,15 : n := 15;
30,40 : n := 10;
else exit;
end;
inc(akt_points_b,n);
end;
// wenn point < 0 senke Spieler2
if point < 1
then
begin
//festlegen, um wieviel ge-dec-t wird
case akt_points_b
of
15,30 : n := 15;
40 : n := 10;
else exit;
end;
dec(akt_points_b,n);
end;
end;
end;
showmessage(inttostr(akt_points_a));
end;