🐍 Can be run on Jupyter notebook
#IMPORTING USEFUL LIBRARIES
from IPython.display import clear_outputimport random
#DISPLAYING THE TIC TAC TOE
def display_board(board):clear_output()
print(f' {board[7]} | {board[8]} | {board[9]} ')
print('-----------')
print(f' {board[4]} | {board[5]} | {board[6]} ')
print('-----------')
print(f' {board[1]} | {board[2]} | {board[3]} ')
#GAME BEGINS
def player_input():print('NEW GAME | Press 0 to End Game')
#VARIABLE TO STORE THE SPOT PLAYER HAS CHOSEN
num=0#VARIABLE TO KEEP A COUNT OF SPOTS FILLED
count=0#VARIABLE TO STORE SYMBOL OF PLAYER CURRENTLY PLAYING
xo='#'#VARIABLE TO STORE YES OR NO TO PLAY AGAIN
yn='*'#RANDOM FIRST TURN OF PLAYERS
turn=bool(random.getrandbits(1))#RESETTING BOARD
test_board = ['#','1','2','3','4','5','6','7','8','9']#DISPLAYS BOARD
display_board(test_board)#STARTS GAME
while count<9:#CHECKS IF X HAS ALREADY WON
if ((test_board[5]=='X' and ((test_board[1]=='X' and test_board[9]=='X') or (test_board[3]=='X' and test_board[7]=='X') or (test_board[2]=='X' and test_board[8]=='X') or (test_board[4]=='X' and test_board[6]=='X'))) or (test_board[1]=='X' and ((test_board[2]=='X' and test_board[3]=='X') or (test_board[4]=='X' and test_board[7]=='X'))) or (test_board[9]=='X' and ((test_board[8]=='X' and test_board[7]=='X') or (test_board[6]=='X' and test_board[3]=='X')))):print('X wins')
yn=input('Want to play again? (Y/N):').upper()
if yn=='Y':
player_input()
break
else:
break
#CHECKS IF O HAS ALREADY WON
elif ((test_board[5]=='O' and ((test_board[1]=='O' and test_board[9]=='O') or (test_board[3]=='O' and test_board[7]=='O') or (test_board[2]=='O' and test_board[8]=='O') or (test_board[4]=='O' and test_board[6]=='O'))) or (test_board[1]=='O' and ((test_board[2]=='O' and test_board[3]=='O') or (test_board[4]=='O' and test_board[7]=='O'))) or (test_board[9]=='O' and ((test_board[8]=='O' and test_board[7]=='O') or (test_board[6]=='O' and test_board[3]=='O')))):print('O wins')
yn=input('Want to play again? (Y/N):').upper()
if yn=='Y':
player_input()
break
else:
break
#TAKES THE SPOT A PLAYER CHOOSES
else:if turn:
num=int(input('Player 1, enter number to place X:'))
xo='X'
else:
num=int(input('Player 2, enter number to place O:'))
xo='O'
#CHECKS IF SPOT CHOSEN IS CORRECT
if num<1 or num>9:#IF PLAYER CHOOSES 0, IT MEANS PLAYER HAS CHOSEN TO QUIT THE GAME
if num==0:print('Game Over!')
break
else:
print('Enter a number between 1 and 9')
#IF ALREADY FILLED SPOT IS CHOSEN AGAIN
elif test_board[num]=='X' or test_board[num]=='O':print('Spot already occupied.')
else:
turn=not turn
#FILLS SPOT
test_board[num]=xodisplay_board(test_board)
count+=1
#IF ALL 9 SPOTS FILLED, IT SKIPS THE WHILE LOOP AND PRINTS IT'S A TIE
print('It is a tie.')#REGAME?
yn=input('Want to play again? (Y/N):').upper()if yn=='Y':
player_input()
Comments
Post a Comment