Tic Tac Toe original Pam Qian

 # Pam Qian 2016 Fall CS 112 Python Midterm Project II

# Tic Tack Toe 


def main():

# The main function

    introduction = intro()

    board = create_grid()

    pretty = printPretty(board)

    symbol_1, symbol_2 = sym()

    full = isFull(board, symbol_1, symbol_2) # The function that starts the game is also in here.

    


    



def intro():

# This function introduces the rules of the game Tic Tac Toe

    print("Hello! Welcome to Pam's Tic Tac Toe game!")

    print("\n")

    print("Rules: Player 1 and player 2, represented by X and O, take turns "

          "marking the spaces in a 3*3 grid. The player who succeeds in placing "

          "three of their marks in a horizontal, vertical, or diagonal row wins.")

    print("\n")

    input("Press enter to continue.")

    print("\n")




def create_grid():

# This function creates a blank playboard

    print("Here is the playboard: ")

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

             [" ", " ", " "],

             [" ", " ", " "]]        

    return board




def sym():

# This function decides the players' symbols

    symbol_1 = input("Player 1, do you want to be X or O? ")

    if symbol_1 == "X":

        symbol_2 = "O"

        print("Player 2, you are O. ")

    else:

        symbol_2 = "X"

        print("Player 2, you are X. ")

    input("Press enter to continue.")

    print("\n")

    return (symbol_1, symbol_2)




def startGamming(board, symbol_1, symbol_2, count):

# This function starts the game.


    # Decides the turn

    if count % 2 == 0:

        player = symbol_1

    elif count % 2 == 1:

        player = symbol_2

    print("Player "+ player + ", it is your turn. ")

    row = int(input("Pick a row:"

                    "[upper row: enter 0, middle row: enter 1, bottom row: enter 2]:"))

    column = int(input("Pick a column:"

                       "[left column: enter 0, middle column: enter 1, right column enter 2]"))



    # Check if players' selection is out of range

    while (row > 2 or row < 0) or (column > 2 or column < 0):

        outOfBoard(row, column)

        row = int(input("Pick a row[upper row:"

                        "[enter 0, middle row: enter 1, bottom row: enter 2]:"))

        column = int(input("Pick a column:"

                           "[left column: enter 0, middle column: enter 1, right column enter 2]"))


        # Check if the square is already filled

    while (board[row][column] == symbol_1)or (board[row][column] == symbol_2):

        filled = illegal(board, symbol_1, symbol_2, row, column)

        row = int(input("Pick a row[upper row:"

                        "[enter 0, middle row: enter 1, bottom row: enter 2]:"))

        column = int(input("Pick a column:"

                            "[left column: enter 0, middle column: enter 1, right column enter 2]"))    

        

    # Locates player's symbol on the board

    if player == symbol_1:

        board[row][column] = symbol_1

            

    else:

        board[row][column] = symbol_2

    

    return (board)




def isFull(board, symbol_1, symbol_2):

    count = 1

    winner = True

# This function check if the board is full

    while count < 10 and winner == True:

        gaming = startGamming(board, symbol_1, symbol_2, count)

        pretty = printPretty(board)

        

        if count == 9:

            print("The board is full. Game over.")

            if winner == True:

                print("There is a tie. ")


        # Check if here is a winner

        winner = isWinner(board, symbol_1, symbol_2, count)

        count += 1

    if winner == False:

        print("Game over.")

        

    # This is function gives a report 

    report(count, winner, symbol_1, symbol_2)




def outOfBoard(row, column):

# This function tells the players that their selection is out of range

    print("Out of boarder. Pick another one. ")

    

    


def printPretty(board):

# This function prints the board nice!

    rows = len(board)

    cols = len(board)

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

    for r in range(rows):

        print(board[r][0], " |", board[r][1], "|", board[r][2])

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

    return board




def isWinner(board, symbol_1, symbol_2, count):

# This function checks if any winner is winning

    winner = True

    # Check the rows

    for row in range (0, 3):

        if (board[row][0] == board[row][1] == board[row][2] == symbol_1):

            winner = False

            print("Player " + symbol_1 + ", you won!")

   

        elif (board[row][0] == board[row][1] == board[row][2] == symbol_2):

            winner = False

            print("Player " + symbol_2 + ", you won!")

            

            

    # Check the columns

    for col in range (0, 3):

        if (board[0][col] == board[1][col] == board[2][col] == symbol_1):

            winner = False

            print("Player " + symbol_1 + ", you won!")

        elif (board[0][col] == board[1][col] == board[2][col] == symbol_2):

            winner = False

            print("Player " + symbol_2 + ", you won!")


    # Check the diagnoals

    if board[0][0] == board[1][1] == board[2][2] == symbol_1:

        winner = False 

        print("Player " + symbol_1 + ", you won!")


    elif board[0][0] == board[1][1] == board[2][2] == symbol_2:

        winner = False

        print("Player " + symbol_2 + ", you won!")


    elif board[0][2] == board[1][1] == board[2][0] == symbol_1:

        winner = False

        print("Player " + symbol_1 + ", you won!")


    elif board[0][2] == board[1][1] == board[2][0] == symbol_2:

        winner = False

        print("Player " + symbol_2 + ", you won!")


    return winner

    



def illegal(board, symbol_1, symbol_2, row, column):

    print("The square you picked is already filled. Pick another one.")


    

def report(count, winner, symbol_1, symbol_2):

    print("\n")

    input("Press enter to see the game summary. ")

    if (winner == False) and (count % 2 == 1 ):

        print("Winner : Player " + symbol_1 + ".")

    elif (winner == False) and (count % 2 == 0 ):

        print("Winner : Player " + symbol_2 + ".")

    else:

        print("There is a tie. ")


# Call Main

main()

Comments

Popular posts from this blog

How to became a junior Engineer

Pima Dataset

1.Import and Export(How to read csv file using manualvfunction)