Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ############### Game mechanics functions ###############
- from OX_Game_file2 import PlayWithAi
- # Return 0 if Draw ,
- # 1 first play win ,
- # -1 the second player win
- # 3 continue the Game
- def TerminalState(Game, playerTurn):
- if playerTurn == 1:
- utility = -1
- else:
- utility = 1
- # End of the Game
- for i in range(3):
- if Game[i*3] == Game[(i*3)+1] == Game[(i*3)+2]:
- return utility
- elif Game[i] == Game[i+3] == Game[i+6]:
- return utility
- if Game[0] == Game[4] == Game[8]:
- return utility
- elif Game[2] == Game[4] == Game[6]:
- return utility
- possibleActions = 0
- for i in range(9):
- if Game[i] != "O" and Game[i] != "X":
- possibleActions += 1
- if possibleActions == 0:
- return 0
- return 3
- ############### Game display functions ###############
- def ShowGame(Game):
- print()
- for x in range(9):
- if (x+1)%1 == 0:
- print(" ", end = "")
- print(Game[x], end = " ")
- if (x+1)%3 == 0:
- print("\n")
- # Check the possibility of player choose
- def CheckAction(number, Game, OX):
- while True:
- if number.isnumeric():
- number = int(number)
- else:
- number = input("Try Again: ")
- continue
- if number == Game[number - 1]:
- Game[number-1] = OX
- return
- else:
- number = input("Try Again: ")
- # Two Players Mode
- def TwoPlayers(players, OX, Game):
- playerTurn = 0
- while True:
- ShowGame(Game)
- print(players[playerTurn], ": ", end = "")
- CheckAction (input(), Game, OX)
- Terminal = TerminalState(Game, playerTurn)
- if Terminal == 1 or Terminal == -1:
- ShowGame(Game)
- print("\n", players[playerTurn], "Win!\n")
- return
- elif Terminal == 0:
- ShowGame(Game)
- print("\nDraw!\n")
- return
- # Change players
- if playerTurn == 1:
- playerTurn = 0
- else:
- playerTurn += 1
- # Change OX
- if OX == "O":
- OX = "X"
- else:
- OX = "O"
- return
- ############### Game Menu functions ###############
- def start(players, OX):
- while True:
- print("\n\t----- New Game -----\n",
- "1. Play with AI\n",
- "2. Two players\n",
- "3. Return\n")
- Game = []
- for i in range(9):
- Game.append(i+1)
- select = input(" Select: ")
- if select == "1":
- PlayWithAi(Game, OX)
- Game = []
- for i in range(9):
- Game.append(i+1)
- elif select == "2":
- TwoPlayers(players, OX, Game)
- Game = []
- for i in range(9):
- Game.append(i+1)
- elif select == "3":
- return
- else:
- select = input(" Try Again: ")
- def playerName():
- print("\n\t----- Players' Name -----\n")
- player = []
- player.append(input(" Player1: "))
- player.append(input(" Player2: "))
- return player
- def selectOX():
- print("\n\t----- select either O or X -----\n")
- select = input(" Select: ")
- while True:
- if select.lower() == "o":
- return "O"
- elif select.lower() == "x":
- return "X"
- else:
- select = input(" Try Again: ")
- def menu():
- players = ["Player1", "Player2"]
- OX = "O"
- while True:
- print("\n\t----- O/X Game -----\n",
- "1. Start new game\n",
- "2. Player name\n",
- "3. Select O or X\n",
- "4. Exit\n")
- select = input(" Select: ")
- while True:
- if select == "1":
- start(players, OX)
- elif select == "2":
- players = playerName()
- elif select == "3":
- OX = selectOX()
- elif select == "4":
- print("\n\n Thank you for playing\n")
- return
- else:
- select = input(" Try Again: ")
- continue
- break
- menu()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement