今天研究了游戏中合成物品的概率问题,刚开始在网上搜了相关的资料,也看了好多别人的概率算法,但都不怎么明白,也不能满足我的要求。于是自己看了一些概率算法,也在qq群里请教了一些高人
自己写了以下的算法:
第一步是传入一个概率参数我这里给了一个80的
$rate = 80;//值越高,概率就越高
2024年07月30日
今天研究了游戏中合成物品的概率问题,刚开始在网上搜了相关的资料,也看了好多别人的概率算法,但都不怎么明白,也不能满足我的要求。于是自己看了一些概率算法,也在qq群里请教了一些高人
自己写了以下的算法:
第一步是传入一个概率参数我这里给了一个80的
$rate = 80;//值越高,概率就越高
2024年07月30日
阿里云oss作为一个非常好用的一个存储服务, 一般作为一些静态资源的存储,如web开发中的css、js图片等或者是客户上传的附件、图片等。今天我们来实现一个非主流的用法:用他来记录日志.
这得益于阿里云oss的"追加上传文件"接口,这样我们不需要每次获取oss上的文件内容后再手动日志内容然后后上传文件。
2024年07月30日
需要您的鼓励!
【欢迎关注、分享、点赞或评论,您的一个举手之劳,就是最大的鼓励!】
前言:
上一节我们聊了php的数据类型,主要是整型、浮点型、布尔型,字符串型和NULL这五种类型,其他类型暂时不聊天。
2024年07月30日
/** * 添加锁 * @param unknown $key_name 键的名称 * @param unknown $uniqid 唯一值 * @param unknown $key_expire 键的过期时间 * @return int 0失败,1成功 */ static function lock($key_name, $uniqid, $key_expire) { $lua_script = <<<EOF local flag = redis.call("setnx", KEYS[1], ARGV[1]) if tonumber(flag) > 0 then redis.call('expire', KEYS[1], ARGV[2]) return redis.call('get', KEYS[1]) else return 0 end EOF; $redis = MyRedisService::getInstance(); return $redis->eval($lua_script, 1, $key_name, $uniqid, $key_expire); } /** * 释放锁 * @param unknown $key_name 键名称 * @param unknown $key_val 键值校验 * @return int 0失败,1成功 */ static function unlock($key_name, $key_val) { $lua_script = <<<EOF local lockKey = redis.call('get', KEYS[1]) local lk = ARGV[1] if lockKey == lk then return redis.call('del', KEYS[1]) else return 0 end EOF; $redis = MyRedisService::getInstance(); return $redis->eval($lua_script, 1, $key_name, $key_val); } public function index() { //键名 $key_name = 'index'; //key过期时间 $key_expire = 1; //键的唯一标识 $uniqid = uniqid(null, true).microtime(); //加锁 $key_val = self::lock($key_name, $uniqid, $key_expire); //加锁成功,开始执行以下代码 if($key_val > 0) { try { $redis = MyRedisService::getInstance(); //从数据库或者redis中得到库存 $store_nums = $redis->get("store_nums"); if($store_nums > 0) { $redis->decrby("store_nums", 1); echo "去库存成功,剩余:".$redis->get('store_nums')."<br>"; } else { echo "库存不足<br>"; } } catch (\Exception $e) { //如果代码抛出异常,则直接删除key $redis->del($key_name); } } //释放锁 $res = self::unlock($key_name, $key_val); //如果释放锁失败,则直接手动删除key if(intval($res) === 0) { $redis->del($key_name); } }
2024年07月30日
用tcexam给用户做了一个在线考试平台,结果客户要求统计网站访问量,使用下面的方法简单实现了这个功能。
1.创建counter.dat文件,内容写为0。
2.创建tongji.php文件,内容如下:
<?php
error_reporting(E_ALL);
2024年07月30日
动态加载树形网格有助于从服务器上加载部分的行数据,避免加载大型数据的长时间等待。本教程将向您展示如何创建带有动态加载特性的树形网格(TreeGrid)。
2024年07月30日
本文作者:Maxiye
本文链接:https://segmentfault.com/a/1190000038529554
2024年07月30日
function currencyToChinese($data)
{
$data = str_replace(',', '', $data);
if #($data == '') {
return '';
2024年07月30日
PHP如何生成二维码图片
在我们开发过程中,往往我们会遇到将某个商品或者将某个活动生成一个二维码,当用户扫描二维码时候,用户可以直接跳转到商品详细页面或者活动详情页面。那我们如何生成一个二维码图片呢,来,看这里哦!!!
1.封装