私は、ユーザーがロボットにメッセージを送信して、5x5グリッドのどこに行くかを伝えることができるJavaプログラムを書いています。たとえば、「FRFFLF」を送信すると、これは、前進し、右に90度走り、2回前進し、左に90度回転してから前進することを意味します。次に、プログラムはグリッド上のロボットの新しい位置を返します。
私は解決策を求めているのではなく、私のアプローチに関するいくつかのガイドラインを求めています。そのようなプログラムで利用できるデザインパターンはすでにありますか(したがって、私は車輪の再発明をしていません)、または最初から書くことは可能ですか?
グリッドの下部は(0,0)で、上部は(4,4)になります。
Robotsの位置はJavaPointクラスとして定義でき、グリッドは2D配列になると思いますか?
次のようなものが始まりになりますか?
public Point forward(Point p) {
p.x +=1;
return p;
}
誰かがそのようなプログラムを書こうとしたことがありますか?出来ますか?
編集:私は次のことを考えました:まず、ロボットの方向と現在の位置が必要です。そこから、グリッドをカプセル化して、境界の周りにいくつかのルールを作成します。基本的には、渡されたコマンドを解釈してロボットの位置を更新し、ロボットに基づいて位置を更新します。明らかに、ロボットはグリッドの境界内でのみ移動する必要があります。