P
phip1611
Gast
Also es ist keine richtige KI (Künstliche Intelligenz), aber der Computer setzt halt Symbole bei meinem TicTacToe-Spiel.
Ich habe es so gelöst, dass der Computer zwei Zufallszahlen zwischen 1 und 3 generiert.
Diese stehen für die Korodinaten der Felder im TicTacToe-Feld.
Ist in dem Feld bereits ein Inhalt wird die Methode erneut (von sich selbst) aufgerufen und generiert zwei neue Zufallszahlen (Koordinaten). Wenn diesmal ein freies Feld generiert wurde, so wird das Feld mit dem Symbol des Computers gefüllt.
Allerdings passiert es manchmal, dass sich die Methode x-Mal selbst aufruft und keine freien Koordinaten findet.
--> StackOverFlow.
Gibt es eine bessere Lösung?
Mein Code:
Ich habe es so gelöst, dass der Computer zwei Zufallszahlen zwischen 1 und 3 generiert.
Diese stehen für die Korodinaten der Felder im TicTacToe-Feld.
Ist in dem Feld bereits ein Inhalt wird die Methode erneut (von sich selbst) aufgerufen und generiert zwei neue Zufallszahlen (Koordinaten). Wenn diesmal ein freies Feld generiert wurde, so wird das Feld mit dem Symbol des Computers gefüllt.
Allerdings passiert es manchmal, dass sich die Methode x-Mal selbst aufruft und keine freien Koordinaten findet.
--> StackOverFlow.
Gibt es eine bessere Lösung?
Mein Code:
Java:
private void _AI_Turn()
{
byte x, y;
boolean ok;
ok = false;
while( !ok )
{
x = (byte) ( java.lang.Math.random() * ( ( 3 + 1 ) - 1 ) + 1 ); // Algorithmus aus dem Internet ..
y = (byte) ( java.lang.Math.random() * ( ( 3 + 1 ) - 1 ) + 1 );
// zur info. this._gameField enthält eine Instanz meiner Klass für Spielfelder
if( this._gameField.getFieldContent( x, y ).equals( " " ) )
{
this._gameField.updateField( x, y, this._AI);
ok = true;
}
else
{
this._AI_Turn();
}
}
}