我是编码和堆栈溢出的新手,所以请放轻松。我非常感谢您在尝试将我的目标解释为html5网站上的游戏的功能脚本时所提供的帮助。该脚本的功能是提供模拟赛马的比赛结果,随后可在RPG中使用。
选择您的选择,参加竞赛并选择获胜者,其获胜几率与获胜几率有关。
我想更改脚本以提供从第1到第8的完整位置。我想出了两种方法来实现这一目标。再次将骰子掷出,一直排除在获胜者之外,一直上升到第8位,或者使比赛的结果先是+1分到10分。这样,我可以模拟x长度的获胜。
var gen_number = getRoll(serverSeed, clientSeed, $nonceValue);
var winnerNumber = 0;
if(gen_number < 836)
winnerNumber = 1;
else if(gen_number < 2172)
winnerNumber = 2;
else if(gen_number < 2840)
winnerNumber = 3;
else if(gen_number < 4109)
winnerNumber = 4;
else if(gen_number < 5766)
winnerNumber = 5;
else if(gen_number < 7837)
winnerNumber = 6;
else if(gen_number < 8589)
winnerNumber = 7;
else
winnerNumber = 8;
var status = '';
if($selectedRange.includes('' + winnerNumber)) {
document.getElementById('winner_lose').innerHTML = winnerNumber + " Wins";
status = 'Win';
问题- 如何编写自动重新排名第二,第三名的脚本。按下比赛按钮一次即可获得胜利者,再滚动一次(不包括胜利者),再次滚动(不包括胜利者和第二名)。输出结果?
或
我如何使获胜条件首先达到10点/卷1点?
任何帮助都将是一个有趣的概念,值得学习!
先谢谢您
答案 0 :(得分:2)
这是一个基于您的代码的有效示例,该示例演示了一种简单的方法,即每掷一分,即宣布第一至十名获胜者:
const serverSeed = 0, clientSeed = 0, $nonceValue = 0; // stubbed values
const getRoll = () => Math.random() * 10000; // stubbed function
const getPointWinner = () => {
const gen_number = getRoll(serverSeed, clientSeed, $nonceValue);
if (gen_number < 836)
return 0;
if (gen_number < 2172)
return 1;
if (gen_number < 2840)
return 2;
if (gen_number < 4109)
return 3;
if (gen_number < 5766)
return 4;
if (gen_number < 7837)
return 5;
if (gen_number < 8589)
return 6;
return 7;
}
let raceWon = false;
const pointsWon = [0, 0, 0, 0, 0, 0, 0, 0];
while (!raceWon) {
const pointWinner = getPointWinner(); // get the winner for this point
pointsWon[pointWinner]++; // award the point
raceWon = pointsWon[pointWinner] >= 10; // race won if point winner has 10 points
}
// pointsWon can be used to print out the winner, final order, won by x lengths, etc.
console.log(pointsWon); // prints the array containing the points won
const winner = pointsWon.indexOf(10) + 1; // + 1 since pointsWon uses a zero-based index
console.log('winner:', winner); // prints the first to 10 points