Inspiration

Tic-tac-toe, noughts and crosses, or Xs and Os is a paper-and-pencil game for two players who take turns marking the spaces in a three-by-three grid with X or O. The player who succeeds in placing three of their marks in a horizontal, vertical, or diagonal row is the winner.

How we built it

1.Create a board using a 2-dimensional array and initialize each element as empty. We can represent empty using any symbol you like. Here, we are going to use a hyphen. '-'. 2.Write a function to check whether the board is filled or not . Iterate over the board and return false if the board contains an empty sign or else return true. 3.Write a function to check whether a player has won or not . We have to check all the possibilities that we discussed in the previous section. Check for all the rows, columns, and two diagonals. 4.Write a function to show the board as we will show the board multiple times to the users while they are playing. 5.Write a function to start the game.Select the first turn of the player randomly. Write an infinite loop that breaks when the game is over (either win or draw). (i)Show the board to the user to select the spot for the next move. (ii)Ask the user to enter the row and column number. (iii)Update the spot with the respective player sign. (iv)Check whether the current player won the game or not. (v)If the current player won the game, then print a winning message and break the infinite loop. (vi)Next, check whether the board is filled or not. (vii)If the board is filled, then print the draw message and break the infinite loop. 6.Finally, show the user the final view of the board. Here is the code made by myself in order to create a Tic-Tac-Toe using Python. Code:- 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)

def fix_spot(self, row, col, player):
    self.board[row][col] = player

def is_player_win(self, 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

    for row in self.board:
        for item in row:
            if item == '-':
                return False
    return True

def is_board_filled(self):
    for row in self.board:
        for item in row:
            if item == '-':
                return False
    return True

def swap_player_turn(self, player):
    return 'X' if player == 'O' else 'O'

def show_board(self):
    for row in self.board:
        for item in row:
            print(item, end=" ")
        print()

def start(self):
    self.create_board()

    player = 'X' if self.get_random_first_player() == 1 else 'O'
    while True:
        print(f"Player {player} turn")

        self.show_board()

        # taking user input
        row, col = list(
            map(int, input("Enter row and column numbers to fix spot: ").split()))
        print()

        # fixing the spot
        self.fix_spot(row - 1, col - 1, player)

        # checking whether current player is won or not
        if self.is_player_win(player):
            print(f"Player {player} wins the game!")
            break

        # checking whether the game is draw or not
        if self.is_board_filled():
            print("Match Draw!")
            break

        # swapping the turn
        player = self.swap_player_turn(player)

    # showing the final view of board
    print()
    self.show_board()

starting the game

tic_tac_toe = TicTacToe() tic_tac_toe.start()

Accomplishments that we're proud of

To Be able to make the program using Python that is use to create a Tic-Tac-Toe Game.......

Built With

Share this project:

Updates