当前位置: 首页 > news >正文

php 生成随机数

记录:随机数抽奖

要求:每次生成3个 1 - 10 之间可重复(或不可重复)的随机数,10次为一轮,每轮要求数字5出现6次、数字4出现3次、…。

提炼需求:
1,可设置最小数、最大数、每次抽奖生成随机数的个数、是否允许重复
2,可设置每轮指定数字的出现次数
3,可设置每轮的抽奖次数

注意:设置项发生变化,则重置游戏

效果图示例:
在这里插入图片描述
在这里插入图片描述

Choujianglog 模型

<?phpnamespace app\admin\model\choujiang;use think\Model;class Choujianglog extends Model
{// 表名protected $name = 'choujiang_log';// 自动写入时间戳字段protected $autoWriteTimestamp = 'integer';// 定义时间戳字段名protected $createTime = 'createtime';protected $updateTime = false;protected $deleteTime = false;// 追加属性protected $append = [];// 获取抽奖当前轮次public function getLunci($choujiang_id, $yilunchoujiagcishu) {$lunci = $this->where(['choujiang_id'=>$choujiang_id])->max('lunci');if(!$lunci){$lunci = 1;}return $lunci;}// 获取抽奖接下来的轮次public function getnextLunci($choujiang_id, $yilunchoujiagcishu) {$lunci = $this->where(['choujiang_id'=>$choujiang_id])->max('lunci');if(!$lunci){$lunci = 1;}$choujiangcishu = $this->where(['choujiang_id'=>$choujiang_id, 'lunci'=>$lunci])->group('sign')->count();if($choujiangcishu >= $yilunchoujiagcishu){$lunci += 1;}return $lunci;}// 生成signpublic function createSign() {$str = '123567890123567890123567890';//34个字符$str = str_shuffle($str);   //随机地打乱字符串中的所有字符$sign = date('YmdHis').substr($str,0,4); //截取字符串if($this->where(['sign'=>$sign])->value('sign')){$this->createSign();}else{return $sign;}}}

Choujiang模型

<?phpnamespace app\admin\model\choujiang;use think\Model;class Choujiang extends Model
{// 表名protected $name = 'choujiang';// 自动写入时间戳字段protected $autoWriteTimestamp = 'integer';// 定义时间戳字段名protected $createTime = 'createtime';protected $updateTime = 'updatetime';protected $deleteTime = false;// 追加属性protected $append = ['state_text'];public function getStateList(){return ['1' => __('State 1'), '2' => __('State 2')];}public function getStateTextAttr($value, $data){$value = $value ? $value : (isset($data['state']) ? $data['state'] : '');$list = $this->getStateList();return isset($list[$value]) ? $list[$value] : '';}}

Choujiangset模型

<?phpnamespace app\admin\model\choujiang;use think\Model;class Choujiangset extends Model
{// 表名protected $name = 'choujiang_set';// 自动写入时间戳字段protected $autoWriteTimestamp = false;// 定义时间戳字段名protected $createTime = false;protected $updateTime = false;protected $deleteTime = false;// 追加属性protected $append = ['state_text'];public function getStateList(){return ['1' => __('State 1'), '2' => __('State 2')];}public function getStateTextAttr($value, $data){$value = $value ? $value : (isset($data['state']) ? $data['state'] : '');$list = $this->getStateList();return isset($list[$value]) ? $list[$value] : '';}}

代码:

<?phpnamespace app\api\controller;use app\common\controller\Api;
use think\Exception

http://www.mrgr.cn/news/49195.html

相关文章:

  • python实现ppt转pdf
  • 解决YOLO报错:OSError: [WinError 1455] 页面文件太小,无法完成操作
  • 适用于 Windows 10 的最佳免费数据恢复软件是什么?
  • 【C++刷题】力扣-#1-两数之和
  • 【微服务】springboot3 集成 Flink CDC 1.17 实现mysql数据同步
  • Python 字典:解锁高效数据处理的秘密武器
  • Linux进程控制(3)(进程程序替换2 -- 微型shell)
  • PyTorch gather与scatter_详解
  • 视频格式转换
  • Spring Boot知识管理:智能搜索与分析
  • 常用STL容器(c++)
  • 【畅捷通-注册安全分析报告】
  • 【python】内置装饰器-@property
  • unordered_set、unordered_multiset、unordered_map、unordered_multimap的介绍及使用
  • gitlab的基本用法之创建用户和组
  • 美国的社会分裂延续至AI领域
  • 02.07.链表相交 最简方法之一
  • 【解锁AI潜能:如何通过精确Prompt撰写引导智能对话】
  • JavaWeb 18.过滤器
  • 一文通透OpenAI o1:从CoT、Self-Correct/STaR、Self-play RL、MCST等技术细节到工程复现