从哪里开始GKMinmaxStrategist?

时间:2015-06-23 01:33:55

标签: swift swift2 gameplay-kit gkminmaxstrategist

我想知道是否有人在这里使用GKMinmaxStrategist有运气。这个类/功能在WWDC上展示,但大多数示例代码都在Objective-C中,这令人失望。

GameplayKit的WWDC视频推出了另一款游戏Stone Flipper(Reversi / Othello),但他们还没有发布代码(还有?)。

有人有运气吗?我希望只用一个简单的井字游戏尝试这个,但我一点也不确定如何开始。

2 个答案:

答案 0 :(得分:3)

我同意这是一个棘手的学习框架 - 我刚刚完成了tutorial about GameplayKit and GKMinmaxStrategist的写作,这绝非易事。如果你按照教程,它从头开始构建一个完整的游戏,解释它们如何组合在一起。你可能会发现它至少可以作为一个起点。

我希望Apple能够在iOS 9决赛之前改进其文档!

如果你想直接潜入,这里至少你需要知道:

  • 确保您的游戏模型(数据)和视图(布局)保持独立。
  • 让您的模型实现NSCopying协议,因为它会在AI运行时多次复制。
  • 你还应该让它实现GKGameModel协议,这要求你能够枚举可用的动作,在棋盘副本上移动(实际上,不是真实的),然后判断玩家的分数
  • 每个"移动" (对于游戏中的任何意义),需要符合GKGameModelUpdate协议,因此它将是您创建的定义特定移动的类。当你选择了最佳动作时,你会得到这个回报,所以它会包含类似#34的东西;将骑士移动到E4"。
  • 如果你的游戏没有得分(在我的教程中我使用了四连胜,这确实存在这个问题)那么你需要提出一个启发式估计大致有多好的移动。
  • 在后台线程上运行AI以确保您的UI保持响应,然后在您准备好进行UI更改时将结果推回到前台线程。

如果您发现AI运行缓慢,请限制它可以进行的移动次数或减少其前瞻深度。

答案 1 :(得分:2)

这是GKMinmaxStrategist TicTacToe tutorial in Swift

这应解释事情是如何运作的,并提供一些关于如何制作优秀人工智能的指示。战略家肯定不是创建任何类型的棋盘游戏AI的模板,它只是提供了一个框架。 95%的工作仍然依赖于你的肩膀。 ;)

code is available here。请注意,它不仅需要Xcode 7,还需要OS X 10.11。虽然适应iOS 9应该很简单。