HarmonyOS应用开发实战:猫猫大作战-二维数组的创建、填充和操作

发布时间:2026/7/28 2:54:54
HarmonyOS应用开发实战:猫猫大作战-二维数组的创建、填充和操作 前言在「猫猫大作战」中棋盘是一个 5×8 的二维网格使用二维数组(Cat | null)[][]表示。理解二维数组的初始化和管理是构建棋盘类游戏的基础。本文以GameEngine.initializeBoard()为锚点讲解二维数组的创建、填充和操作。提示本系列不讲 ArkTS 基础语法与环境搭建假设你已跟完第 1–111 篇。本篇是阶段四第 112 篇。一、棋盘数据结构1.1 初始化棋盘private initializeBoard() { this.board Array(GameConfig.BOARD_HEIGHT) .fill(null) .map(() Array(GameConfig.BOARD_WIDTH).fill(null)); }1.2 结构说明5 列x: 0-4 ┌────┬────┬────┬────┬────┐ │ 0,0│ 1,0│ 2,0│ 3,0│ 4,0│ ← row 0顶部 ├────┼────┼────┼────┼────┤ │ 0,1│ 1,1│ 2,1│ 3,1│ 4,1│ ├────┼────┼────┼────┼────┤ │... │ │ │ │ │ ├────┼────┼────┼────┼────┤ │ 0,7│ 1,7│ 2,7│ 3,7│ 4,7│ ← row 7底部 └────┴────┴────┴────┴────┘ 8 行y: 0-7二、常见踩坑// 错误fill 引用同一数组 this.board Array(8).fill(Array(5).fill(null)); // → 所有行引用同一个数组改一行全改 // ✅ 正确map 创建独立数组 this.board Array(8).fill(null).map(() Array(5).fill(null));三、总结二维数组使用Array.fill map初始化注意避免引用共享问题。核心要点board[y][x]表示第 y 行第 x 列fillmap创建独立行的二维数组null表示空位下一篇预告第 113 篇将深入 Map 猫咪集合——id→Cat 的高效映射。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源ArkTS 数组操作开源鸿蒙跨平台社区第 111 篇GameEngine第 113 篇Map 猫咪集合