javascript - 简单的Javascript游戏,重复功能。 (新手问题)

标签 javascript html game-development

我是编码和堆栈溢出的新手,所以对我要轻松一些。我非常感谢一些帮助,试图将我的目标解释为 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

关于javascript - 简单的Javascript游戏,重复功能。 (新手问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52508946/

相关文章:

javascript - Rails 4 与 CoffeeScript,不需要的 jquery 可排序分离

c# - 设置页面标题

php - 表单数据和按钮在同一个_POST中

javascript - 修复动画属性

javascript - 禁用mootools排序功能而不编辑原始内容

javascript - 使用 javascript 实现绝对响应位置

html - 如何使用 css 在 span 包含的两个元素之间打断?

optimization - 如何在 Roblox Studio 中优化 If 语句的过度使用

game-engine - get_tree().reload_current_scene() 之后 gdscript 全局变量值没有改变

c# - 当所有其他对象暂停时移动角色