-1

私はグラフのある小さなゲームに取り組んでいます。目的の場所(上限と下限で指定)が満たされていないときに(0.5以内で)アクションを実行するという考え方です。たとえば、(7,7)をターゲットにすると、xとyが(この場合は両方とも)6.5から7.5の間にあるときに、ループが停止するはずです。

ただし、次のような条件があると、負の数が表示されたときに問題が発生します。

while ((X < tarX-0.5 || X > tarX+0.5) && (Y < tarY-0.5 || Y > tarY+0.5))

例:ターゲット(-7、-7)がある場合、x値またはy値のいずれかが範囲内にあるとき、ループは停止します。両方ではありません。

基本的に、xまたはyが正であるかどうかに応じて、4つの異なるループを作成するという考えがありました。しかし、もっと簡単な方法があるかどうか疑問に思っていますか?(私はMath.abs()を使用して負の数を打ち消そうとしましたが、これは機能しましたが、(-3、-3)宛ての何かが(3,3)で停止する可能性があります)

4

1 に答える 1

0

xとyが(この場合は両方とも)6.5と7.5の間にあるとき、ループは停止するはずです。

while (!(x >= 6.5 && x <= 7.5 && y >= 6.5 && y <= 7.5)) {
   ...
}

ド・モルガンの法則を適用すると、上記は次のようになります。

while (x < 6.5 || x > 7.5 || y < 6.5 || y > 7.5) {
   ...
}
于 2012-12-09T17:54:56.510 に答える