- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
Tic-Tac-Toe 似乎是一个解决得相当好的问题空间,大多数 100% 的解决方案似乎都是在有限的可能性树中搜索以找到获胜的途径。
但是,我从 60 年代的计算机模拟玩具 MiniVac 601 中发现了一些东西。http://en.wikipedia.org/wiki/Minivac_601
这个“计算机”由 6 个继电器组成,可以连接起来解决各种问题。它有一个游戏部分,其中描述了 Tic-Tac-Toe 的程序,声称只要 Minivac 先走,它就是无与伦比的。
由于大多数解决方案似乎都需要大量内存或计算能力,因此看到使用 6 个继电器的计算机的解决方案令人惊讶。显然我以前没见过这个算法,不确定我能弄明白。尝试在笔记本和纸上解决这个问题似乎表明可以相当轻松地战胜计算机。
http://www.ccapitalia.net/descarga/docs/1961-minivac601-book5&6.pdf
"with this program, MINI VAC can not lose. The human opponent may tie the game, but he can never win. This is because of the decision rules which are the basis of the program. The M IN IV A C is so programmed that the machine will move 5 squares to the right of its own last move if and only if the human opponent has blocked that last move by moving 4 squares to the right of the machine's last move. If the human player did not move 4 squares to the right of the machine's last move, M IN IV A C will move into that square and indicate a win. If the hu man player consistently follows the "move 4 to the right" rule, every game will end in a tie. This program requires that M IN IV A C make the first move; the machine's first move will always be to the center of the game matrix. A program which would allow the human opponent to move first would require more storage and processing capacity than is available on M IN IV A C 601. Such a program would, of course, be much more complex than the program which permits the machine to move first"
编辑:好的,所以问题更明确一点:这是解决井字游戏的真正解决方案吗?有谁认识这个算法,看起来很简单不容易被搜索到。
最佳答案
我觉得都在“板”的布局上。如果你看 601 个单位的井字游戏区域,9 在中间,1 在左上角,按顺时针方向围绕 9 依次编号。
“计算机”排在第 9 位。然后用户下一步。如果用户没有进入位置 1(左上角),那么这就是计算机的下一个位置。然后用户下一步。然后计算机尝试进入位置 1+4(5 - 右下角)。如果该位置不可用,它将进入 1+5(6 - 底部中间)。 x + 4 始终与前一着法相反,并且由于计算机处于中心位置,因此这将是一个获胜的着法。
关于algorithm - 井字游戏策略 - 60 年代的 MiniVac 601 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21590220/
我有一个模板,可以获取从外部程序生成的所有信息。我试图让这个模板更现代一点,而不是 1992 年。 用于处理表格的页面。它看起来不太好,所以我试图移除 table ,让屏幕上的所有内容都流畅。 对于文
我使用 bootstrap 井来模拟卡片。我目前有两种不同类型的卡片,“普通”卡片位于屏幕中间,“特殊”卡片位于左侧和右侧。 我正在尝试复制的模板: 问题: 1.) bootstrap 中的井似乎不想
我有一个井 div,我想在 Angular 落附上一个小文本/图像,如此处所示 ( http://draw.to/D46BqsC )...并让该元素相对于井放置,以便它发生变化位置和井一样。什么是最好
我是一名优秀的程序员,十分优秀!