1

ロボットがナビゲートするための2Dグリッドがあります。startNodeとgoalNodeの2点間の最短経路を見つける必要があります。グリッドは、anxn多次元配列で表されます。

ロボットの可能なアクション(遷移)

  • アップ[0,1]
  • ダウン[0、-1]
  • 左[-1,0]
  • 右[1,0]

ここで[x、y]

多次元配列の境界を超えない場合、前述のアクションの1つを返すメソッドをどのように構築しますか?

getAction(x,y)
get potential action from transition
if valid action - in array bounds
return action

ありがとう、

4

1 に答える 1

1

特定の方向に移動すると範囲外になるかどうかを確認します。

だから、それは次のようになります

String move()
   {

   if(y+1<n)//Can Move Up
   return "up";

   if(y-1>=0)//Can Move Down
   return "down";

   if(x+1<n)//Can Move Right
   return "right";

   if(x-1>=0)//Can Move Left
   return "left";

   return "can't move";

  }

もちろん、これは常に最初に上に移動し、次に下に移動し、次に右に移動し、次に左に移動しようとします。したがって、このコードをニーズに合わせて変更できます。

于 2012-05-22T19:19:50.127 に答える