随机化数组中连续元素的第一个元素
Randomize the first element of consecutive elements in an array
我正在制作贪吃蛇游戏,想要随机化位置。蛇是一个包含 3 个对象的数组,每个对象都有 x 和 y 坐标。我只想随机化第一个对象,其余对象(x 或 y 坐标)只需在其上加 1。
下面的代码将不起作用,因为每个 x 和 y 都在调用不同的随机数。解决方法是什么?
function randomPos() {
let x = Math.floor(Math.random()*numOfColumns + 1)
let y = Math.floor(Math.random()*numOfRows + 1)
return { x, y }
}
const snakeBody = [
{x: randomPos().x, y: randomPos().y},
{x: randomPos().x + 1, y: randomPos().y},
{x: randomPos().x + 2, y: randomPos().y}
]
您在函数中返回了 x
和 y
坐标 randomPos()
但您只使用了其中之一。
此外,您只需要一个随机位置,但您调用了 randomPos()
6 次。
只调用一次,因为它会计算 x
和 y
坐标,您只需要一个位置,而不是 6 个。然后使用 object destructuring 使用这两个值并使用它们计算其他两个值。
const numOfColumns = 20;
const numOfRows = 20;
function randomPos() {
let x = Math.floor(Math.random()*numOfColumns + 1)
let y = Math.floor(Math.random()*numOfRows + 1)
return { x, y }
}
const { x: x1st, y: y1st } = randomPos()
const snakeBody = [
{x: x1st, y: y1st},
{x: x1st + 1, y: y1st},
{x: x1st + 2, y: y1st}
]
console.log(snakeBody);
我正在制作贪吃蛇游戏,想要随机化位置。蛇是一个包含 3 个对象的数组,每个对象都有 x 和 y 坐标。我只想随机化第一个对象,其余对象(x 或 y 坐标)只需在其上加 1。
下面的代码将不起作用,因为每个 x 和 y 都在调用不同的随机数。解决方法是什么?
function randomPos() {
let x = Math.floor(Math.random()*numOfColumns + 1)
let y = Math.floor(Math.random()*numOfRows + 1)
return { x, y }
}
const snakeBody = [
{x: randomPos().x, y: randomPos().y},
{x: randomPos().x + 1, y: randomPos().y},
{x: randomPos().x + 2, y: randomPos().y}
]
您在函数中返回了 x
和 y
坐标 randomPos()
但您只使用了其中之一。
此外,您只需要一个随机位置,但您调用了 randomPos()
6 次。
只调用一次,因为它会计算 x
和 y
坐标,您只需要一个位置,而不是 6 个。然后使用 object destructuring 使用这两个值并使用它们计算其他两个值。
const numOfColumns = 20;
const numOfRows = 20;
function randomPos() {
let x = Math.floor(Math.random()*numOfColumns + 1)
let y = Math.floor(Math.random()*numOfRows + 1)
return { x, y }
}
const { x: x1st, y: y1st } = randomPos()
const snakeBody = [
{x: x1st, y: y1st},
{x: x1st + 1, y: y1st},
{x: x1st + 2, y: y1st}
]
console.log(snakeBody);