gpt4 book ai didi

javascript - 骰子游戏 - 需要根据情况掷更多骰子

转载 作者:行者123 更新时间:2023-12-03 10:10:35 25 4
gpt4 key购买 nike

我正在开发一个游戏创意。武器可以装备在你的 Angular 色上。不同的武器有不同数量的伤害骰子和暴击骰子。我目前正在运行它,以便程序根据您装备的武器掷出适当数量的骰子。

但是,无论装备的武器是否包含两个关键骰子,该程序都只会掷出一个关键骰子。

var WepEquipped = { "name": "Broken Sword", "attack_dice": "2", "critical_dice": "1", "min_base_dmg": "2", "max_base_dmg": "12", "max_total_dmg": "24", "weapon_type": "Slash" };

function Attack(rolls) {
var total = 0;
var dice = [];

for (var i = 1; i <= rolls; i++) {
var d6 = Math.floor((Math.random() * 6) + 1);
$("#dice_container").append("<div class='die_roll'><p class='atk-roll'>" + d6 + "</p></div>");
dice.push(d6);
total += d6;
}

// Needs to be able to roll for multiple critical dice
if ($.grep(dice, function (elem) {
return elem === dice[0];
}).length == rolls) {
var d12 = Math.floor((Math.random() * 12) + 1);
total += d12;
$("#dice_container").append("<div class='die_roll'><p id='crit-roll'>" + d12 + "</p></div>");
}
$("#attack").html("<div>You attack for " + total + "</div>");
};

$('#attack_button').off('click').on('click', function(){
$('.die_roll').hide();
Attack(WepEquipped.attack_dice);
// Attack(WepEquipped.attack_dice);
});

我可以解释更多,但我希望这些代码足以理解我的要求。这里需要改变一些东西,但我不知道是什么:

// Needs to be able to roll for multiple critical dice
if ($.grep(dice, function (elem) {
return elem === dice[0];
}).length == rolls) {
var d12 = Math.floor((Math.random() * 12) + 1);
total += d12;
$("#dice_container").append("<div class='die_roll'><p id='crit-roll'>" + d12 + "</p></div>");
}
$("#attack").html("<div>You attack for " + total + "</div>");
};

最佳答案

您的 grep 返回骰子数组中等于您第一次掷骰子的元素数量,并且该数组的长度等于您掷出一次关键骰子的掷骰数。

if ($.grep(dice, function (elem) {
return elem === dice[0];
}).length == rolls) {
var d12 = Math.floor((Math.random() * 12) + 1);
total += d12;
$("#dice_container").append("<div class='die_roll'><p id='crit-roll'>" + d12 + "</p></div>");
}
$("#attack").html("<div>You attack for " + total + "</div>");
};

如果您尝试滚动与 grep 返回的次数一样多的次数,则需要这样的东西。

var crits = $.grep(dice, function (elem) {return elem === dice[0];});
if( crits.length == rolls ){
for( var x=0;x<crits.length;x++){
var d12 = Math.floor((Math.random() * 12) + 1);
total += d12;
$("#dice_container").append("<div class='die_roll'><p id='crit-roll'>" + d12 + "</p></div>");
}
}

很抱歉重复发帖,该帐户已被废弃。

关于javascript - 骰子游戏 - 需要根据情况掷更多骰子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30132667/

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