简体   繁体   English

PHP数学大于

[英]PHP math greater than

I was busy making a level system for my site, I already have a if/else system that does it for ax amount of clicks. 我正忙于为我的网站制作一个关卡系统,我已经有了一个if / else系统来进行点击次数的提升。

So if you have clicked 44 times, you're level 1. The only problem is that people already clicked over 10.000 times(it's cool actually) but now I have to make a lot of ifs to create a level for it. 因此,如果您单击了44次,则您处于1级。唯一的问题是人们已经点击了10.000次以上(实际上很酷),但是现在我必须做很多if才能为其创建一个水平。 This is what I already have: 这就是我已经拥有的:

  if($score['clicks'] >= 0 && $score['clicks'] <= 49)
  {
      $level = 'Level 2';
  }
  elseif($score['clicks'] >= 50 && $score['clicks'] <= 199)
  {
      $level = 'Level 3';
  }
  elseif($score['clicks'] >= 200 && $score['clicks'] <= 349)
  {
      $level = 'Level 4';
  }
  elseif($score['clicks'] >= 350 && $score['clicks'] <= 499)
  {
      $level = 'Level 5';
  }
  elseif($score['clicks'] >= 500 && $score['clicks'] <= 749)
  {
      $level = 'Level 6';
  }
  elseif($score['clicks'] >= 750 && $score['clicks'] <= 999)
  {
      $level = 'Level 7';
  }
  elseif($score['clicks'] >= 1000 && $score['clicks'] <= 1499)
  {
      $level = 'Level 8';
  }
  elseif($score['clicks'] >= 1500 && $score['clicks'] <= 1999)
  {
      $level = 'Level 9';
  }
  elseif($score['clicks'] >= 2000 && $score['clicks'] <= 2999)
  {
      $level = 'Level 10';
  }

I don't know how to make a if that can do it this way: 我不知道该怎么做才能做到这一点:

If $score['clicks'] is greater than 3000 then level is 11. And if $score['cliks'] is greater than 4000 then level is 12 etc... 如果$ score ['clicks']大于3000,则级别为11。如果$ score ['cliks']大于4000,则级别为12,依此类推...

Can you guys help me with this? 你们能帮我吗? Thank you and sorry for my bad English, it isn't my mother tongue. 谢谢你,我的英语不好,这不是我的母语。

Create a mathematical model instead of dozens of if statements. 创建一个数学模型,而不是几十个if语句。 For example you could use: round(clicks^0.3) = level . 例如,您可以使用: round(clicks ^ 0.3)= level That is a exponential function so users will level up fast in the beginning but then it get harder and harder to level up. 这是一个指数函数,因此用户一开始会快速升级,但是升级变得越来越难。 You probably recognize this pattern from a lot of games. 您可能会从很多游戏中认识到这种模式。

In PHP code: 在PHP代码中:

$level = round(pow($score['clicks'], 0.3));

A table of the result: 结果表:

clicks^0.3  = level
-------------------
1^0.3       = 1
10^0.3      = 2
100^0.3     = 4
1000^0.3    = 8
10000^0.3   = 16

You can do something similar: 您可以执行类似的操作:

}elseif($score['clicks']>=3000){
  $level= 'Level ' . (floor(($score['clicks']-3000)/1000)+11);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM