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
Post a Comment