GKGameModel
2017-09-26 10:41
106 查看
GKGameModel
实现此协议来描述你的游戏模型,以便策略对象可以规划游戏动作。概括
通过实现此协议来描述回合制游戏玩法,供GKStrategist对象使用。策略使用你的游戏模型类(即实现了此协议的模型类),以及其他创建的自定义类(实现GKGameModelPlayer和GKGameModelUpdate 协议的类)来找到最佳动作。GameplayKit依赖于你的游戏模型类的其他策略算法。
• 识别游戏的可能状态,gameModelUpdatesForPlayer: 方法和你的移动类(实现GKGameModelUpdate 协议的类)描述了给定玩家轮到期间可用的一组移动。
• 拷贝游戏内容,然后模拟未来的移动。setGameModel: 方法允许GameplayKit使用游戏模型的单独实例,即不是表示游戏中的实际游戏的实例。applyGameModelUpdate:
方法使用移动类中的信息在拷贝的游戏中进行假设移动。
• 评估游戏未来的可能状态,每次GameplayKit在其游戏模型的副本中执行假设移动时,它会调用isWinForPlayer:,isLossForPlayer : 和orscoreForPlayer: 方法来从特定角色的角度评估游戏状态。
当你使用策略来规划游戏移动时,它会使用你的游戏模型将这些部分组合成一个策略:通过识别,执行和评估未来可能导致胜利的动作,策略会选择最有可能导致胜利的动作。此过程涉及使用copyWithZone:和setGameModel:方法来评估游戏模型的许多可能状态 - 为了获得最佳效果,请确保你的游戏模型类仅包含对描述游戏至关重要的信息,并且可以快速复制该状态。
Topics
跟踪玩家(Keeping Track of Players)
players
目前在游戏中的角色。(必须)activePlayer
当前活跃角色。(必须)评估游戏模型(Evaluating a Game Model)
- gameModelUpdatesForPlayer:
返回可用于指定角色的一组移动。(必须)- scoreForPlayer:
从指定角色的角度,返回一个数字评级游戏模型当前状态的可取性。- isLossForPlayer:
返回一个布尔值指示指定角色是否失败。- isWinForPlayer:
返回一个布尔值指示指定角色在当前游戏状态中是否胜利。修改游戏模型(Modifying a Game Model)
- applyGameModelUpdate:
更新游戏模型内部状态来反应指定变化。(必须)- unapplyGameModelUpdate:
更新游戏模型内部状态来消除指定变化带来的效果。- setGameModel:
为指定模型设置内部状态。(必须)常量(Constants)
游戏模型评分范围(Game Model Score Limits)
scoreForPlayer: 方法返回的特定范围数值。关系
继承
NSObject默认遵守
GKStrategist,GKMinmaxStrategist, GKMonteCarloStrategist,GKGameModelPlayer,GKGameModelUpdate相关文章推荐
- GKGameModelPlayer
- GKGameModelUpdate
- 第三方服务器用PHP验证GameCenter GKLocalPlayer返回的签名
- "Optimize Game Objects" in ModelImporter inspector
- 关于 Unity 中 ModelImporter.optimizeGameObjects
- 赛高游戏引擎重构(一)Host App 扩展 TGEGameModel 的方案
- A UML Model for Mobile Game on the Android OS
- org.apache.poi.ss.usermodel 类操作excel数据遗漏
- 将Redis操作封装成Model
- linux device model之我见
- linux epoll Model Test
- LFM隐语义模型Latent Factor Model
- TopicModelCode
- [model验证]-- 自带验证码项目总结
- 游戏事件系统(Game Event/Message System)
- SharePoint 2010 Client Object Model-Client API
- UVM-regmodel
- SpingMVC ModelAndView, Model,Control以及参数传递
- New Linux2.6 I2C Driver Model Example
- 浅谈MVP与Model-View-ViewModel(MVVM)设计模式