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 篇将深入重力下落算法------猫咪逐行下落的物理模拟。

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


相关资源:

相关推荐
Java的搬运工6 小时前
HarmonyOS ArkUI V2 实战:Schema 驱动表单、2in1 适配与实时通信
harmonyos·arkts·openharmony·harmonyos next·表单校验·arkui v2·2in1
花先锋队长6 小时前
HarmonyOS 7.0正式发布|华为天气空间运镜城市皮肤从4城增至10城
华为·智能手机·harmonyos
贾伟康7 小时前
【口算王|01】HarmonyOS ArkTS 口算题生成实战:按年级、运算类型和难度生成可控题目
算法·harmonyos·arkts·随机生成·口算题
HarmonyOS_SDK10 小时前
基于增强QUIC协议优化弱网下的直播观看体验
harmonyos
安好说AI11 小时前
Flutter 三方库 adaptive_image_picker 的鸿蒙化适配指南:零权限选图、纯 Dart 裁剪与目标大小压缩
flutter·harmonyos
2501_9197490312 小时前
华为鸿蒙免费PDF工具—小羊免费PDF
华为·pdf·harmonyos·鸿蒙
贾伟康14 小时前
【口算王|10】HarmonyOS ArkTS 语音报题实战:协调朗读、作答和页面生命周期
生命周期·harmonyos·arkts·语音交互·texttospeech
贾伟康15 小时前
【口算王|08】HarmonyOS ArkTS 分类训练实战:让年级与运算分类参数保持一致
harmonyos·arkts·数据建模·路由参数·分类训练
光锥智能15 小时前
华为新麒麟芯片、鸿蒙7问世,手机底层竞赛升级
华为·智能手机·harmonyos
贾伟康16 小时前
【口算王|09】HarmonyOS ArkTS 学习统计实战:计算连续训练和正确率趋势
harmonyos·arkts·数据可视化·preferences·学习统计