Last active
September 23, 2021 11:31
-
-
Save zro404/12265c5553d806fa5d218a79197e4541 to your computer and use it in GitHub Desktop.
Tic Tac Toe in Python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# --------------------- 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