示例#1
0
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()
示例#2
0
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()