添加随机数模块文件

This commit is contained in:
dgflash
2022-07-21 14:54:19 +08:00
parent 9e622484b5
commit 9542857b26
5 changed files with 55 additions and 13 deletions

View File

@@ -8,11 +8,9 @@ oops-framework 基于 Cocos Creato 3.x 开发的一款游戏框架
4. 框架提供游戏常用插件工具
注:
1. [源库链接更新效率更高](https://gitee.com/dgflash/oops-framework)
2. Cocos Creato 3.x 不同版的框架在源库分支中下载master分支为最新引擎版本
3. 学习交流 QQ 群798575969
![](http://dgflash.gitee.io/oops-full-stack-web/doc/img/qq.png)
1. Cocos Creato 3.x 不同版的框架在源库分支中下载master分支为最新引擎版本
2. 学习交流 QQ 群798575969
![](http://dgflash.gitee.io/oops-full-stack-web/doc/img/qq.png)
#### 技术文档
- [oops-framework update](https://gitee.com/dgflash/oops-framework/tree/master/doc/using.md)

View File

@@ -227,7 +227,7 @@
"_priority": 1073741824,
"_fov": 45,
"_fovAxis": 0,
"_orthoHeight": 446.3340563991323,
"_orthoHeight": 375,
"_near": 1,
"_far": 2000,
"_color": {

View File

@@ -2,7 +2,7 @@
* @Author: dgflash
* @Date: 2021-07-03 16:13:17
* @LastEditors: dgflash
* @LastEditTime: 2022-07-20 17:28:50
* @LastEditTime: 2022-07-21 14:48:35
*/
import { dynamicAtlasManager, macro, profiler, _decorator } from 'cc';
import { DEBUG, JSB } from 'cc/env';

44
doc/core/common/random.md Normal file
View File

@@ -0,0 +1,44 @@
### 功能说明
OopsFramework随机算生成管理模块封装了[seedrandom](https://www.npmjs.com/package/seedrandom) 第三方随机数据库
### 使用说明
##### 设置随机种子
```
// 随机种子可由服务端派发给其它客户端,同样的种子,多端随机同样次数时,结果是相同的
RandomManager.instance.setSeed(123456789);
```
##### 生成指定范围的随机整数
```
var min = 1;
var max = 10;
// [min,max) 得到一个两数之间的随机整数,这个值不小于min如果min不是整数的话得到一个向上取整的 min并且小于但不等于max
RandomManager.instance.getRandomInt(min, max, 1);
// [min,max] 得到一个两数之间的随机整数,包括两个数在内,这个值比min大如果min不是整数那就不小于比min大的整数但小于但不等于max
RandomManager.instance.getRandomInt(min, max, 2);
// (min,max) 得到一个两数之间的随机整数
RandomManager.instance.getRandomInt(min, max, 3);
```
##### 根据最大值,最小值范围生成随机数数组
```
var min = 1;
var max = 10;
var n = 10;
// 生成10个1~10之间的随机数数组
RandomManager.instance.getRandomByMinMaxList(min, max, n);
```
##### 获取数组中随机对象
```
var objs = [1,2,3,4,5,6,7,8,9]
RandomManager.instance.getRandomByObjectList(objs, 3);
```
##### 定和随机分配
```
// 随机5个整数5个数的和为100
RandomManager.instance.getRandomBySumList(5,100);
```

View File

@@ -64,14 +64,14 @@ export class RandomManager {
}
/**
* 根据最大值,最小值范围 生成随机数数组
* 根据最大值,最小值范围生成随机数数组
* @param min 最小值
* @param max 最大值
* @param n 随机个数
* @param type 类型
* @returns
* @returns Array<number>
*/
getRandomByMinMaxList(min: number, max: number, n: number, type: number = 2): Array<number> {
getRandomByMinMaxList(min: number, max: number, n: number): Array<number> {
var result: Array<number> = [];
for (let i = 0; i < n; i++) {
result.push(this.getRandomInt(min, max))
@@ -83,7 +83,7 @@ export class RandomManager {
* 获取数组中随机对象
* @param objects 对象数组
* @param n 随机个数
* @returns
* @returns Array<T>
*/
getRandomByObjectList<T>(objects: Array<T>, n: number): Array<T> {
var temp: Array<T> = objects.slice();
@@ -99,9 +99,9 @@ export class RandomManager {
* 定和随机分配
* @param n 随机数量
* @param sum 随机元素合
* @returns
* @returns number[]
*/
getRandomBySumList(n: number, sum: number) {
getRandomBySumList(n: number, sum: number): number[] {
var residue = sum;
var value = 0;
var result: Array<number> = [];