我使用 8x8 矩阵为游戏创建了一个表格,并且还在随机位置放入了表格奖品等,但我在为用户创建不与对象冲突的随机开始位置时遇到问题已经在表中了。
现在我有:
function startPos(matrix) {
var x = Math.round(Math.random() * matrix.length);
var y = Math.round(Math.random() * matrix.length);
while (matrix[y][x] != undefined) {
var x = Math.round(Math.random() * matrix.length);
var y = Math.round(Math.random() * matrix.length);
return matrix[y][x];
};
return matrix[y][x];
};
但我什么也没得到。抱歉,如果这个问题看起来微不足道,我刚刚开始使用 JavaScript,并到处寻找相关答案,但没有成功。
最佳答案
一些错误:
- 您不得从循环内
返回
,但必须检查条件才能离开 - 您需要使用
Math.floor
而不是Math.round
- 您需要返回位置,而不是字段的值(您刚刚断言该字段为
未定义
)
function startPos(matrix) {
var l = matrix.length; // assumes square matrix
do { // assumes at least one empty field
var x = Math.floor(Math.random() * l);
var y = Math.floor(Math.random() * l);
} while (matrix[y][x] != undefined);
return [y, x];
}
关于javascript - 将值随机插入到 Javascript 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42914706/