Jetzt geht es darum das, dass Programm denn Gewinner bekannt geben soll.
Also, ihr kennt sicher das Spiel mit denn neun Feldern, mit dem Ziel 3 Kreise in eine reihe zu bringen (TikTakTo ist der Name glaube ich). Ist wahrscheinlich schon 100 mal programmiert werden aber was soll’s bekanntlich macht Übung den Meister.
Es gibt zwei Spieler Rot und Blau das funktioniert alles, es kann auch schon gegeneinander gespielt werden, nur ich will natürlich den Gewinner bekannt geben und das Spiel soll sich automatisch neu starten.
Hab mir das so gedacht.
Da es bei diesem Spiel nur 8 Kombinationen gibt um zu gewinnen hab ich diese Gewinn Möglichkeiten in einen Array mit 3 Dimensionen geschrieben und dazu eine procedure welche die gedrückten Tasten von rot und blau speichert.
win: array[1..3, 1..9] of Integer = ((97,100,1003,97,98,99,97,103,111),(98,101,104,100,101,102,101,101,111),(99,102,105,103,104,105,105,99,111));
Problem:
Ich weiß nicht ganz wie ich das lösen soll das, dass Programm die Kombinationen abfragt und somit den Gewinner bekannt gibt.
Irgendwie so?
Delphi-Quellcode:
procedure Tform1.Rotpress(key: word);
var counter: integer;
counterD1: integer;
counterD2: integer;
counterD3: integer;
begin
for counter := 1 to 9 do begin
if RotKeyPres[counter] = 0 then begin
RotKeyPres[counter] := Key;
break;
end;
end;
for counterD1 := 1 to 9 do begin
if RotKeyPres[counterD1] = win[1,counterD1] then begin
for counterD2 := 1 to 8 do begin
if RotKeyPres[counterD2] = win[2,counterD2] then begin
for counterD3 := 1 to 8 do begin
if RotKeyPres[counterD3] = win[3,counterD3] then begin
label10.Caption := 'ROT WIN';
break;
end;
end;
end;
end;
end;
end;
end;