【发布时间】:2021-06-14 03:52:05
【问题描述】:
这是我的第一个问题,如果我对此不满意,请给我反馈。谢谢
我正在尝试从付费课程创建 JavaScript 终端游戏。游戏名为“寻找我的帽子”。
问题的一部分需要我创建一个名为 generateField() 的静态方法。该方法生成一个字段,字段上有4个可能的字符:
hat = '^';
hole = 'O';
fieldCharacter = '░';
pathCharacter = '*';
fieldCharacter 是游戏区域的背景。游戏区域由嵌套数组组成。我在创建字段时没有遇到问题,但我也想用孔替换随机字段字符。我尝试使用 Math.random 和嵌套循环来迭代嵌套数组。我一直无法弄清楚如何让它发挥作用。
以下是代码,如有遗漏,请见谅,我会尽量回复大家。
class Field {
constructor(field) {
this._field = field;
}
print() {
this._field = field.join('\n');
console.log(this._field.replace(/,/g, ''))
}
static generateField(height, width) {
let finalArray = []
for (let i = 0; i < height; i++) {
finalArray.push([fieldCharacter.repeat(width)]);
}
for (let i = 0; i < finalArray.length; i++) {
let randomHole = () => {
let result = Math.random() * width;
return result;
}
for (let j = 0; j < finalArray[i].length; j++) {
if (randomHole() > width - 2) {
finalArray[i][j] = hole;
}
}
}
return finalArray.join('\n').replace(/,/g, '');
}
}
console.log(Field.generateField(5, 10));
一个随机输出:
O
O
░░░░░░░░░░
░░░░░░░░░░
O
良好输出示例:
░░░░O░░░░░
░░░O░OO░░░
░░O░░░O░░░
░░░░O░░░░░
OO░░░░O░░O
【问题讨论】:
-
你能举个例子来获得好的结果吗?
-
我的错。谢谢回复。 ░░░░O░░░░░░░░O░OO░░░░░O░░░O░░░░░░░O░░░░░░OO░░░░O░跨度>
标签: javascript arrays