当前位置: 首页 > 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.lryc.cn/news/459746.html

相关文章:

  • MySQL 8.4修改初始化后的默认密码
  • 前端开发笔记--css 黑马程序员1
  • ORACLE 19C创建多个不同字符集PDB
  • 基于协同过滤的景区旅游可视化与景区推荐系统(自动爬虫,地点可换)
  • ElasticSearch搜索引擎
  • leetcode哈希表(二)-两个数组的交集
  • 嵌入式硬件设计中EDA布局与布线实现
  • entity,pojo,vo,dto 详解
  • C语言常见知识点
  • 产品设计——应用架构
  • Linux初阶——动静态库
  • 创建一个c#程序,实现字符串类型转整数类型
  • Spring Boot知识管理系统:敏捷开发实践
  • 算法竞赛(Python)-AI的思维模式(搜索)
  • Android Studio开发Kotlin项目中遇到的问题解决集
  • 【LeetCode】708. 循环有序列表的插入
  • 2.1.ReactOS源码分析ReadFile函数分解
  • Gridview配置数据源--信任服务器证书
  • 【Next.js 入门教程系列】08-发送邮件
  • Echarts合集更更更之树图
  • 线性代数 行列式
  • Ubuntu 通过 Docker 搭建 GitLab
  • 原来CDC数据同步可以这么简单,零代码可视化一键数据同步
  • Ubuntu环境使用 Whisper 与 ZhipuAI 实现本地批量视频转录与文本标点复原(本地亲测可用)
  • SPI机制
  • 生信分析流程:从数据准备到结果解释的完整指南
  • golang语法
  • 【fisco学习记录2】多群组搭建
  • 深度解读:路由交换、负载均衡与防火墙的网络交响
  • linux线程 | 线程的控制(二)