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

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


相关资源:

相关推荐
Token_w6 小时前
2026鸿蒙平板远控电脑怎么选?大屏适配、自动校准等适配完整度逐项实测
华为·harmonyos
梦想不只是梦与想8 小时前
鸿蒙应用市场:版本升级
harmonyos·应用升级·签名不一致
resh_people8 小时前
开源鸿蒙平台 KMP_CMP 三方库「WhatIf」适配全流程
华为·开源·harmonyos
小雨青年10 小时前
【HarmonyOS 7 闪控窗深度实战】04 闪控窗调整窗口形态与显示区域
华为·harmonyos
李游Leo10 小时前
HarmonyOS 7 + ArkUI + RelationalStore 学习笔记:本地数据分层存储与状态持久化架构实践【鸿蒙心迹】
笔记·学习·架构·harmonyos
李游Leo11 小时前
《HarmonyOS 7 精准碰一碰跨设备协作开发实战》07:异常恢复、状态机与CrossDrop工程收尾【鸿蒙心迹】
android·harmonyos
kiros_wang12 小时前
渐变/阴影/滤镜⾼阶⽤法:统⼀项⽬UI、精简冗余组件
ui·harmonyos
贾伟康12 小时前
【HarmonyOS 7新能力|065】QUIC长连接实战:弱网推送、会话恢复与连接治理
harmonyos·arkts·quic·长连接·弱网优化
m0_7381858213 小时前
Flutter 鸿蒙化实战:flutter_app_minimizer_plus 适配 OpenHarmony,一键最小化应用
flutter·华为·harmonyos·鸿蒙
TMT星球13 小时前
智界RX及鸿蒙智行新品发布会,多款重磅新品正式上市、开启预订!
华为·harmonyos