HarmonyOS应用开发实战:猫猫大作战-概率生成算法
📅 2026/7/28 13:07:02
👁️ 阅读次数
📝 编程学习
前言
在游戏开发中,随机数生成是基础能力——猫咪的随机等级生成、自动生成的随机列选择等。Math.random()生成 0-1 之间的均匀分布随机数,结合条件判断可以实现加权随机。
本文以「猫猫大作战」的randomLevel()为锚点,讲解概率生成算法。
提示:本系列不讲 ArkTS 基础语法与环境搭建,假设你已跟完第 1–119 篇。本篇是阶段四第 120 篇。
一、加权随机
1.1 随机等级生成
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) |
二、随机列选择
private randomCol(): number { return Math.floor(Math.random() * GameConfig.BOARD_WIDTH); }三、总结
Math.random()配合条件判断实现加权随机,控制不同等级猫咪的生成概率。
核心要点:
Math.random()生成 [0,1) 均匀分布随机数- 条件判断实现加权随机采样
- 随机列选择使用
Math.floor(Math.random() * width)
下一篇预告:第 121 篇将深入重力下落算法——猫咪逐行下落的物理模拟。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
- Math.random() MDN 文档
- 开源鸿蒙跨平台社区
- 第 119 篇:private 封装
- 第 121 篇:重力下落算法
编程学习
技术分享
实战经验