我正在制作一个c ++ rpg。
这是我的代码: http://pastebin.com/cyR5bzKR
它让我去-1然后我不能去任何地方。 我也可以去4然后它不能去任何地方。
任何帮助?
我不希望这个过于复杂。
P.S。我正在使用Code :: Blocks我不认为这是问题所在。
答案 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.");
}