def GameLoop(): #Initialize game variables turn = '' winner = False maxIteration = 1000 ## Initialize the gameboard gameboard = GameManager.Gameboard() gameboard.__init__() ## Initialize the decks obj = GameManager.Card(card1) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card1) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card2) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card2) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card3) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card3) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card3) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card4) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card4) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card5) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card5) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card6) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card7) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card7) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card8) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card9) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card10) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card10) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card11) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card11) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card12) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card13) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card13) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card14) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card15) obj.setOwner('p') gameboard.playerDeck.append(obj) obj.setOwner('o') gameboard.oppDeck.append(obj) obj = GameManager.Card(card15) obj.setOwner('p') gameboard.playerDeck.append(obj) obj.setOwner('o') gameboard.oppDeck.append(obj) obj = GameManager.Card(card16) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card17) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) for i in range(3): obj = GameManager.Card(card18) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card19) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card19) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card20) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card20) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card21) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card22) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card22) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card23) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card23) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) for i in range(12): obj = GameManager.Card(card24) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) for i in range(8): obj = GameManager.Card(card25) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) # Set the gameboard to the default state gameboard.setup() #Control game variable go = True while go == True: # Get players board state from the user getPlayerActive(gameboard) # Get players benched pokemon getPlayerBench(gameboard) #Get player's hand getPlayerHand(gameboard) #Get player's discard getPlayerDiscard(gameboard) #Get stadium in play getStadium(gameboard) #get player's prizes getPlayerPrize(gameboard) #find out if energy was played this turn getEnergyPlayed(gameboard) #find out if supporter was played this turn getSupporterPlayed(gameboard) # Get opponents active pokemon getOppActive(gameboard) #Get opponent's benched pokemon getOppBench(gameboard) #Get opponents discard getOppDiscard(gameboard) #Get opponent's hand getOppHand(gameboard) #Get opponents prizes getOppPrize(gameboard) ## Check for win condition gameOver = gameboard.checkWinCon(gameboard.turn) if gameOver != 1 and gameOver != 0: selectedMove, name = mcts.uct(gameboard, maxIteration) move = parseMove(selectedMove, name) print("The suggested move is " + move) print("Ratio: " + mcts.repr()) elif gameOver == 1: print("Player has won") newGame() elif gameOver == 0: print("Opponent has won") newGame() temp = input("Press enter to continue. Enter 'quit' to exit\n") if temp.lower() == 'quit': sys.exit() resetState(gameboard) GameLoop()
def GameLoop(): # Game loop should keep track of whose turn it is # using the turn flag. We can then use this flag to # set up the functions in the Gamemanager file to # condense the fuctions that are currently seperated # like player and opp prize setups. At the begining of # the game we can have a random number generator acting # as a coin to select who goes first and sets the flag. # Then all the setups will take place for that player then # change the flag and setup the next player and so on. # We just need to make sure we setup the boardstate before hand, # ie have prizes layed out and determine mulligans. #Start a new game turn = '' winner = False ## Initialize the gameboard gameboard = GameManager.Gameboard() ## Initialize the decks obj = GameManager.Card(card1) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card1) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card2) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card2) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card3) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card3) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card3) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card4) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card4) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card5) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card5) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card6) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card7) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card7) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card8) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card9) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card10) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card10) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card11) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card11) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card12) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card13) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card13) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card14) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card15) obj.setOwner('p') gameboard.playerDeck.append(obj) obj.setOwner('o') gameboard.oppDeck.append(obj) obj = GameManager.Card(card15) obj.setOwner('p') gameboard.playerDeck.append(obj) obj.setOwner('o') gameboard.oppDeck.append(obj) obj = GameManager.Card(card16) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card17) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) for i in range(3): obj = GameManager.Card(card18) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card19) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card19) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card20) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card20) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card21) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card22) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card22) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card23) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) obj = GameManager.Card(card23) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) for i in range(12): obj = GameManager.Card(card24) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) for i in range(8): obj = GameManager.Card(card25) gameboard.playerDeck.append(obj) gameboard.oppDeck.append(obj) # Set the gameboard to the default state gameboard.setup() #Control game go = True while go == True: # Get players board state from the user getPlayerActive(gameboard) # Get players benched pokemon getPlayerBench(gameboard) #Get player's hand getPlayerHand(gameboard) #Get player's discard getPlayerDiscard(gameboard) #Get stadium in play getStadium(gameboard) #get player's prizes getPlayerPrize(gameboard) # Get opponents active pokemon getOppActive(gameboard) #Get opponent's benched pokemon getOppBench(gameboard) #Get opponents discard getOppDiscard(gameboard) #Get opponent's hand getOppHand(gameboard) #Get opponents prizes getOppPrize(gameboard) ## Check for win condition gameOver = gameboard.checkWinCon(gameboard.turn) if gameOver != 1 and gameOver != 0: selectedMove = str(mcts.uct(gameboard,50)) move = parseMove(selectedMove) print("The suggested move is " + move) elif gameOver == 1: print("Player has won") newGame() elif gameOver == 0: print("Opponent has won") newGame() del gameboard input("Press enter to continue.") GameLoop()