#include #include #include #include int Zaehler = 1; // Funktion, um das Spielfeld zu initialisieren void Brett(char Feld[3][3]) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { Feld[i][j] = '_'; } } } void Bild(char Feld[3][3]) { #ifdef _WIN32 system("cls"); #else system("clear"); #endif for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { printf("%c ", Feld[i][j]); } printf("\n"); } } int Winner(char Feld[3][3]) { // Überprüfen Sieg // Überprüfen Reihen for (int i = 0; i < 3; i++) { if (Feld[i][0] == Feld[i][1] && Feld[i][1] == Feld[i][2] && Feld[i][0] != '_') { if (Feld[i][0] == 'X') { return 1; } else return 2; } } // Überprüfen Spalten for (int j = 0; j < 3; j++) { if (Feld[0][j] == Feld[1][j] && Feld[1][j] == Feld[2][j] && Feld[0][j] != '_') { if (Feld[0][j] == 'X') { return 1; } else return 2; } } // Überprüfen Diagonalen if ((Feld[0][0] == Feld[1][1] && Feld[1][1] == Feld[2][2]) || (Feld[0][2] == Feld[1][1] && Feld[1][1] == Feld[2][0])) { if (Feld[1][1] != '_') { if (Feld[1][1] == 'X') { return 1; } else return 2; } } //Überprüfe Runde for (int k = 0; k < 3; k++) { for (int l = 0; l < 3; l++) { if (Feld[k][l] == '_') { return 9; } } } //Bestätige Unendschieden printf("Es ist ein Unendschieden\n"); return 0; } void Zuege(char Feld[3][3], int row, int col) { if (Zaehler % 2 == 0) { if (Feld[row][col] == '_') { Feld[row][col] = 'O'; } else { printf("Das Feld ist schon besetzt. Gib ein anderes Feld ein:\n"); printf("[Reihe Spalte]:"); scanf("%d %d"); row -= 1; col -= 1; Zuege(Feld, row, col); } } else { if (Feld[row][col] == '_') { Feld[row][col] = 'X'; } } }