从哪里开始使用 GKMinmaxStrategist?
Where to start with GKMinmaxStrategist?
我想知道这里是否有人有幸使用过 GKMinmaxStrategist。这个 class/feature 在 WWDC 上展示过,但大部分示例代码都在 Objective-C 中,这令人失望。
GameplayKit 的 WWDC 视频介绍了另一款游戏 Stone Flipper (Reversi/Othello),但他们尚未发布代码(尚未?)。
有没有人对此有好运?我希望通过一个简单的井字游戏来尝试一下,但我完全不确定如何开始。
我同意这是一个很难学习的框架——我刚刚完成了一个 tutorial about GameplayKit and GKMinmaxStrategist 的编写,这绝非易事。如果您按照教程进行操作,它会从头开始构建一个完整的游戏,并解释它们是如何组合在一起的。您可能会发现它至少可以作为一个起点。
我希望 Apple 能在 iOS 9 最终版之前改进其文档!
如果您想直接深入,您至少需要了解以下内容:
- 确保您的游戏模型(数据)和视图(布局)分开。
- 让你的模型实现
NSCopying
协议,因为它会在 AI 运行时被复制很多次。
- 你还应该让它实现
GKGameModel
协议,它要求你能够枚举可用的动作,在棋盘副本上应用动作(虚拟的,不是真实的),然后判断玩家之后得分。
- 每个 "move"(无论在您的游戏中意味着什么)都需要符合
GKGameModelUpdate
协议,因此您创建的 class 将定义特定的动作.当您选择了最佳着法时,您会得到它,因此它会包含类似 "move the knight to E4". 的内容
- 如果你的游戏没有分数(在我的教程中我使用了四连胜,这正是这个问题)那么你需要想出一个启发式的方法来估计一步棋的好坏。
- 运行 后台线程上的 AI 以确保您的 UI 保持响应,然后在您准备好进行 UI 更改时将结果推送回前台线程。
如果您发现 AI 运行 速度很慢,请限制它可以移动的次数或减少它的前瞻深度。
这是 GKMinmaxStrategist TicTacToe tutorial in Swift。
这应该可以解释事物是如何工作的,并提供一些关于如何制作好的 AI 的指导。战略家肯定不是创建任何类型的棋盘游戏 AI 的模板,它只是提供了一个框架。 95% 的工作仍然落在你的肩上。 ;)
code is available here。请注意,它不仅需要 Xcode 7,还需要 OS X 10.11。虽然适应 iOS 9.
应该很简单
我想知道这里是否有人有幸使用过 GKMinmaxStrategist。这个 class/feature 在 WWDC 上展示过,但大部分示例代码都在 Objective-C 中,这令人失望。
GameplayKit 的 WWDC 视频介绍了另一款游戏 Stone Flipper (Reversi/Othello),但他们尚未发布代码(尚未?)。
有没有人对此有好运?我希望通过一个简单的井字游戏来尝试一下,但我完全不确定如何开始。
我同意这是一个很难学习的框架——我刚刚完成了一个 tutorial about GameplayKit and GKMinmaxStrategist 的编写,这绝非易事。如果您按照教程进行操作,它会从头开始构建一个完整的游戏,并解释它们是如何组合在一起的。您可能会发现它至少可以作为一个起点。
我希望 Apple 能在 iOS 9 最终版之前改进其文档!
如果您想直接深入,您至少需要了解以下内容:
- 确保您的游戏模型(数据)和视图(布局)分开。
- 让你的模型实现
NSCopying
协议,因为它会在 AI 运行时被复制很多次。 - 你还应该让它实现
GKGameModel
协议,它要求你能够枚举可用的动作,在棋盘副本上应用动作(虚拟的,不是真实的),然后判断玩家之后得分。 - 每个 "move"(无论在您的游戏中意味着什么)都需要符合
GKGameModelUpdate
协议,因此您创建的 class 将定义特定的动作.当您选择了最佳着法时,您会得到它,因此它会包含类似 "move the knight to E4". 的内容
- 如果你的游戏没有分数(在我的教程中我使用了四连胜,这正是这个问题)那么你需要想出一个启发式的方法来估计一步棋的好坏。
- 运行 后台线程上的 AI 以确保您的 UI 保持响应,然后在您准备好进行 UI 更改时将结果推送回前台线程。
如果您发现 AI 运行 速度很慢,请限制它可以移动的次数或减少它的前瞻深度。
这是 GKMinmaxStrategist TicTacToe tutorial in Swift。
这应该可以解释事物是如何工作的,并提供一些关于如何制作好的 AI 的指导。战略家肯定不是创建任何类型的棋盘游戏 AI 的模板,它只是提供了一个框架。 95% 的工作仍然落在你的肩上。 ;)
code is available here。请注意,它不仅需要 Xcode 7,还需要 OS X 10.11。虽然适应 iOS 9.
应该很简单