简单游戏算法的链接

时间:2009-02-24 01:14:49

标签: algorithm open-source

我正在阅读that question,我记得Wikipedia list of algorithms。我知道维基百科也有一个开源游戏列表,但我想要的是简单游戏算法的链接,即使是用伪代码编写的。

作为“简单”游戏,我指的是数独游戏,宝石迷阵,接龙游戏,扫雷游戏,迷宫游戏,蛇游戏,大猩猩游戏,国际象棋游戏,俄罗斯方块游戏等。

C#源代码的奖励:)

6 个答案:

答案 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简单得多。只有四条规则:

  1. 任何活着的邻居少于两个的活细胞都会死亡,好像是由人口不足引起的需求。
  2. 任何有三个以上活着的邻居的活细胞都会死亡,就像过度拥挤一样。
  3. 任何有两三个活着邻居的活细胞都会保持不变,直到下一代。
  4. 任何有三个活邻居的死细胞都会成为活细胞。
  5. 它可以很容易地用任何语言实现,需要zero players,并产生一些有趣的模式。

答案 3 :(得分:1)

算法怎么样,不是用于玩游戏,而是用于相对复杂的任务。例如,在宝石迷阵中,你有一个8x8网格,里面装满7种颜色之一的珠宝。在任何时候,每种颜色约有8颗宝石。在用户移动宝石以创建匹配之后,至少三个珠宝(所有相同颜色)将从屏幕上消失,并且三个新珠宝将落在屏幕上。如何确保屏幕上始终至少有一个匹配?你如何确保匹配可能出现在屏幕周围,而不仅仅是在顶部?

答案 4 :(得分:0)

事件认为你上面提到的游戏很简单,我不认为游戏的算法不是。 (真的没有冒犯:))

答案 5 :(得分:0)

以下是大多数游戏的算法:

游戏初始化后......

  1. 接受用户输入
  2. 根据用户输入更新游戏状态
  3. 提供视觉反馈(更新屏幕)
  4. 检查分数变化并根据需要进行更新
  5. 检查“游戏结束”,如果游戏尚未结束,请跳至第1步
  6. 嗯......就是这样。
  7. 希望这有帮助。