2012-08-15 47 views
-5

我正在制作一个C++ RPG。在C++ x中的Rpg游戏可以低于0吗?

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

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

任何帮助?

我不希望这会过于复杂。

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

+4

欢迎:)如果您可以设法让问题自成一体,那么回答起来要容易得多。我的意思是独立的意思是我们不应该遵循任何链接。这也将防止链接腐烂,这个网站的一个既定目标,使其长远来说更有价值。 – 2012-08-15 09:09:32

回答

0

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

像这样的东西应该工作...

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

谢谢!这工作像一个魅力。真的很高兴我发现这个网站:D – user1564265 2012-08-15 09:54:48

-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."); 
    } 
0

你有这样的代码:

if (x >= min) --x; 

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

的解决方案是仅减少,如果大于的最小值:

if (x > min) --x; 
0

你需要,当你向右移动,你是不是在最右边检查。同样,当向左移动时,你需要检查你是不是在最左边的位置。

但是,你正在测试你还没有超越最右边/最左边的位置(并且也检查你在董事会,这似乎是不必要的)。

你想要的东西像

if (dir == "R" && x < xmax) ++x; 
else if (dir == "L" && x > xmin) --x; 

你做其他的检查是多余的。

相关问题