0% found this document useful (0 votes)
80 views4 pages

Tic Tac Toe - Py

This document defines the logic for a tic-tac-toe game. It initializes a board as a list, sets up player turns alternating between X and O, includes functions to display the board, check for a win or tie, and change the current player. The main play_game function runs the game loop, calling functions to display the board, handle turns, and check if the game is over after each turn until a player wins or it's a tie.

Uploaded by

Franklin Nguyen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
80 views4 pages

Tic Tac Toe - Py

This document defines the logic for a tic-tac-toe game. It initializes a board as a list, sets up player turns alternating between X and O, includes functions to display the board, check for a win or tie, and change the current player. The main play_game function runs the game loop, calling functions to display the board, handle turns, and check if the game is over after each turn until a player wins or it's a tie.

Uploaded by

Franklin Nguyen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
You are on page 1/ 4

# Design board

board = ["-", "-", "-",


"-", "-", "-",
"-", "-", "-"]
# Check if the game is over
game_on = True
# Check the winner
winner = None

# Check the current player (X first)


current_player = "X"

# Play the game


def play_game():
# Show the initial game board
display_board()
# Loop until the game ends
while game_on:
# Handle turn
Turn(current_player)
# Check if the game is over
check_if_game_over()
# Change the player
change_player()
# Print the winner or tie
if winner =="X" or winner =="O":
print (winner + " won ")
elif winner == None:
print ("Tie")

def display_board():
print("\n")
print(board[0] + "|"+ board[1]+ "|"+ board[2]+ " 1|2|3")
print(board[3] + "|"+ board[4]+ "|"+ board[5]+ " 4|5|6")
print(board[6] + "|"+ board[7]+ "|"+ board[8]+ " 7|8|9")
print("\n")

def Turn(player):
# Get position
print(player + "'s turn")
position = input("Choose a position from 1-9: ")

# Check if the input is valid


valid= False
while not valid:
# Validation
while position not in ["1", "2", "3", "4", "5", "6", "7", "8", "9"]:
position = input("Choose a position from 1-9: ")
# Get correct index in the board list
position= int(position)-1
# Check the available space on the board
if board[position] == "-":
valid = True
else:
print("You can't go there, please try again")
# Place the move
board[position] = player
# Show the game board
display_board()

# Check if the game is over


def check_if_game_over():
check_winner()
check_tie()
# Check to see the winner
def check_winner():
global winner
row_winner= check_rows()
column_winner = check_columns()
diagonal_winner= check_diagonals()
#Get the winner
if row_winner:
winner = row_winner
elif column_winner:
winner= column_winner
elif diagonal_winner:
winner = diagonal_winner
else:
winner= None

# Check the rows for winner


def check_rows():
global game_on
#Check the row_streak
row_1 = board[0] ==board[1] ==board[2] != "-"
row_2 = board[3] ==board[4] ==board[5] != "-"
row_3 = board[6] ==board[7] ==board[8] != "-"
# signal a win if there is a row streak
if row_1 or row_2 or row_3:
game_on= False
# Return the winner
if row_1:
return board[0]
elif row_2:
return board[3]
elif row_3:
return board[6]
else:
return None

# Check the columns for winner


def check_columns():
global game_on
#Check the row_streak
column_1 = board[0] ==board[3] ==board[6] != "-"
column_2 = board[1] ==board[4] ==board[7] != "-"
column_3 = board[2] ==board[5] ==board[8] != "-"
# signal a win if there is a column streak
if column_1 or column_2 or column_3:
game_on= False
# Return the winner
if column_1:
return board[0]
elif column_2:
return board[1]
elif column_3:
return board[2]
else:
return None

# Check the diagonals for winner


def check_diagonals():
global game_on
#Check the row_streak
diagonal_1 = board[0] ==board[4] ==board[8] != "-"
diagonal_2 = board[2] ==board[4] ==board[6] != "-"
# signal a win if there is a column streak
if diagonal_1 or diagonal_2:
game_on= False
# Return the winner
if diagonal_1:
return board[0]
elif diagonal_2:
return board[2]
else:
return None
# Check if there is a tie
def check_tie():
global game_on
# If board is full
if "-" not in board:
game_on = False
return True
else:
return False
# Change the player
def change_player():
global current_player
# If the current player is X, make it O
if current_player =="X":
current_player ="O"
# Vice versa
elif current_player =="O":
current_player = "X"
# Finish
play_game()

You might also like