如何在C ++中为PacMan编写Map

时间:2010-12-24 16:49:36

标签: c++ oop pacman

任何人都可以告诉我如何在C ++中为PacMan创建地图。 任何有关获得开始的建议。提前感谢。

2 个答案:

答案 0 :(得分:2)

这是一个非常广泛的问题,取决于其他要求。基本上我会选择一个只代表细胞的二维数组。每个单元格都包含:

  1. 单向墙(代表怪物前往的大门)
  2. 空单元格
  3. 带食物的细胞
  4. 一个“传送小区”,将把pacman送到另一个地方(代表左右两侧的两个小区)
  5. 怪物和pacman本身不会在地图上显示出来。相反,每个人都应该在地图中占据一席之地。

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

    怪物将如何移动

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

    1. pacman本身总是在移动,这会改变从一个步骤到另一个步骤的路径。
    2. 你不希望所有的怪物都有相同的路径,否则你不会真的有几个怪物,因为它们都会移动相同的。
    3. 你不希望怪物变得非常有效,因为那时游戏会变得太难而且不会太有趣。
    4. 我建议当怪物到达“十字路口”时使用一些随机决定,以及对pacman本身的一般偏见。因此,如果怪物位于有东方,西方和北方三个方向的地方,并且pacman位于北方,我会做出一个随机决定,有40%的机会向北,30%到东方,30西边%。

答案 1 :(得分: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 }};