C ++ x中的Rpg游戏可以低于0吗?

时间:2012-08-15 09:02:37

标签: c++

我正在制作一个c ++ rpg。

这是我的代码: http://pastebin.com/cyR5bzKR

它让我去-1然后我不能去任何地方。 我也可以去4然后它不能去任何地方。

任何帮助?

我不希望这个过于复杂。

P.S。我正在使用Code :: Blocks我不认为这是问题所在。

4 个答案:

答案 0 :(得分:0)

在决定玩家是否应该移动时,您想要考虑下一个行动。

这样的事情应该有用......

if(dir == "L" && x-1 >= xMin) {
  printf("You Went Left");
  x--;
}

答案 1 :(得分:0)

您的代码如下:

if (x >= min) --x;

在递减之前,您正在检查某个值是否大于或等于另一个值。即如果它相等,你仍然递减,因此,之后它将小于该值。

解决方案是只有在大于最小值的情况下才会减少:

if (x > min) --x;

答案 2 :(得分:0)

你需要检查你何时向右移动,以至于你处于最正确的位置。类似地,当向左移动时,您需要检查您是否处于最左侧位置。

但是你正在测试你没有超越右/左大多数位置(并且还在检查你是否在板上,这似乎是不必要的)。

你想要像

这样的东西
if (dir == "R" && x < xmax) ++x;
else if (dir == "L" && x > xmin) --x;

你做的其他测试都是多余的。

答案 3 :(得分:-1)

    if(dir == "L" && x > xMin)
    {
        printf("You Went Left");
        x--;
    }
    else if(dir == "R" && x < xMax)
    {
        printf("You Went Right");
        x++;
    }
    else
    {
        printf("You can't go that way.");
    }