0

谁能告诉我如何在 C++ 中为 PacMan 创建地图。有什么建议让 m 开始。?

提前感谢。

4

2 回答 2

3

这是一个相当广泛的问题,取决于其他要求。基本上我会选择一个简单地表示单元格的二维数组。每个单元格将包含:

  1. 一堵墙
  2. 一堵单向墙(代表怪物穿过的门)
  3. 一个空的单元格
  4. 一个有食物的细胞
  5. 一个“传送单元”,它将把吃豆人送到不同的地方(代表左右两侧的两个单元)

怪物和吃豆人本身不会出现在地图中。相反,每个人都应该在地图上拥有自己的位置。

这不需要 C++,它只需要 C,但如果您故意想要 C++ 解决方案,您可以用向量替换数组,或者在这种情况下,用向量的向量替换。

怪物将如何移动

如果您想从地图中的 B 点到达 A 点,您可以使用各种算法中的任何一种来找到地图中的最短路径,例如A*算法。但是,在这种情况下,您需要考虑以下几点:

  1. pacman 本身总是在移动,它改变了从一个步骤到另一个步骤的路径。
  2. 你不希望所有的怪物都有相同的路径,否则你不会真的有几个怪物,因为它们都会移动相同的。
  3. 您不希望怪物非常有效,因为那样游戏会变得太难并且不会很有趣。

我建议在怪物到达“十字路口”时使用一些随机决定,以及对 pacman 本身的普遍偏见。因此,如果怪物在一个有 3 个方向的点,比如东、西和北,而 pacman 在北,我会做出一个随机决定,有 40% 的机会在北方,30% 的机会在东方,30% % 向西。

于 2010-12-24T16:56:19.007 回答
0

这里有一个提示:

// 1 = wall
// 0 = no wall

int map[6][6] = {{ 1, 1, 1, 1, 1, 1 },
                 { 1, 0, 0, 0, 0, 1 },
                 { 1, 0, 0, 0, 0, 1 },
                 { 1, 0, 0, 0, 0, 1 },
                 { 1, 0, 0, 0, 0, 1 },
                 { 1, 1, 1, 1, 1, 1 }};
于 2012-01-11T09:02:20.867 回答