![]() |
Fehler in der KI (Tic Tac Toe)?Bitte schnell helfen.
Liste der Anhänge anzeigen (Anzahl: 1)
neBitte helft mir schnell. noch heute morgen habe keine zeit mehr. Unten hängt das komplette programm an.
achso es Gameboard ist ein 2d Array vom typ tFieldtype : TFieldType = ( ftNone, ftX, ftO,ftH ); GameBoard : array[ 0..2,0..2 ] of TFieldType; Hier die set field die unten vorkommt
Delphi-Quellcode:
//Setzt das Spielfeld 'nFieldIdx' auf den wert 'fieldType' und weist 'img' das passende Bild zu
procedure TForm1.SetField( img : TImage; nFieldIdx : integer; fieldType : TFieldType ); var x,y : integer; begin TagToCoordinates( nFieldIdx, x, y ); //Ist das Feld 'nFieldIdx' noch frei? if ( CheckForFreeField( x, y ) ) then begin //Setzt das Feld 'nFieldIdx' auf den Wert 'fieldType' GameBoard[ x,y ] := fieldType; //Je nach 'fieldType' das passende Bild an 'img' übergeben case fieldType of ftX : img.Picture.Assign( ImageX.Picture ); ftO : img.Picture.Assign( ImageO.Picture ); end; end; end; Hier ist der eigentliche problemfall
Delphi-Quellcode:
procedure GodlikeKIGo;
begin // Schräg ziehen if (TForm1.CheckForFreeField() = 8) and not( (GameBoard[0, 0] = 0) and (GameBoard[0, 2] = 0) and (GameBoard[2, 0] = 0) and (GameBoard[2, 2] = 0)) then begin if GameBoard[0, 0] = 1 then SetField[2, 2].Caption := ftO else if GameBoard[0, 2] = 1 then SetField[2, 0].Caption := ftO else if GameBoard[2, 0] = 1 then SetField[0, 2].Caption := ftO else if GameBoard[2, 2] = 1 then SetField[0, 0].Caption := ftO; exit; end; // Ecke ziehen if (GameBoard[0, 0] = 0) or (GameBoard[0, 2] = 0) or (GameBoard[2, 0] = 0) or (GameBoard[2, 2] = 0) then begin if GameBoard[0, 0] = 0 then SetField[0, 0].Caption := ftO else if GameBoard[0, 2] = 0 then SetField[0, 2].Caption := ftO else if GameBoard[2, 0] = 0 then SetField[2, 0].Caption := ftO else SetField[2, 2].Caption := ftO; end // Mitte ziehen else if GameBoard[1, 1] = 0 then SetField[1, 1].Caption := ftO // Kante ziehen else if GameBoard[1, 1] = 0 then SetField[2, 2].Caption := ftO SimpleKI; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz