Browse Source

refactoring: Clear condition in makeMove

remotes/origin/Ariana
Ariana Ginju 11 months ago
committed by David Moeller
parent
commit
f0480af371
  1. 28
      src/main/c/GameTic_Tac_Toe/game.c

28
src/main/c/GameTic_Tac_Toe/game.c

@ -62,22 +62,28 @@ char switchPlayer(char currentPlayer) {
return (currentPlayer == 'X') ? 'O' : 'X';
}
int isValidMove(int choice) {
int row = (choice - 1) / BOARD_SIZE;
int col = (choice - 1) % BOARD_SIZE;
return (choice >= 1 && choice <= BOARD_SIZE * BOARD_SIZE && board[row][col] != 'X' && board[row][col] != 'O');
}
void makeMove() {
int choice;
printf("Spieler %c, wähle eine Zahl (1-9): ", currentPlayer);
printf("Spieler %c, waehle eine Zahl (1-9): ", currentPlayer);
scanf("%d", &choice);
// Konvertiere die Zahl in Zeilen- und Spaltenindex
int row = (choice - 1) / 3;
int col = (choice - 1) % 3;
// Überprüfe, ob das gewählte Feld gültig ist
if (choice < 1 || choice > 9 || board[row][col] == 'X' || board[row][col] == 'O') {
printf("Ungültiger Zug! Bitte wähle erneut.\n");
makeMove(); // Rekursiver Aufruf, bis ein gültiger Zug gemacht wird
} else {
board[row][col] = currentPlayer;
currentPlayer = switchPlayer(currentPlayer);
if (isValidMove(choice)) {
int row = (choice - 1) / / BOARD_SIZE;
int col = (choice - 1) % % BOARD_SIZE;
board[row][col] = currentPlayer;
currentPlayer = switchPlayer(currentPlayer);
} else {
printf("Ungueltiger Zug! Bitte waehle erneut.\n");
makeMove(); // Rekursiver Aufruf, bis ein gültiger Zug gemacht wird
}
}

Loading…
Cancel
Save