我正在阅读that question,我记得Wikipedia list of algorithms。我知道维基百科也有一个开源游戏列表,但我想要的是简单游戏算法的链接,即使是用伪代码编写的。
作为“简单”游戏,我指的是数独游戏,宝石迷阵,接龙游戏,扫雷游戏,迷宫游戏,蛇游戏,大猩猩游戏,国际象棋游戏,俄罗斯方块游戏等。
C#源代码的奖励:)
答案 0 :(得分:7)
大多数游戏算法都只是搜索算法。事实上,你可以说AI 是搜索。
对于Sudoku,dancing links是一个很好的算法。或者,它已解决very concisely in Prolog。
对于国际象棋,请从Minimax开始,然后尝试使用Minimax with alpha-beta pruning。
Minesweeper is NP-complete。没有任何已知的可靠和快速算法。
答案 1 :(得分:2)
正如其他人已经暗示的那样,游戏的“算法”概念并不适合,除了一些微不足道的东西,而不是特别类似游戏的游戏,如Life。算法是以已知方式处理一组数据以产生该数据的特定输出的方式,通常在某种时间/复杂度限制内。游戏不符合这个简单的标准 - 它们更像是模拟,它们会根据输入反复改变对象的状态,直到达到游戏特定的条件。因此,他们几乎都在更新阶段遵循带有定制游戏逻辑的input-> update->显示循环。毫无疑问,游戏的各个部分将以简单和众所周知的算法实现,但游戏程序本身只是模拟循环及其中的逻辑。
答案 2 :(得分:1)
你不能比Conway's Game of Life简单得多。只有四条规则:
它可以很容易地用任何语言实现,需要zero players,并产生一些有趣的模式。
答案 3 :(得分:1)
算法怎么样,不是用于玩游戏,而是用于相对复杂的任务。例如,在宝石迷阵中,你有一个8x8网格,里面装满7种颜色之一的珠宝。在任何时候,每种颜色约有8颗宝石。在用户移动宝石以创建匹配之后,至少三个珠宝(所有相同颜色)将从屏幕上消失,并且三个新珠宝将落在屏幕上。如何确保屏幕上始终至少有一个匹配?你如何确保匹配可能出现在屏幕周围,而不仅仅是在顶部?
答案 4 :(得分:0)
事件认为你上面提到的游戏很简单,我不认为游戏的算法不是。 (真的没有冒犯:))
答案 5 :(得分:0)
以下是大多数游戏的算法:
游戏初始化后......
希望这有帮助。