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

前言

在游戏开发中,随机数生成 是基础能力------猫咪的随机等级生成、自动生成的随机列选择等。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 篇将深入重力下落算法------猫咪逐行下落的物理模拟。

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!


相关资源:

相关推荐
独守一片天1 天前
HarmonyOS 鸿蒙碰一碰与跨端协同体验怎么设计?
华为·harmonyos
yuhulkjv3351 天前
Gemini鸿蒙版导出word格式的终极解法:AI 导出鸭如何重构AI内容落地链路
人工智能·ai·word·harmonyos·ai导出鸭
whyutianict_vv1 天前
从 Web 前端到 HarmonyOS ArkTS:一次 AI 鸿蒙全栈智能体开发的迁移实录
前端·人工智能·harmonyos
m0_749690231 天前
【寻迹校园 HarmonyOS NEXT 实战 01】从校园痛点到可上架 MVP:失物招领应用产品设计
人工智能·深度学习·移动开发·harmonyos·arkts·arkui·产品设计
m0_749690231 天前
【寻迹校园 HarmonyOS NEXT 实战 03】NavPathStack 路由实战:18 个页面如何集中管理
华为·移动开发·harmonyos·arkui·navigation·navpathstack
m0_749690231 天前
【寻迹校园 HarmonyOS NEXT 实战 02】多模块工程拆解:entry、HAR 与 HSP 如何分工
华为·harmonyos·arkts·软件架构·har·hsp
用户0934077735141 天前
HarmonyOS WPS Open SDK 实践:用 SdkConstants 判断当前 HAR 形态
harmonyos
独守一片天1 天前
HarmonyOS鸿蒙新生态智能体意图框架怎么设计?
华为·harmonyos
梦想不只是梦与想2 天前
鸿蒙应用api的兼容性:参数配置(二)
harmonyos·sdk版本·sdkversion
北墨NoLimit2 天前
鸿蒙线程间通信怎么选:TaskPool、TaskGroup、LongTask 与 Worker 实战
typescript·harmonyos