当前位置: 首页>>代码示例>>Python>>正文


Python GameState.countSlideDownMatches方法代码示例

本文整理汇总了Python中GameState.GameState.countSlideDownMatches方法的典型用法代码示例。如果您正苦于以下问题:Python GameState.countSlideDownMatches方法的具体用法?Python GameState.countSlideDownMatches怎么用?Python GameState.countSlideDownMatches使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在GameState.GameState的用法示例。


在下文中一共展示了GameState.countSlideDownMatches方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: RegionSearch

# 需要导入模块: from GameState import GameState [as 别名]
# 或者: from GameState.GameState import countSlideDownMatches [as 别名]
class RegionSearch(object):
    """
    classdocs
    """

    def __init__(self, inDepth):
        """
        Constructor
        """
        self.game = GameState()
        self.numMoves = 0
        self.depth = inDepth
        pass

    "keeps searching for moves until the game is complete"

    def playGame(self):
        self.game.printState(self.game.gameArray)

        count = 0

        while self.game.isGoing():
            print("\nStarting move: " + datetime.datetime.fromtimestamp(time.time()).strftime("%Y-%m-%d %H:%M:%S"))
            testBoard = self.game.copyArr()

            bestMove = self.search(testBoard, self.depth)
            print(bestMove[0])

            # when at the end, all decisions might lead to an inevitable failure
            if not self.game.isValid(bestMove):
                pass

            # self.game.printState(self.game.gameArray)
            self.game.takeMove(bestMove[0])
            self.game.printState(self.game.gameArray)
            self.numMoves = self.numMoves + 1

        print(self.numMoves)
        pass

    "returns best move and the value of that move"
    "best move is only useful for the top-level call"

    def search(self, board, depth):
        if depth == 0:
            return (Move.up, 0)

        bestMove = Move.up
        bestValue = -1

        move = Move.up
        moveValue = self.searchDirection(board, depth, move)
        if moveValue > bestValue:
            bestMove = move
            bestValue = moveValue

        move = Move.left
        moveValue = self.searchDirection(board, depth, move)
        if moveValue > bestValue:
            bestMove = move
            bestValue = moveValue

        move = Move.right
        moveValue = self.searchDirection(board, depth, move)
        if moveValue > bestValue:
            bestMove = move
            bestValue = moveValue

        move = Move.down
        moveValue = self.searchDirection(board, depth, move)
        if moveValue > bestValue:
            bestMove = move
            bestValue = moveValue

        return (bestMove, bestValue)

    "returns the number of matches that a given move would make"
    "this only determines value of one move and no further searching"

    def valueOfMove(self, board, move):
        board = self.game.preRotate(move, board)

        value = 0
        for x in range(0, 4):
            value += self.game.countSlideDownMatches(x, board)

        board = self.game.postRotate(move, board)
        return value

    "returns the expected value of a given move searching with the given depth"

    def searchDirection(self, board, depth, move):
        testGame = GameState()
        testGame.setBoard(board)
        testGame.setBoard(testGame.copyArr())

        # if the move isn't valid, don't consider it
        if not testGame.isValid(move):
            return -1

#.........这里部分代码省略.........
开发者ID:greengatz,项目名称:senior_project,代码行数:103,代码来源:RegionSearch.py


注:本文中的GameState.GameState.countSlideDownMatches方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。