You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.2 KiB
88 lines
2.2 KiB
#include <stdio.h>
|
|
#include <stdbool.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
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';
|
|
}
|
|
}
|
|
}
|