Login
Order Now
Support
Python Assignment Help - Python Solution on TicTacToe Game

Python Assignment Help - Python Solution on TicTacToe Game

  • 11th Nov, 2022
  • 16:14 PM

Python Assignment Help - Python Solution on TicTacToe Game

import os

class Board:

    #Constructor should initialize the board to a blank slate
    def __init__(self):
        self.board = [[' ' for j in range(3)] for i in range(3)]    # 3x3 board initialized with ' '

    #Should print out the board 
    def display(self):
        print(" {} | {} | {}".format(self.board[0][0], self.board[0][1], self.board[0][2]))
        print("------------")
        print(" {} | {} | {}".format(self.board[1][0], self.board[1][1], self.board[1][2]))
        print("------------")
        print(" {} | {} | {}".format(self.board[2][0], self.board[2][1], self.board[2][2]))

    #Method that updates a cell on the board based off the player
    def update_cell(self, cell_no : str, player: str):
        d = {
            1 : (0, 0),
            2 : (0, 1),
            3 : (0, 2),
            4 : (1, 0),
            5 : (1, 1),
            6 : (1, 2),
            7 : (2, 0),
            8 : (2, 1),
            9 : (2, 2),
        }   # mapping of numbers to the tuple containing the corresponding row and column
        x, y = d[cell_no]
        if self.board[x][y] == ' ':
            self.board[x][y] = player

    #Determines if the Game has been won
    def is_winner(self,player: str):
        if (self.board[0][0] == self.board[0][1] == self.board[0][2] == player) or (self.board[1][0] == self.board[1][1] == self.board[1][2] == player) or (self.board[2][0] == self.board[2][1] == self.board[2][2] == player) or (self.board[0][0] == self.board[1][0] == self.board[2][0] == player) or (self.board[0][1] == self.board[1][1] == self.board[2][1] == player) or (self.board[0][2] == self.board[1][2] == self.board[2][2] == player) or (self.board[0][0] == self.board[1][1] == self.board[2][2] == player) or (self.board[0][2] == self.board[1][1] == self.board[2][0] == player):
            return True    # check for all possible ways to win
        return False

    #Checks if the game has been tied
    def is_tie(self):
        count = 0
        for i in range(3):
            for j in range(3):
                count += self.board[i][j] == ' '
        if (count == 0) and (not self.is_winner('X')) and (not self.is_winner('O')):    # if board is not empty and neither of player wins then tie
            return True
        return False

    #resets the game board for another round
    def reset(self):
        for i in range(3):
            for j in range(3):
                self.board[i][j] = ' '    # reset board

Share this post

assignment helpassignment helperassignment expertsassignment writing services