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

Tic-Tac-Toe Game

1 min read
1 year 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

Things you should learn to become good web developer for any tech stack

In this articles all concepts covered to become web developer

1 year ago By Santosh Kshirsagar
How to connect aws RDS instance using mysql workbench

Learn to connect RDS instance(mysql/mariadb) using mysql workbech.

2 years ago By Santosh Kshirsagar
Binary Tree

Binary Tree is a Non-Linear data structure which has atmost 2 child . A Binary tree is represented by a pointer to the topmost node (commonly known as the “root”) of the tree. If the tree is empty, then the value of the root is NULL. Each node of a Binary Tree contains the following parts:

2 years ago By Aniket Prajapati
Web Development as a career !! Web Development as a career !!

Web development offers a fulfilling career designing, developing, and maintaining websites and applications, combining creativity and technical skills in the digital realm.

2 years ago By Mitali Gupta