Tic Tac Toe Console Application C# nachdem ein Feld besetzt wurde soll das nicht mehr benutzt werden können, wie?
Ich arbeite gerade an einem kleinen TicTacToe Spiel in C# und man kann bis jetzt nur gewinnen, also noch kein unentschieden. Damit ich ein unentschieden implementieren kann müsste ich es erstmal so machen, dass man ein besetztes Feld nicht mehr erneut besetzen kann, wie könnte ich das machen? Ihr müsst kein Code schreiben, aber mir fällt einfach nicht ein wie ich das implementieren könnte
ich habe überlegt dass ich erstmal den Input vom Spieler nehme und nach dem Input einen for loop starte der erstmal den Array durchläuft und mit der .Contains Methode überprüft ob es schon den Wert "X" oder "O" hat.
choice1 = Int32.Parse(Console.ReadLine());
if(choice1 == 1 && playerOneTurn == true)
{
gameGrid.gamegrid[0, 0] = "X";
playerOneTurn = false;
playerTwoTurn = true;
}
So ändere ich den array.
2 Antworten
Für die Auswertung hast ja sicher einen Array mit Daten drin.
Wenn das gewähle Array Feld also schon Daten enthält, blocke den Input oder gebe einen Fehler zurück.
Warum denn das? 1-9 sollten doch leer sein? bzw. Gefüllt mit X oder O während des Spielens?
Das ist scheinbar egal.
Ich habe es so versucht, aber es klappt nicht ganz. Es klappt zwar, aber diese Nachricht wird nie ausgeführt:
void CheckSpotP1(int x, int y)
{
if(gameGrid.gamegrid[x,y].Equals("X") || gameGrid.gamegrid[x,y].Equals("O"))
{
System.Console.WriteLine("This spot is already occupied, try again.");
}
else
{
gameGrid.gamegrid[x, y] = "X";
playerOneTurn = false;
playerTwoTurn = true;
plays++;
}
}
wenn plays 9 erreicht, bedeutet es dann, dass es ein unentschieden ist.
Debugge dochmal, ob die Funktion überhaupt aufgerufen wird, und in welcher Bedingung.
Gute Idee, aber ich hab auch so herausgefunden wieso. Jedes mal nachdem ein Zeichen gesetzt wurde wird die Konsole geleert und deswegen sieht man die Nachricht einfach nicht. Ich gehe dir jetzt nicht mehr auf dem Sack, danke für die Hilfe und schönen Tag noch :)
Könnte helfen ....NET: Tic-Tac-Toe Example - PROWARE technologies
Das Array enthält halt von Anfang an schon Daten.