[英]How do I use probability and insert them into my other function?
//Catchfish
function catchFish() {
if (character === "steve") {
// STEVE PROBABILITIES: cod (70%), salmon (20%), tropical (5%), puffer (5%)
simulateCatch (70%, 20%, 5%, 5%);
} else if (character === "alex") {
// ALEX PROBABILITIES: cod (10%), salmon (10%), tropical (30%), puffer (50%)
simulateCatch(10%, 10%, 30%, 50%);
} else if (character === "villager") {
// VILLAGER PROBABILITIES: cod (25%), salmon (25%), tropical (25%), puffer (25%)
simulateCatch(25%, 25%, 25%, 25%);
}
}
How do I simulateCatch?如何模拟Catch? I dont know how to do and send probabilitties back to catchFish我不知道该怎么做并将概率发回给 catchFish
The idea is to generate a random number between 0 and 1, and then subtract each of the successive probabilities for each of the types of the fish, until the rolled value becomes less than 0. Beware, though, that this assumes the probabilities are in range between 0 and 1 and give 1 in sum.这个想法是生成一个介于 0 和 1 之间的随机数,然后减去每种鱼的每个连续概率,直到滚动值小于 0。但是请注意,这是假设概率在范围在 0 和 1 之间,总和为 1。 Otherwise, it won't work correctly.否则,它将无法正常工作。
// Returns an index of the randomly selected item function simulateCatch(probabilities) { let roll = Math.random(); for (let i = 0; i < probabilities.length; i++) { roll -= probabilities[i]; if (roll <= 0) return i; } // never gets to this point, assuming the probabilities sum up to 1 } var fishArray = ["cod", "salmon", "tropical", "puffer"] //Catchfish function catchFish(character) { if (character === "steve") { // STEVE PROBABILITIES: cod (70%), salmon (20%), tropical (5%), puffer (5%) return simulateCatch ([0.7, 0.2, 0.05, 0.05]); } else if (character === "alex") { // ALEX PROBABILITIES: cod (10%), salmon (10%), tropical (30%), puffer (50%) return simulateCatch([0.1, 0.1, 0.3, 0.5]); } else if (character === "villager") { // VILLAGER PROBABILITIES: cod (25%), salmon (25%), tropical (25%), puffer (25%) return simulateCatch([0.25, 0.25, 0.25, 0.25]); } } function test() { console.log(fishArray[catchFish("steve")]) console.log(fishArray[catchFish("alex")]) } test()
You can define the function like this您可以像这样定义 function
function simulateCatch(character,cod,salmon,tropical,puffer){
return `${character.toUpperCase()} PROBABILITIES: cod (${cod}%), salmon (${salmon}%), tropical (${tropical}%), puffer (${puffer})`;
}
and update your catchFish like this并像这样更新你的鲶鱼
function catchFish() {
if (character === "steve") {
// STEVE PROBABILITIES: cod (70%), salmon (20%), tropical (5%), puffer (5%)
simulateCatch (character,70, 20, 5, 5);
} else if (character === "alex") {
// ALEX PROBABILITIES: cod (10%), salmon (10%), tropical (30%), puffer (50%)
simulateCatch(character,10, 10, 30, 50);
} else if (character === "villager") {
// VILLAGER PROBABILITIES: cod (25%), salmon (25%), tropical (25%), puffer (25%)
simulateCatch(character,25, 25, 25, 25);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.