Limited Period Offer : 20% Discount on online/offline courses, for more details call/whatsapp

Tic-Tac-Toe Game

1 min read
2 years ago By Aniket Prajapati

Here is the tic-tac-toe game using c++ language the code is optimized and this article will help you to get logic about how to run functions without any confusion.

#include <bits/stdc++.h>

using namespace std;


bool isGameOver(const vector<vector<char>>& board, char player) {

    for (int i = 0; i < 3; ++i) {
        if (board[i][0] == player && board[i][1] == player && board[i][2] == player) return true;
        if (board[0][i] == player && board[1][i] == player && board[2][i] == player) return true;
    }
    if (board[0][0] == player && board[1][1] == player && board[2][2] == player) return true;
    if (board[0][2] == player && board[1][1] == player && board[2][0] == player) return true;


    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 3; ++j) {
            if (board[i][j] != 'X' && board[i][j] != 'O') return false;
        }
    }
    return true;
}


void printBoard(const vector<vector<char>>& board) {
    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 3; ++j) {
            cout << board[i][j];
            if (j < 2) cout << " | ";
        }
        cout << endl;
        if (i < 2) cout << "---------" << endl;
    }
}

int main() {
    vector<vector<char>> board(3, vector<char>(3, ' '));
    bool player1Turn = true;

    cout << "Welcome to Tic-Tac-Toe! Game" << endl;

    while (true) {

        printBoard(board);


        char currentPlayer = (player1Turn) ? 'X' : 'O';

        cout << "Player " << currentPlayer << ", Enter your move : ";
        int row, col;
        cin >> row >> col;


        if (row < 0 || row >= 3 || col < 0 || col >= 3 || board[row][col] != ' ') {
            cout << "Invalid move. Try again." << endl;
            continue;
        }

        board[row][col] = currentPlayer;

        if (isGameOver(board, currentPlayer)) {
            printBoard(board);
            cout << "Player " << currentPlayer << " wins!" << endl;
            break;
        }

        player1Turn = !player1Turn; // Switch to the other player's turn.
    }

    cout << "Game over." << endl;

    return 0;
}
Sep 15, 2023 21:57 Back to Articles

Other Articles

Binary Search top interview questrions.

As we know binary search itself is a imp topic to be learned in Data Structures and Algorithm so, This article contains all the important questions that can be asked in coding interview or online assessment(OA) . Here the questions clear all the concepts and the variety in questions helps to understands the logic behind the concepts .

2 years ago By Aniket Prajapati
Quill Editor in laravel livewire

using quill editor in livewire code

2 years ago By Santosh Kshirsagar
Prim's Algorithm

Prim's Algorithm is a graph algorithm and this algorithm works as it starts with a single node and then moves through several adjacent nodes form that node , in order to explore all of the connected edges along the way.

2 years ago By Aniket Prajapati
How to use and upload profile photos to AWS s3 using laravel jetstream

Using jetsream to upload photos to s3 configuration and details

2 years ago By Santosh Kshirsagar