我想知道这里是否有人使用 GKMinmaxStrategist 运气好。这个类/功能在 WWDC 上被展示过,但大部分示例代码都是用 Objective-C 编写的,这令人失望。
GameplayKit 的 WWDC 视频展示了另一款游戏 Stone Flipper (Reversi/Othello),但他们尚未发布代码(还没有?)。
有没有人有这方面的运气?我希望只用一个简单的井字游戏来尝试这个,但我完全不知道如何开始。
我想知道这里是否有人使用 GKMinmaxStrategist 运气好。这个类/功能在 WWDC 上被展示过,但大部分示例代码都是用 Objective-C 编写的,这令人失望。
GameplayKit 的 WWDC 视频展示了另一款游戏 Stone Flipper (Reversi/Othello),但他们尚未发布代码(还没有?)。
有没有人有这方面的运气?我希望只用一个简单的井字游戏来尝试这个,但我完全不知道如何开始。
我同意这是一个很难学习的框架——我刚刚写完一篇关于 GameplayKit 和 GKMinmaxStrategist 的教程,这绝非易事。如果您按照教程从头开始构建一个完整的游戏,并解释它是如何组合在一起的。至少,您可能会发现它作为起点很有用。
我希望 Apple 能够在 iOS 9 最终版之前改进其文档!
如果你想直接潜入,这里是你至少需要知道的:
NSCopying
协议,因为它会在 AI 运行时被复制很多次。GKGameModel
协议,该协议要求您能够枚举可用的移动,在棋盘副本上应用移动(实际上,不是真实的),然后判断玩家的得分。GKGameModelUpdate
协议,因此它将是您创建的一个定义特定动作的类。当你选择了最好的移动时,你会得到这个,所以它会包含“将骑士移动到 E4”之类的东西。如果你发现 AI 运行缓慢,要么限制它可以移动的数量,要么减少它的前瞻深度。
这是Swift 中的 GKMinmaxStrategist TicTacToe 教程。
这应该解释事情是如何工作的,并就如何制作一个好的 AI 提供一些指导。战略家当然不是创建任何类型棋盘游戏 AI 的模板,它只是提供了一个框架。95% 的工作仍然落在你的肩上。;)
代码可在此处获得。请注意,它不仅需要 Xcode 7,还需要 OS X 10.11。虽然它应该很容易适应 iOS 9。