Huhu,
bin da mit einem Kumpel dabei ein TicTacToe in Lazarus zu programmieren,was wir soweit auch fertig haben.
Nur leider finden wir bisher keinen Befehl/Bedingung wie wir ein Unentschieden einbauen können?
Hättet ihr da eine Idee?
Unentschieden für TicTacToe
Unentschieden für TicTacToe
- Dateianhänge
-
TicTacToe.zip
- (4.35 MiB) 69-mal heruntergeladen
-
- Beiträge: 958
- Registriert: Mo 11. Sep 2006, 22:56
Re: Unentschieden für TicTacToe
Wenn alle Felder voll sind und keiner gewonnen hat, sollte es wohl eine unentschieden sein.
Die exe und den anderen unnötigen Kram beim nächsten mal weglassen, wenn du was hochlädst.
"Projekt veröffentlichen" sollte da helfen.
Die exe und den anderen unnötigen Kram beim nächsten mal weglassen, wenn du was hochlädst.
"Projekt veröffentlichen" sollte da helfen.
-
- Beiträge: 6941
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Unentschieden für TicTacToe
Prüfe, ob alle Felder <> 0 sind.
Noch eine kleine Vereinfachung, verwende die and Bedienung.
anstelle
Noch eine kleine optische Verbesserung:
Code: Alles auswählen
procedure TForm1.Victory(x, y: integer; Image: TImage);
begin
...
if (Feld[0, 0] <> 0) and (Feld[0, 1] <> 0) and (Feld[0, 2] <> 0) and
(Feld[1, 0] <> 0) and (Feld[1, 1] <> 0) and (Feld[1, 2] <> 0) and
(Feld[2, 0] <> 0) and (Feld[2, 1] <> 0) and (Feld[2, 2] <> 0) then begin
Label1.Caption := 'Unentschieden';
end;
end;
Code: Alles auswählen
if (Feld[0, 0] = Feld[1, 1]) and (Feld[1, 1] = Feld[2, 2]) then begin
...
end;
Code: Alles auswählen
if Feld[0, 0] = Feld[1, 1] then begin
if Feld[1, 1] = Feld[2, 2] then begin
Code: Alles auswählen
procedure TForm1.Update(x, y: integer; image: TImage);
const
Rand = 8;
begin
if Feld[x, y] = 0 then begin
image.Picture.Bitmap.Canvas.Brush.Color := $FFFFFF;
image.Picture.Bitmap.Canvas.Pen.Width := Rand;
image.Picture.Bitmap.Canvas.FillRect(0, 0, image1.Width, image.Height);
if spieler = True then begin
Feld[x, y] := 1;
image.Picture.Bitmap.Canvas.Pen.Color := $FF0000;
image.Picture.Bitmap.Canvas.Line(Rand, Rand, image1.Width - Rand, image.Height - Rand);
image.Picture.Bitmap.Canvas.Line(Rand, image1.Width - Rand, image.Height - Rand, Rand);
// image.Picture.Loadfromfile('Unbenannt1.png');
Spieler := False;
end else begin
image.Picture.Bitmap.Canvas.Pen.Color := $0000FF;
image.Picture.Bitmap.Canvas.Ellipse(Rand, Rand, image1.Width - Rand, image.Height - Rand);
Feld[x, y] := 2;
// image.Picture.Loadfromfile('Unbenannt111.png');
Spieler := True;
end;
end;
Victory(x, y, image);
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Lazarusforum e. V.
- Beiträge: 395
- Registriert: Sa 15. Mai 2010, 13:46
- CPU-Target: 64 bit
- Kontaktdaten:
Re: Unentschieden für TicTacToe
Ich habe ein funktionierendes TicTacToe geschrieben. Wenn euch das hilft, schicke ich gerne den Code.
[Edit:] So, habe das mal hoch geladen: http://www.mitjastachowiak.de/?/project ... index.html
Das demonstriert so schön, wie leicht man in Lazarus die GUI für sowas basteln kann^^
[Edit:] So, habe das mal hoch geladen: http://www.mitjastachowiak.de/?/project ... index.html
Das demonstriert so schön, wie leicht man in Lazarus die GUI für sowas basteln kann^^