An AI that chooses moves in turn-based games using a probabilistic strategy.
- iOS 10.0+
- macOS 10.12+
- tvOS 10.0+
To use this strategy, you indicate whether a possible states of your game model represents a win, and the strategist randomly searches possible game model states in order to find moves that will likely result in winning the game. You provide information about your game model to the strategist by implementing the
GKGame protocols in your custom classes, then use the strategist’s methods to find optimal moves.
Choosing a Strategist
The Monte Carlo strategist is one of several strategist classes that GameplayKit provides. The key advantage of the
GKMonte class is performance. By using random sampling to make educated guesses about which sequences of moves to simulate, this strategy can arrive at a decision quickly even for games with large and complex state spaces. The cost of this strategy is strength of gameplay: because the strategist randomly samples possible moves, it may miss the best moves. Additionally, this strategy doesn’t need a scoring method to rate each game model state—instead, your game model class needs to implement only the
GKStrategist protocol for alternate strategies, as well as the methods and properties supported by all strategist classes.
Using a Monte Carlo Strategist
Using the Monte Carlo strategist in a game requires the following steps:
bestmethod to select the best possible move for the current player. This method returns a move object (that is, an instance of the custom class you create to adopt the
Move For Active Player()
Examine the move object to make use of the move selected by the strategist. You created this instance in the
gamemethod of your game model class to describe a possible move in your game, so examining the object gives you the information needed to perform that move.