From e97df2712e4d81f9730d9cd45a673f5e864fdb8a Mon Sep 17 00:00:00 2001 From: Jannis Heydemann Date: Wed, 13 May 2026 09:18:35 +0200 Subject: [PATCH] Finished Game. Wait for feedback --- .gitignore | 1 + TicTacToe.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++---- main | Bin 16128 -> 0 bytes 3 files changed, 74 insertions(+), 5 deletions(-) create mode 100644 .gitignore delete mode 100755 main diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6caf68a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +output \ No newline at end of file diff --git a/TicTacToe.c b/TicTacToe.c index 4c86c76..03c466e 100644 --- a/TicTacToe.c +++ b/TicTacToe.c @@ -1,26 +1,47 @@ #include - +#include char cPlayfield[3][3] = { {' ', ' ', ' '}, {' ', ' ', ' '}, {' ', ' ', ' '}}; char *ptrPlayfield; +char currentUser; + +int running = 1; // TODO: find bool and convert to it +int counter = 1; void renderPlayfield(); +void getUserInput(); +void checkForWin(); int main() { - renderPlayfield(); + while (running == 1) + { + renderPlayfield(); + currentUser = counter++ % 2 == 1 ? 'X' : 'O'; + getUserInput(); + checkForWin(); + } return 0; } -void renderPlayfield() { +void renderPlayfield() +{ +#ifdef WIN32 + system("cls"); +#endif + +#ifdef linux + system("clear"); +#endif + printf(" | 1 | 2 | 3 |\n"); printf("---------------\n"); for (int i = 0; i < 3; i++) { - printf("%d | ", i+1); + printf("%d | ", i + 1); for (int j = 0; j < 3; j++) { ptrPlayfield = &cPlayfield[i][j]; @@ -28,5 +49,52 @@ void renderPlayfield() { } printf("\n---------------\n"); } - +} + +void getUserInput() +{ + int currentCol = 0; + int currentRow = 0; + printf("\nCurrent Player: %c\n", currentUser); + printf("Row and Colum: "); + scanf("%d %d", ¤tRow, ¤tCol); + + if (currentRow < 1 || currentRow > 3 || currentCol < 1 || currentCol > 3) + { + printf("Your Input is out of Range. Use only numbers 1, 2 or 3. \n"); + return getUserInput(); + } + else + { + cPlayfield[currentRow - 1][currentCol - 1] = currentUser; + } + return; +} + +void checkForWin() { + for (int i = 0; i < 3; i++) { + if (cPlayfield[i][0] == cPlayfield[i][1] && cPlayfield[i][1] == cPlayfield[i][2] && cPlayfield[i][2] != ' ') { + running = 0; + printf("The winner is: %c\n", cPlayfield[i][0]); + return; + } + + if (cPlayfield[0][i] == cPlayfield[1][i] && cPlayfield[1][i] == cPlayfield[2][i] && cPlayfield[2][i] != ' ') { + running = 0; + printf("The winner is: %c\n", cPlayfield[0][i]); + return; + } + + } + if (cPlayfield[0][0] == cPlayfield[1][1] && cPlayfield[1][1] == cPlayfield[2][2] && cPlayfield[2][2] != ' ') { + running = 0; + printf("The winner is %c\n", cPlayfield[0][0]); + return; + } + + if (cPlayfield[0][2] == cPlayfield[1][1] && cPlayfield[1][1] == cPlayfield[2][0] && cPlayfield[2][0] != ' ') { + running = 0; + printf("The winner is %d\n", cPlayfield[0][2]); + return; + } } \ No newline at end of file diff --git a/main b/main deleted file mode 100755 index c9a86bd4c9e7d8694174dbfe3bbdcbcb82db4d4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16128 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 E37rdNhX4Qo