私は自分のプログラムで直面している方向を確認しています: 'N'、 'E'、 'S'、W '。現在の方向を確認するswitch文を作成し、コマンドを右( 'r')にするか左に( 'l)するかによって、方向を変更してユーザーに新しい方向を返します。私は配列を呼び出すと、最後の方向とコマンドに従って正しい方向に着陸するようにインデックスの位置を減算することでそれをしようとしています。私はそれを正しくしていないと確信しています。これまでのところ私のコードがあります(コンテキストにオブジェクトが含まれています)。私はJavascriptを初めて使う人です。if/elseステートメントまたはswitchステートメントで、どのように異なるインデックス位置を返すのですか?
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: []
};
function turn(command){
if (command === 'l') {
switch (myRover.direction) {
case 'N':
myRover.direction = (myRover.roverDirections.length - 1)
break;
case 'E':
myRover.direction = (myRover.roverDirections.length - 4)
break;
case 'S':
myRover.direction = (myRover.roverDirections.length - 3)
break;
case 'W':
myRover.direction = (myRover.roverDirections.length - 2)
break;
}
if (command === "r") {
switch (myRover.direction) {
case 'N':
myRover.direction = (myRover.roverDirections.length - 3)
break;
case 'E':
myRover.direction = (myRover.roverDirections.length - 2)
break;
case 'S':
myRover.direction = (myRover.roverDirections.length - 1)
break;
case 'W':
myRover.direction = (myRover.roverDirections.length - 4)
break;
}
また、これをループすると、はるかに効率的であるかもしれないことを私に起こっています。しかし、私がインデックスの位置付けを理解することなくそれを概念化するのは難しいです。
'と新しいdirection'戻る - まあ、あなたは' –