【问题标题】:How to manipulate the range of rand() in PHP?如何在 PHP 中操作 rand() 的范围?
【发布时间】:2013-07-05 02:59:24
【问题描述】:

好的,所以我正在制作一个用于练习的小型赌博网站,我希望可以选择“Roll High”或“Roll Low”。

例如:如果投注者选择 20% 的获胜机会,并且他们选择掷高,则他们以 80-100 获胜。如果他们选择低滚,他们会以 1-20 获胜。现在使用我下面的代码,如果获胜几率为 20%,它总是滚动“低”,如 1-20。

我觉得这并不难做到,但这让我感到困惑。 :S 哦,如果你要举个例子,请使用下面的代码,除了使用 isset($_POST['start2']) 并更改其他需要更改的内容以使其工作。

谢谢。

$rand = rand(100, 10000)/100;

if(isset($_POST['start1'])) {

if(isset($_POST['bet'], $_POST['pay'], $_POST['profit'], $_POST['chance'])) {

   if($rand < $_POST['chance']) {

 echo '<h3>You rolled a <strong>' .$rand. ' </strong> out of 100 on the percentile dice!  You won!</h3>';

}

else if($rand > $_POST['chance']) { echo '<h3>You rolled a <strong>' .$rand. '</strong> out of 100 on the percentile dice!  You lost...</h3>'; }

}

}

【问题讨论】:

    标签: php random


    【解决方案1】:

    我看不到您从用户的 POST 中获得高/低选择的位置。得到它,然后,如果他们选择高,则与 100 机会进行比较。

    例如:

      $rand = rand(0,100);
      $chance = $_POST['chance'];
      $roll = "L";     //should come from a POST variable set to H or L
    
      if($roll == 'H')
          $win = ($rand + $chance) - 100;
      else
          $win = $chance - $rand;
    
      if($win > 0)
          echo "You rolled a " . $rand . " You win!";
      else
          echo "You rolled a " . $rand . " You lose.";
    

    【讨论】:

    • 我很感激你的帮助,但恐怕这行不通。如果他们选择 50% 并掷出 15,它会输出一个负数。
    • 我正在使用该代码,但我仍然遇到同样的问题。当我点击 Roll High 时,它也会滚得很低..
    • 我在这里用上面的代码创建了一个 php fiddle:phpfiddle.org/main/code/7kh-5bs 您可以更改 $chance 和 $roll 的值并运行它来测试算法。然后将其粘贴到您的页面并使用您的 POST 值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2010-11-15
    • 2013-01-11
    • 2015-08-09
    • 1970-01-01
    相关资源
    最近更新 更多