Untitled
X O Game By Hendyunknown
c_cpp
a year ago
3.7 kB
6
Indexable
#include <stdio.h> #include <stdlib.h> void printBoard(char board[3][3]); int getPosition(int *x, int *y, int position, char board[3][3]); char checkForWinner(char board[3][3]); int startNewGame(); #define X_Winner 55 #define O_Winner 66 #define Draw 22 int main() { int x = startNewGame(); while (x == Draw) { printf("Game is draw, starting new game\n"); x = startNewGame(); } if (x == X_Winner) { printf("Player 1 wins\n"); } else if (x == O_Winner) { printf("Player 2 wins\n"); } return 0; } char checkForWinner(char board[3][3]) { int i; for (i = 0; i < 3; i++) { if (board[i][0] == board[i][1] && board[i][1] == board[i][2]) return board[i][0]; if (board[0][i] == board[1][i] && board[1][i] == board[2][i]) return board[0][i]; } if (board[0][0] == board[1][1] && board[1][1] == board[2][2]) return board[0][0]; if (board[0][2] == board[1][1] && board[1][1] == board[2][0]) return board[0][2]; return 255; } void printBoard(char board[3][3]) { int i, j; printf("The current board is:\n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) printf("%c ", board[i][j]); printf("\n"); } } int getPosition(int *x, int *y, int position, char board[3][3]) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) if (board[i][j] == position + '0') { *x = i; *y = j; return 1; } } *x = -1; *y = -1; return 0; } int startNewGame() { int i, j, counter; char board[3][3]; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) board[i][j] = i * 3 + j + 1 + '0'; } printf("Welcome to tic-tac-toe\n"); printf("Player 1: X\nPlayer 2: O\n"); for (counter = 0; counter < 9; counter++) { if (counter % 2 == 0) { printf("Player 1, enter the position where you want to place X: "); scanf("%d", &i); if (getPosition(&i, &j, i, board)) { board[i][j] = 'X'; } else { printf("Invalid move, try again\n"); counter--; } } else { printf("Player 2, enter the position where you want to place O: "); scanf("%d", &i); if (getPosition(&i, &j, i, board)) { board[i][j] = 'O'; } else { printf("Invalid move, try again\n"); counter--; } } printBoard(board); printf("----------------\n"); if (checkForWinner(board) != 255) { if (checkForWinner(board) == 'X') { return X_Winner; } else if (checkForWinner(board) == 'O') { return O_Winner; } } } return Draw; }
Editor is loading...
Leave a Comment