この列挙型クラスを以下に示します。列挙型クラスは次のとおりです。
public enum Direction {
NORTH,
SOUTH,
EAST,
WEST,
NOWHERE
}
指示は、車両と呼ばれる他のクラスから車両を移動すると、移動する方向 (北、南、東、または西) が返され、車が目的の目的地に一歩近づきます。への呼び出しnextMove()
は、Vehicle オブジェクトの内部状態を変更して、返された方向が与えられた新しい位置を反映する必要があります。Car の現在位置が目的地と等しい場合は、nextMove
"NOWHERE" を返す必要があります。だから私はこの if ステートメントの作成に対処しようとしました。仕様と私の試みは次のとおりです。
車が位置 (3, 10) にあり、北に移動することを決定した場合、位置 (3, 11) に移動します。一般に、車が位置 (x, y) から「北」に移動すると、位置 (x, y+1) になり、(x, y) から「南」に移動すると位置 (x, y-1) になります。 )、「東」(x + 1、y)および「西」(x-1、y)。のように、オブジェクトが上に移動すると、「NORTH」と表示されます。
現在の試行:
public void Direction(Direction togo)
{
if((yDestination+1)>yDestination)
{
System.out.println("NORTH");
}
if((yDestination-1)<yDestination)
{
System.out.println("SOUTH");
}
if((xCar+1)>xCar)
{
System.out.println("EAST");
}
if((xCar-1)<xCar)
{
System.out.println("WEST");
}
上記のオブジェクトに if ステートメントで答えようとしましたが、何かが間違っていると確信しています。