Creating a graphical and colorful Tic-Tac-Toe game in C involves using a graphics library such as graphics.h from the Turbo C compiler. Unfortunately, modern compilers and operating systems don't fully support this outdated library, and it may not work on newer systems.
However, I can provide you with a console-based version of the game in C, which you can run in a console environment like Code::Blocks, Dev-C++, or a similar IDE:
c#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// Function to print the Tic-Tac-Toe board
void printBoard(char board[3][3]) {
    printf("\n");
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            printf(" %c ", board[i][j]);
            if (j < 2) printf("|");
        }
        printf("\n");
        if (i < 2) printf("-----------\n");
    }
    printf("\n");
}
// Function to check if a player has won
int checkWin(char board[3][3], char player) {
    // Check rows and columns
    for (int i = 0; i < 3; i++) {
        if ((board[i][0] == player && board[i][1] == player && board[i][2] == player) ||
            (board[0][i] == player && board[1][i] == player && board[2][i] == player)) {
            return 1; // Player won
        }
    }
    // Check diagonals
    if ((board[0][0] == player && board[1][1] == player && board[2][2] == player) ||
        (board[0][2] == player && board[1][1] == player && board[2][0] == player)) {
        return 1; // Player won
    }
    return 0; // No winner yet
}
// Function to check if the board is full
int isBoardFull(char board[3][3]) {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            if (board[i][j] == ' ') {
                return 0; // Board is not full
            }
        }
    }
    return 1; // Board is full
}
// Function to let the computer make a move
void computerMove(char board[3][3]) {
    int row, col;
    // Seed for random number generation
    srand(time(NULL));
    do {
        // Generate random row and column
        row = rand() % 3;
        col = rand() % 3;
    } while (board[row][col] != ' '); // Keep generating until an empty spot is found
    // Make the move
    board[row][col] = 'O';
}
// Function to play the Tic-Tac-Toe game
void playGame() {
    char board[3][3] = {{' ', ' ', ' '}, {' ', ' ', ' '}, {' ', ' ', ' '}};
    int turn = 1; // 1 for player, 0 for computer
    while (1) {
        printBoard(board);
        if (turn) {
            // Player's turn
            int row, col;
            printf("Enter row (1-3) and column (1-3) to make a move: ");
            scanf("%d %d", &row, &col);
            // Convert to 0-based indices
            row--;
            col--;
            if (row < 0 || row >= 3 || col < 0 || col >= 3 || board[row][col] != ' ') {
                printf("Invalid move. Try again.\n");
                continue;
            }
            board[row][col] = 'X';
            // Check if the player won
            if (checkWin(board, 'X')) {
                printBoard(board);
                printf("Congratulations! You won!\n");
                break;
            }
        } else {
            // Computer's turn
            printf("Computer is making a move...\n");
            computerMove(board);
            // Check if the computer won
            if (checkWin(board, 'O')) {
                printBoard(board);
                printf("Computer wins! Better luck next time.\n");
                break;
            }
        }
        // Check for a tie
        if (isBoardFull(board)) {
            printBoard(board);
            printf("It's a tie! The board is full.\n");
            break;
        }
        // Switch turns
        turn = !turn;
    }
}
int main() {
    printf("Welcome to Tic-Tac-Toe!\n");
    printf("You are 'X', and the computer is 'O'.\n");
    playGame();
    return 0;
}
.png) 
 
 
Follow us