Skip to content

Instantly share code, notes, and snippets.

@harish3124
Last active September 23, 2021 11:31
Show Gist options
  • Save harish3124/12265c5553d806fa5d218a79197e4541 to your computer and use it in GitHub Desktop.
Save harish3124/12265c5553d806fa5d218a79197e4541 to your computer and use it in GitHub Desktop.
Tic Tac Toe in Python
# --------------------- Variable --------------------------
game_board = [" - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - "]
players = [" X ", " O "]
winner = ""
game_still_on = True
exception_log = []
# -------------- End ----------------
# ----------- Functions -------------
def print_board():
print()
print(
game_board[2]
+ " | "
+ game_board[1]
+ " | "
+ game_board[0]
+ "\n"
+ game_board[5]
+ " | "
+ game_board[4]
+ " | "
+ game_board[3]
+ "\n"
+ game_board[8]
+ " | "
+ game_board[7]
+ " | "
+ game_board[6]
)
def player_input(player):
input_position = input("Enter a position from 1-9: ")
try:
input_position = 8 - (int(input_position) - 1)
game(player, input_position)
except Exception:
print("\n Invalid Input ! Try Again ! \n")
player_input(player)
def game(player, input_position):
if game_board[input_position] == " - ":
game_board[input_position] = player
else:
print("\n Position already taken ! Try Again ! \n")
player_input(player)
def check_columns():
global winner
if game_board[0] == game_board[1] == game_board[2] != " - ":
winner = game_board[0]
elif game_board[3] == game_board[4] == game_board[5] != " - ":
winner = game_board[3]
elif game_board[6] == game_board[7] == game_board[8] != " - ":
winner = game_board[6]
def check_rows():
global winner
if game_board[0] == game_board[3] == game_board[6] != " - ":
winner = game_board[0]
elif game_board[1] == game_board[4] == game_board[7] != " - ":
winner = game_board[1]
elif game_board[2] == game_board[5] == game_board[8] != " - ":
winner = game_board[2]
def check_diagonals():
global winner
if game_board[0] == game_board[4] == game_board[8] != " - ":
winner = game_board[0]
elif game_board[2] == game_board[4] == game_board[6] != " - ":
winner = game_board[2]
def main():
global game_still_on, winner
while game_still_on:
for player in players:
print_board()
print(player + "'s Turn : ")
player_input(player)
check_columns()
check_rows()
check_diagonals()
if winner in players:
print(winner + " Won !")
exit()
elif " - " not in game_board:
print("Tie !")
exit()
# --------------- End ------------------
# --------------- Call -----------------
if __name__ == "__main__":
main()
# --------------- End ------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment