HarmonyOS应用开发实战:猫猫大作战-概率生成算法
前言在游戏开发中随机数生成是基础能力——猫咪的随机等级生成、自动生成的随机列选择等。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 篇重力下落算法