-5

私はc++RPGを作っています。

これが私のコードです:http: //pastebin.com/cyR5bzKR

そして、-1に行こうとすると、どこにも行けなくなります。私も4に行くことができ、それから私はどこにも行くことができません。

何か助けはありますか?

これが複雑になりすぎないようにしたいと思います。

PS私はCode::Blocksを使用しています。それが問題だとは思いません。

4

4 に答える 4

0

プレーヤーが移動できるかどうかを決定するときに、次のアクションを考慮に入れる必要があります。

このようなものが機能するはずです...

if(dir == "L" && x-1 >= xMin) {
  printf("You Went Left");
  x--;
}
于 2012-08-15T09:04:50.667 に答える
0

次のようなコードがあります。

if (x >= min) --x;

値を減らす前に、値が別の値以上かどうかを確認しています。つまり、等しい場合でもを減分するため、後でその値よりも小さくなります。

解決策は、最小値より大きい場合にのみデクリメントすることです。

if (x > min) --x;
于 2012-08-15T09:41:24.197 に答える
0

右に移動しているときに、最も正しい位置にいないことを確認する必要があります。同様に、左に移動するときは、一番左の位置にいないことを確認する必要があります。

しかし、あなたは右端/左端の位置を超えていないことをテストしています (また、ボード上にいることもチェックしていますが、これは不要と思われます)。

あなたは次のようなものが欲しい

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

あなたが行う他のテストは冗長です。

于 2012-08-15T09:44:25.257 に答える
-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.");
    }
于 2012-08-15T09:28:24.917 に答える