Python - TicTacToe

def print_board(board):

    print("        |               |")

    print("   "+board[0]+"    |       "+board[1]+"       |    "+board[2])

    print("        |               |")

    print("----------------------------------")

    print("        |               |")

    print("   "+board[3]+"    |       "+board[4]+"       |    "+board[5])

    print("        |               |")

    print("----------------------------------")

    print("        |               |")

    print("   "+board[6]+"    |       "+board[7]+"       |    "+board[8])

    print("        |               |")


def begin() :

    global iswin

    global isdraw

    global flag

    global board

    global a

    global count

    print_board(board)

    while (not iswin)and(not isdraw):

        if flag == 'X':

            print("X's turn , please type the position: ")

            a = int(input())

            if(a < 1 or a > 8):

                print("Invalid position")

                continue

            if(board[a-1] != " "):

                print("Already occupied")

                continue

            board[a-1] = 'X'

            if check(board):

                print_board(board)

                print("X won")

                iswin = True

                continue

            flag = 'O'

        else:

            print("O's turn , please type the position: ")

            a = int(input())

            if(a < 1 or a > 8):

                print("Invalid position:")

                continue

            if(board[a-1] != " "):

                print("Already occupied")

                continue

            board[a-1] = 'O'

            if check(board):

                print_board(board)

                print("O won")

                iswin = True

                continue

            flag = 'X'

        print_board(board)

        count += 1

        if count == 9:

            isdraw = True

        check(board)

    

    if isdraw:

        print("It's a draw")

    print("Do you wanna play again? Y/N :")

    til = input()

    if til == 'Y' or til == 'y':

        restart()




def check(board):

    if checkrow() or checkcol() or checkdia():

        return True

    return False


def checkrow():

    if (board[0] == board[1] == board[2] != " ") or (board[3] == board[4] == board[5] != " ") or (board[6] == board[7] == board[8] != " "):

        return True

    return False


def checkcol():

    if (board[0] == board[3] == board[6]!= " ") or (board[1] == board[4] == board[7]!= " ") or (board[2] == board[5] == board[8]!= " "):

        return True

    return False


def checkdia():

    if (board[0] == board[4] == board[8] != " ") or (board[2] == board[4] == board[6]!= " "):

        return True

    return False


def restart():

    global iswin

    global isdraw

    global flag

    global board

    global a

    global count

    iswin = False

    isdraw = False

    flag = 'X'

    board = [" "," "," "," "," "," "," "," "," "]

    a = -1

    count = 0

    begin()




iswin = False

isdraw = False

flag = 'X'

board = [" "," "," "," "," "," "," "," "," "]

a = -1

count = 0

print("Do you want to begin the game? Y/N:")

x = input()

if x == 'y' or x == 'Y':

    begin()

else:

    print("Bye bye!!!")

print_board(board)

Comments