私は現在、火星探査機のカタで作業中です。私は、ローバーが前後に移動して方向['N'、 'E'、 'S'、 'W']を変更できる10x10グリッドを作成しました。グリッドは実際には球形の惑星を表しているため、ローバーは完全に消えるのではなく、10x10のグリッドにラップする必要があります。私はラッピングをコーディングしようとしています。より多くの文脈に含まれるオブジェクト。私は現在、ローバーが折り返すべきケースを判断するためにif/elseステートメントを使用していますが、私はそれをオーバーコンプリートしていることを知っています。 switch文はより効率的でしょうか?または、何とかループを使用できますか?私はJavascriptを初めて使う人です。本当にありがとう。Javascriptでオブジェクトをグリッドにラップするにはどうすればよいですか?
var myRover = {
position: [[0],[0]],
direction: 'N',
roverDirections = ['N', 'E', 'S', 'W'],
marsGrid: [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
obstacles: [];
};
if (command === 'f') {
if ((myRover.position[[0],[0]]) && (myRover.direction === 'S')) {
myRover.position[[10],[0]];
}
else if ((myRover.position[[0],[0]]) && (myRover.direction === 'W')) {
myRover.position[[0],[10]];
}
if ((myRover.position[[0],[10]]) && (myRover.direction === 'E')) {
myRover.position[[0],[0]];
}
else if ((myRover.position[[0],[10]]) && (myRover.direction === 'S')) {
myRover.position[[10],[10]];
}
if ((myRover.position[[10],[0]]) && (myRover.direction === 'N')) {
myRover.position[[0],[0]];
}
else if ((myRover.position[[10],[0]]) && (myRover.direction === 'W')) {
myRover.position[[10],[10]];
}
if ((myRover.position[[10],[10]]) && (myRover.direction === 'N')) {
myRover.position[[0],[10]];
}
else if ((myRover.position[[0],[0]]) && (myRover.direction === 'E')) {
myRover.position[[10],[0]];
}
}
で新しい位置をdeterminだろうか?そうであれば、番号が '<0 'の場合には'> 10 'または' 'counter = 10'なら' counter = 0'を作ることができます – Loaf
構文エラーがあります: 'roverDirections ='は'roverDirections:'、 '障害物の後に'; 'を削除する、' myRover.position [[0]、[0]] 'も意味をなさない。 – Xufox
周囲のgridPointsに "ポインタ"を付けてgridPointオブジェクトを定義すると、簡単にエッジを接続できます。移動すると、x、y座標の代わりにローバーのcurrentGridPointを変更します – d3vi4nt