简单的Javascript游戏,重复功能。 (新手问题)
simple Javascript game, repeat function. (newbie question)
我是编码和堆栈溢出的新手,所以请放轻松。如果有人帮助我尝试将我的目标解释为 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分?
如有任何帮助,我们将不胜感激 这是一个值得学习的有趣概念!
提前谢谢你。
这是一个基于您的代码的工作示例,它演示了一种简单的方法,每次滚动奖励一分,第一到 10 个被宣布为获胜者:
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
我是编码和堆栈溢出的新手,所以请放轻松。如果有人帮助我尝试将我的目标解释为 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分?
如有任何帮助,我们将不胜感激 这是一个值得学习的有趣概念!
提前谢谢你。
这是一个基于您的代码的工作示例,它演示了一种简单的方法,每次滚动奖励一分,第一到 10 个被宣布为获胜者:
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