使用移动遍历游戏板
Traversing a game board using moves
我无法找出遍历数组列表的解决方案,该数组列表被视为具有给定墙壁和方向的板。基本上你会得到一个像这样的数组列表:
xxxxxxx
x-g--xx
x---xxx
x-----x
x--x--x
x---1-x
xxxxxxx
使用给定的动作列表:
uluudrll
目标是使用移动列表并根据您在遍历此棋盘时给出的字母(u 代表向上,d 代表向下等)做出相应的移动。你把 x 当作墙,g 是你的目标。播放器是 1。我使用 javascript 作为代码。
if(move === 'd'){
if(maze[row + 1][col] !== 'x'){
maze[row + 1][col] = player;
maze[row][col] = '-';
count++;
} else {
if(move === 'd'){
if(maze[row - 1][col] !== 'x'){
maze[row - 1][col] = player;
maze[row][col] = '-';
count++;
} else if(maze[row][col + 1] !== 'x'){
maze[row][col + 1] = player;
maze[row][col] = '-';
count++;
} else if(maze[row][col - 1] !== 'x'){
maze[row][col - 1] = player;
maze[row][col] = '-';
count++;
}
}
}
}
这是我的代码,用于向下移动并适应其他移动(例如,如果我们读取向下移动 d,并且由于墙而无法移动,玩家将移动到另一个位置。我不知道我的代码发生了什么,但是当我尝试向任何其他方向移动时它不会工作。请帮助我很困惑为什么游戏不工作。
这是一个伪代码示例,说明如何使用 Javascript
来处理您的游戏
以这个数组为例:
arrayBoard = [["x","x","x","x"],["x","-","-","x"],["x","-","1","x"],["x","x","x","x"]];
例如,如果您想首先将玩家向上移动,您需要玩家位置 indexOf("1");
在这种情况下为 arrayBoard[2][2];
然后你知道 up
是相同的位置,但在第二个嵌套数组 arrayBoard[[1][2];
上,其他方向依此类推。
要移动玩家,您必须将目标位置替换为 "1"
,将之前的位置替换为 "-"
。
现在您将根据 if index of "1" + 1 !=="x" && === "g" then finish game
等条件构建您的 function movement(){}
因此,如果您将序列写成数组 seq = ["u","u","d","l","u"];
,您将不得不遍历它并在每个元素上调用 function movement(){}
。
顺便说一下,多维数组中的 indexOf()
需要 .map
或循环才能工作。
我无法找出遍历数组列表的解决方案,该数组列表被视为具有给定墙壁和方向的板。基本上你会得到一个像这样的数组列表:
xxxxxxx
x-g--xx
x---xxx
x-----x
x--x--x
x---1-x
xxxxxxx
使用给定的动作列表:
uluudrll
目标是使用移动列表并根据您在遍历此棋盘时给出的字母(u 代表向上,d 代表向下等)做出相应的移动。你把 x 当作墙,g 是你的目标。播放器是 1。我使用 javascript 作为代码。
if(move === 'd'){
if(maze[row + 1][col] !== 'x'){
maze[row + 1][col] = player;
maze[row][col] = '-';
count++;
} else {
if(move === 'd'){
if(maze[row - 1][col] !== 'x'){
maze[row - 1][col] = player;
maze[row][col] = '-';
count++;
} else if(maze[row][col + 1] !== 'x'){
maze[row][col + 1] = player;
maze[row][col] = '-';
count++;
} else if(maze[row][col - 1] !== 'x'){
maze[row][col - 1] = player;
maze[row][col] = '-';
count++;
}
}
}
}
这是我的代码,用于向下移动并适应其他移动(例如,如果我们读取向下移动 d,并且由于墙而无法移动,玩家将移动到另一个位置。我不知道我的代码发生了什么,但是当我尝试向任何其他方向移动时它不会工作。请帮助我很困惑为什么游戏不工作。
这是一个伪代码示例,说明如何使用 Javascript
来处理您的游戏以这个数组为例:
arrayBoard = [["x","x","x","x"],["x","-","-","x"],["x","-","1","x"],["x","x","x","x"]];
例如,如果您想首先将玩家向上移动,您需要玩家位置 indexOf("1");
在这种情况下为 arrayBoard[2][2];
然后你知道 up
是相同的位置,但在第二个嵌套数组 arrayBoard[[1][2];
上,其他方向依此类推。
要移动玩家,您必须将目标位置替换为 "1"
,将之前的位置替换为 "-"
。
现在您将根据 if index of "1" + 1 !=="x" && === "g" then finish game
function movement(){}
因此,如果您将序列写成数组 seq = ["u","u","d","l","u"];
,您将不得不遍历它并在每个元素上调用 function movement(){}
。
顺便说一下,多维数组中的 indexOf()
需要 .map
或循环才能工作。