Practical No.2
Practical No.2
import random
class TicTacToe:
def __init__(self):
self.board = []
def create_board(self):
for i in range(3):
row = []
for j in range(3):
row.append('-')
self.board.append(row)
def get_random_first_player(self):
return random.randint(0, 1)
self.board[row][col] = player
win = None
n = len(self.board)
# checking rows
for i in range(n):
win = True
for j in range(n):
if self.board[i][j] != player:
win = False
break
if win:
return win
# checking columns
for i in range(n):
win = True
for j in range(n):
if self.board[j][i] != player:
win = False
break
if win:
return win
# checking diagonals
win = True
for i in range(n):
if self.board[i][i] != player:
win = False
break
if win:
return win
win = True
for i in range(n):
if self.board[i][n - 1 - i] != player:
win = False
break
if win:
return win
return False
def is_board_filled(self):
if item == '-':
return False
return True
def show_board(self):
print()
def start(self):
self.create_board()
while True:
self.show_board()
row, col = list(map(int, input("Enter row and column numbers to fix spot: ").split()))
print()
if self.is_player_win(player):
break
if self.is_board_filled():
print("Match Draw!")
break
player = self.swap_player_turn(player)
print()
self.show_board()
tic_tac_toe = TicTacToe()
tic_tac_toe.start()
Output:
Player X turn
---
---
---
-X-
---
---
Player O turn
-X-
---
---
-X-
--O
---
Player X turn
-X-
--O
---
-X-
-XO
---
Player O turn
-X-
-XO
---
-X-
-XO
O--
Player X turn
-X-
-XO
O--
-X-
XXO
O--
Player O turn
-X-
XXO
O--
OX-
XXO
O--
Player X turn
OX-
XXO
O--