

前言
在游戏开发中,随机数生成 是基础能力------猫咪的随机等级生成、自动生成的随机列选择等。Math.random() 生成 0-1 之间的均匀分布随机数,结合条件判断可以实现加权随机。
本文以「猫猫大作战」的 randomLevel() 为锚点,讲解概率生成算法。
提示:本系列不讲 ArkTS 基础语法与环境搭建,假设你已跟完第 1--119 篇。本篇是阶段四第 120 篇。
一、加权随机
1.1 随机等级生成
typescript
private randomLevel(): CatLevel {
const rand = Math.random();
if (rand < 0.5) return CatLevel.SMALL; // 50%
if (rand < 0.8) return CatLevel.MEDIUM; // 30%
return CatLevel.LARGE; // 20%
}
1.2 概率分布
| 等级 | 概率 | 区间 |
|---|---|---|
| SMALL (1) | 50% | [0, 0.5) |
| MEDIUM (2) | 30% | [0.5, 0.8) |
| LARGE (3) | 20% | [0.8, 1.0) |
二、随机列选择
typescript
private randomCol(): number {
return Math.floor(Math.random() * GameConfig.BOARD_WIDTH);
}
三、总结
Math.random() 配合条件判断实现加权随机,控制不同等级猫咪的生成概率。
核心要点:
Math.random()生成 [0,1) 均匀分布随机数- 条件判断实现加权随机采样
- 随机列选择使用
Math.floor(Math.random() * width)
下一篇预告:第 121 篇将深入重力下落算法------猫咪逐行下落的物理模拟。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源: