gpt4 book ai didi

javascript - 在 Javascript 中为对象属性赋予随机属性值

转载 作者:行者123 更新时间:2023-12-01 01:27:45 25 4
gpt4 key购买 nike

我正在尝试创建一个基于图 block 的游戏,并希望为每种类型的图 block 提供随机颜色,例如:

Game.Glyph = function(properties) {
properties = properties || {};
this._char = properties['character'] || ' ';
this._foreground = properties['foreground'] || 'white';
};

Game.Tile.floorTile = new Game.Tile({
character: '.',
});

然后假设我已使用 Game.Tile.floorTile(以及其他)填充了 map 数组

for (let x = 0; x < this._width; x++) {
for (let y = 0; y < this._height; y++) {
if (map[x][y] == Game.Tile.floorTile) {
map[x][y]._foreground = ['red','yellow'].random();
}

}
}

这会导致每个地砖要么是红色,要么是黄色,而不是随机分布。我怎样才能像上面尝试的那样为每个图 block 赋予随机颜色?

最佳答案

如果您只想在两个值之间进行选择 ternary与生成 0 到 1 之间的值的 Math.random() 结合使用可以轻松实现这一点:

map[x][y]._foreground = Math.random() > 0.5 ? 'red': 'yellow'

例如,使用代码的简化版本:

let map = [[{}, {}],[{}, {}]]

for (let x = 0; x < 2; x++) {
for (let y = 0; y < 2; y++) {
map[x][y]._foreground = Math.random() > 0.5 ? 'red': 'yellow'
}

}
console.log(map)

关于javascript - 在 Javascript 中为对象属性赋予随机属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53600938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com