Python Numpy MiniProjects : Implementation of Tic-Tac-Toe game

     Tic-Tac-Toe is a thinking game between two opponents. Each one has a symbol ‘o’ or ‘x’. The first person who built the three consecutive rows or columns or diagonals win the game. Opponent player will keep on move their symbols to make sure that opposite person should not make the three consecutive moves.

Let us implement it using Numpy Arrays

Implementation:

import numpy as np1

# First a 3x3 game board is created

board = np1.full((3, 3), "-")

def display_board():

    print("\nCurrent Board:")

    print(board)

def check_winner(player):

    # Check for rows to find three consecutive moves

    for row in board:

        if np1.all(row == player):

            return True

    # Check columns for three consecutive columns

    for col in board.T:

        if np1.all(col == player):

            return True

    # Check diagonals for three consecutive elements

    if np1.all(np1.diag(board) == player):

        return True

    if np1.all(np1.diag(np1.fliplr(board)) == player):

        return True

    return False

def board_full():

    return np1.all(board != "-")

# Players

players = ["X", "O"]

turn = 0

while True:

    display_board()

    player = players[turn % 2]

    print(f"\nPlayer {player}'s Turn")

    row = int(input("Enter row (0-2): "))

    col = int(input("Enter column (0-2): "))

    # Validate move

    if row not in range(3) or col not in range(3):

        print("Invalid position! Try again.")

        continue

    if board[row, col] != "-":

        print("Position already occupied! Try again.")

        continue

    board[row, col] = player

    # Check winner

    if check_winner(player):

        display_board()

        print(f"\n🎉 Player {player} wins!")

        break

    # Check draw

    if board_full():

        display_board()

        print("\n🤝 It's a Draw!")

        break

    turn += 1

Output:

Current Board:

[['-' '-' '-']

 ['-' '-' '-']

 ['-' '-' '-']]

Player X's Turn

Enter row (0-2): 1

Enter column (0-2): 0

Current Board:

[['-' '-' '-']

 ['X' '-' '-']

 ['-' '-' '-']]

Player O's Turn

Enter row (0-2): 0

Enter column (0-2): 0

Current Board:

[['O' '-' '-']

 ['X' '-' '-']

 ['-' '-' '-']]

Player X's Turn

Enter row (0-2): 1

Enter column (0-2): 1

Current Board:

[['O' '-' '-']

 ['X' 'X' '-']

 ['-' '-' '-']]

Player O's Turn

Enter row (0-2): 1

Enter column (0-2): 2

Current Board:

[['O' '-' '-']

 ['X' 'X' 'O']

 ['-' '-' '-']]

Player X's Turn

Enter row (0-2): 0

Enter column (0-2): 1

Current Board:

[['O' 'X' '-']

 ['X' 'X' 'O']

 ['-' '-' '-']]

Player O's Turn

Enter row (0-2): 2

Enter column (0-2): 1

Current Board:

[['O' 'X' '-']

 ['X' 'X' 'O']

 ['-' 'O' '-']]

Player X's Turn

Enter row (0-2): 0

Enter column (0-2): 2

Current Board:

[['O' 'X' 'X']

 ['X' 'X' 'O']

 ['-' 'O' '-']]

 

Player O's Turn

Enter row (0-2): 2

Enter column (0-2): 0

Current Board:

[['O' 'X' 'X']

 ['X' 'X' 'O']

 ['O' 'O' '-']]

Player X's Turn

Enter row (0-2): 2

Enter column (0-2): 2

Current Board:

[['O' 'X' 'X']

 ['X' 'X' 'O']

 ['O' 'O' 'X']]

🤝 It's a Draw!

This is the way of implementing Tic-Tac-Toe in Numpy arrays using Python. Hope, you understood the code. Keep Coding!!!

Comments

Popular posts from this blog

How to create a XML DTD for displaying student details

Employee record management in C

Datatypes and Variables in java script