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 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
Level Order Traversal in Binary Tree

In a Binary Tree the level order traversal is used to traverse all the elements of binary tree by starting from root to traversing all nodes of one level before moving to other level.

2 years ago By Aniket Prajapati
Arrays Introduction

An array is a continuous block of memory location which can store data of same datatype.

2 years ago By Aniket Prajapati
Quill Editor in laravel livewire

using quill editor in livewire code

2 years ago By Santosh Kshirsagar