HarmonyOS应用开发实战:猫猫大作战-概率生成算法

📅 2026/7/28 13:07:02 👁️ 阅读次数 📝 编程学习
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 篇:重力下落算法