精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

2048小游戲—鴻蒙Arkts版

系統 OpenHarmony
我們需要在Config.json中進行文件的配置用于描述應用程序的基本信息、模塊、設備配置和能力等。它由三個主要部分組成:App、DeviceConfig 和 Module。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

一、規則講解

首先我們先介紹一下2048這個游戲的基本規則:一開始方格內會出現2或者4等這兩個小數字,玩家只需要上下左右其中一個方向來移動出現的數字,所有的數字就會想滑動的方向靠攏,而滑出的空白方塊就會隨機出現一個數字,相同的數字相撞時會疊加靠攏,然后一直這樣,不斷的疊加最終拼湊出2048這個數字就算成功。

如圖為游戲的初始界面:

2048小游戲——鴻蒙Arkts版-開源基礎軟件社區2048小游戲——鴻蒙Arkts版-開源基礎軟件社區

二、代碼講解

1、項目結構

如圖:

2048小游戲——鴻蒙Arkts版-開源基礎軟件社區2048小游戲——鴻蒙Arkts版-開源基礎軟件社區

主要包含三個包:model、pages以及util。

  • model 包:該包包含應用程序中使用的數據模型,比如說網絡請求返回的數據模型、本地存儲的數據模型等。這些數據模型用于傳遞數據,使得應用程序中各個組件之間的數據傳遞變得更加簡單和可靠。
  • pages 包:該包包含了應用程序中所有的 Activity、Fragment 等 UI 組件。這些組件被組織成不同的模塊(module),每個模塊都包含了一組相關的 UI 組件。例如,一個包含登錄、注冊等頁面的模塊可以被命名為 auth。
  • util 包:該包包含了應用程序中常用的工具類和輔助函數。例如,日期時間格式化、網絡連接狀態檢查、字符串處理等。這些工具類和輔助函數可以減少代碼的冗余,提高代碼的可讀性和可維護性。

2、model包

首先我們聲明該類為GameController,下面為了方便理解,我將分步給出部分代碼并介紹該類的主要方法和屬性。

2048小游戲——鴻蒙Arkts版-開源基礎軟件社區2048小游戲——鴻蒙Arkts版-開源基礎軟件社區

  • cellArr: number[][]: 一個二維數組,用于存儲游戲單元格的數字。每個單元格可以存儲一個數字,數字可以是 2 或 4。
  • isGameOver: boolean: 表示游戲是否結束。
  • init(cellArr: number[]): void: 初始化游戲,將一個一維數組轉換為二維數組,并生成兩個隨機數字填充到單元格中。

2048小游戲——鴻蒙Arkts版-開源基礎軟件社區2048小游戲——鴻蒙Arkts版-開源基礎軟件社區

  • fillOneEmptyCell(): void: 找到一個空單元格,生成一個隨機數字填充到該單元格中。
  • findOneEmptyCell(): number: 找到一個空單元格的索引。
  • getRandomValue(): number: 生成隨機數字,90%幾率生成2,10%幾率生成4。
  • randomVal(): 生成一個隨機整數,范圍在0(包括)和 max(不包括)之間。

2048小游戲——鴻蒙Arkts版-開源基礎軟件社區2048小游戲——鴻蒙Arkts版-開源基礎軟件社區

  • canMove(): boolean: 判斷游戲是否可以繼續移動,依次檢查每個單元格是否為空、是否和右側單元格相等、是否和下方單元格相等。
  • horizontalMoveCells(toLeft: boolean): void: 將單元格向左或向右移動,移除0并對相鄰相同數進行疊加。

2048小游戲——鴻蒙Arkts版-開源基礎軟件社區2048小游戲——鴻蒙Arkts版-開源基礎軟件社區

  • verticalMoveCells(toUp: boolean): void: 將單元格向上或向下移動,移除0并對相鄰相同數進行疊加。toUp表示是否是向上

2048小游戲——鴻蒙Arkts版-開源基礎軟件社區2048小游戲——鴻蒙Arkts版-開源基礎軟件社區

  • removeZerosAndAdd(arr: number[], toHead: boolean): number[]: 壓縮數組并對相鄰相同的數進行疊加。
去掉數組中的0,向頭或向尾壓縮數組。
 0,4,0,4向左壓縮變成:4,4,0,0. 向右壓縮變成:0,0,4,4
相鄰的數如果相同,則進行相加運算。
 4,4,0,0向左疊加變成:8,0,0,0. 向右疊加變成:0,0,0,8
 toHead表示是否是頭壓縮

2048小游戲——鴻蒙Arkts版-開源基礎軟件社區2048小游戲——鴻蒙Arkts版-開源基礎軟件社區

  • moveUp(): void: 向上移動單元格。
  • moveDown(): void: 向下移動單元格。
  • moveLeft(): void: 向左移動單元格。
  • moveRight(): void: 向右移動單元格。
  • checkGameOverOrContinue(): void: 檢查游戲是否結束,如果可以繼續移動,生成一個新數字填充到單元格中,否則標記游戲結束。
  • getFlatCellArr(): number[]: 將二維數組轉換為一維數組。

2048小游戲——鴻蒙Arkts版-開源基礎軟件社區2048小游戲——鴻蒙Arkts版-開源基礎軟件社區

首先我們定義了一個 GameDataSource 類,實現了 IDataSource 接口的方法。該類有一個 dataArray 屬性,用于存儲字符串數組類型的數據。constructor 方法接收一個參數 ele,并通過循環將其內容推入 dataArray 數組中。totalCount 方法返回 dataArray 數組的長度,即數據總數。getData 方法接收一個數字類型的參數 index,并返回 dataArray 數組中索引為 index 的元素。registerDataChangeListener 和 unregisterDataChangeListener 方法在接口中定義,但在該類中并未實現任何功能。

通過這段代碼,我們實現了一個數據源類,可以用于獲取、存儲和管理數據。如果需要在數據源中添加數據監聽器,可以通過實現 IDataSource 接口來實現該功能。

3、pages包(僅展示部分代碼)

2048小游戲——鴻蒙Arkts版-開源基礎軟件社區2048小游戲——鴻蒙Arkts版-開源基礎軟件社區

Lblbc 組件實現了游戲邏輯和界面渲染。它包含了一個 flatCellArr 數組,用于存儲游戲中的數字方塊的值。gameController 和 colorUtil 屬性分別是游戲控制器和顏色工具類的實例。

組件中的 startGame 方法用于初始化游戲,并將 flatCellArr 數組重置為初始狀態。moveUp、moveDown、moveLeft 和 moveRight 方法用于響應用戶的滑動手勢,移動數字方塊。updateCells 方法用于更新 flatCellArr 數組的值,并檢查游戲是否結束。

aboutToAppear 方法在組件即將出現時調用,并根據屏幕的大小設置游戲界面的大小。build 方法用于構建游戲界面,其中使用了 Column、Grid、Text 等 Ohos.js 組件。

GameOverView 組件是一個自定義對話框組件,用于在游戲結束時顯示。它包含一個 startGame 方法和一個 build 方法,用于重新開始游戲。

4、util包

2048小游戲——鴻蒙Arkts版-開源基礎軟件社區2048小游戲——鴻蒙Arkts版-開源基礎軟件社區

這段代碼實現了一個 ColorUtil 類,提供了一個 getCellBackgroundColor 方法,用于根據數字方塊的值返回相應的背景顏色。具體實現是通過一個 switch 語句,根據不同的數字方塊的值返回不同的顏色值。在 switch 語句中,每個 case 語句對應一個數字方塊的值,返回一個對應的顏色值。如果傳入的數字方塊的值不在 case 列表中,default 語句會返回一個默認的顏色值。

在游戲界面中,數字方塊的背景顏色就是通過調用 ColorUtil 類的 getCellBackgroundColor 方法來獲取的。根據不同的數字方塊的值,游戲界面上的數字方塊會顯示不同的背景顏色,從而提高了游戲的可玩性和可視化效果。

結尾

我們需要在config.json中進行文件的配置用于描述應用程序的基本信息、模塊、設備配置和能力等。它由三個主要部分組成:app、deviceConfig 和 module。

首先是 app 部分,用于定義應用程序的基本信息,包括 bundleName、vendor 和 version 等。其中,bundleName 表示應用程序的包名,vendor 表示應用程序的開發商,version 表示應用程序的版本號,包括 code 和 name 兩個屬性。

然后是 deviceConfig 部分,用于定義設備的配置信息。

最后是 module 部分,用于定義應用程序的模塊和能力。其中,package 表示模塊的包名,name 表示模塊的入口文件,mainAbility 表示應用程序的主要入口能力。deviceType 表示設備類型,這里是手機。distro 表示應用程序的分發信息,包括 deliveryWithInstall、moduleName、moduleType 和 installationFree 等屬性。abilities 表示應用程序的能力列表。js 表示應用程序的 JS 配置信息,包括 mode、pages、name 和 window 等屬性。其中,mode 表示頁面的模式,這里是 ets。pages 表示應用程序的頁面列表,這里只有一個名為 pages/index 的頁面。name 表示頁面的名稱,這里是 .MainAbility。window 表示頁面的窗口配置,包括 designWidth 和 autoDesignWidth 等屬性。

最終的運行結果如圖所示:

2048小游戲——鴻蒙Arkts版-開源基礎軟件社區2048小游戲——鴻蒙Arkts版-開源基礎軟件社區

好啦,本期的講解就此結束,博主第一次寫這玩意,希望大家一起努力共同進步。

文章相關附件可以點擊下面的原文鏈接前往下載:

https://ost.51cto.com/resource/2901

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2020-11-12 09:44:43

鴻蒙

2024-12-06 09:20:22

Android游戲新數字

2022-07-29 14:47:34

數獨Sudoku鴻蒙

2014-04-08 15:16:07

2048算法分析算法

2022-11-01 15:17:48

JS鴻蒙小游戲

2021-01-15 12:15:36

鴻蒙HarmonyOS游戲

2021-01-12 12:16:55

鴻蒙HarmonyOS游戲

2014-10-13 13:44:00

AngularJS2048

2014-06-19 10:02:32

Haskell代碼

2014-04-04 09:53:18

2048C++

2022-02-11 14:02:09

游戲JS鴻蒙

2022-02-11 14:39:11

游戲JS鴻蒙

2022-10-28 16:20:10

JS鴻蒙小游戲

2015-09-29 09:38:50

Java程序猜大小

2022-07-08 14:53:46

掃雷小游戲鴻蒙

2012-01-10 12:48:52

Java

2025-11-10 09:29:54

2024-07-31 09:46:13

2022-03-23 08:01:36

CSSGrid小游戲
點贊
收藏

51CTO技術棧公眾號

国产99re66在线视频| 波多野结衣视频在线看| 日韩一二三区在线观看| 亚洲国产日韩在线一区模特| 免费久久99精品国产自| www.亚洲激情| 欧美精品啪啪| 国产一区二区三区网站| 亚欧美一区二区三区| 一本大道色婷婷在线| 国产精品久久午夜夜伦鲁鲁| 国产精品亚洲综合| 小泽玛利亚一区二区三区视频| 婷婷综合激情| 国产视频在线一区二区| 欧美一级小视频| 日韩在线伦理| 亚洲欧美偷拍三级| 欧洲久久久久久| 亚洲高清精品视频| 久久国产精品区| 91爱爱小视频k| 天天天天天天天天操| 妖精一区二区三区精品视频| 制服丝袜av成人在线看| 免费日韩视频在线观看| 欧美人体视频xxxxx| 中文在线免费一区三区高中清不卡| 147欧美人体大胆444| 波多野结衣日韩| 一本久道久久综合婷婷鲸鱼| 免费av一区二区| 国产精品久久久视频| 日韩在线麻豆| 欧美成人乱码一区二区三区| 五月婷婷六月合| 美女福利一区二区| 午夜精品久久久久久久| 8x8ⅹ国产精品一区二区二区| 尤物网在线观看| 久久九九久久九九| 精品福利影视| 六月婷婷综合网| 国产毛片精品视频| 91视频8mav| 国产精品毛片一区二区在线看舒淇| 美女诱惑黄网站一区| 5252色成人免费视频| 日韩精品人妻中文字幕| 国内精品99| 欧美激情xxxx| 久久久久久久国产视频| 欧美暴力喷水在线| 欧美成人精品一区二区| 日韩激情综合网| 国产精品久久天天影视| 色婷婷**av毛片一区| 中文字幕黄色网址| 99久久久国产精品美女| 日韩视频精品在线| 欧洲美女女同性互添| 天天影视综合| 久久99久久99精品中文字幕 | 高清乱码免费看污| 在线综合亚洲| 日韩av色综合| 日批视频免费观看| 美女视频黄a大片欧美| 国产精品永久免费观看| 国产老女人乱淫免费| 国产一区二区三区在线观看精品| 91九色单男在线观看| 国产suv精品一区二区69| 国产真实精品久久二三区| 18成人免费观看网站下载| 可以免费观看的毛片| 91首页免费视频| 日韩欧美视频第二区| 网友自拍视频在线| 有码一区二区三区| 男人添女人下部高潮视频在观看 | 午夜精品一区二区三区三上悠亚| 国产原创中文在线观看| 日韩精品一区二区三区| 欧美日韩一区二区三区视频| 久久久久久久高清| 超碰97成人| 在线视频欧美日韩| 日本福利片在线观看| 在线视频免费在线观看一区二区| 日韩av毛片网| 国产片高清在线观看| 成人av资源在线| 日本一区二区三不卡| 成人日韩欧美| 黑人精品xxx一区一二区| 天天视频天天爽| 精品欧美午夜寂寞影院| 国产亚洲精品日韩| 久久久久久久中文字幕| 石原莉奈一区二区三区在线观看 | 日韩肉感妇bbwbbwbbw| 欧美2区3区4区| 亚洲无线码在线一区观看| 乱h高h女3p含苞待放| 制服诱惑一区二区| 成人性生交大片免费看小说| 五月婷婷深深爱| 亚洲欧美在线观看| 免费观看精品视频| 亚洲一区二区三区中文字幕在线观看 | 欧美乱大交做爰xxxⅹ性3| 最新中文字幕一区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 91美女在线视频| 亚洲小说欧美另类激情| 精品国产免费人成网站| 精品国产人成亚洲区| 天堂av网手机版| 亚洲一区二区三区高清| 99伊人久久| 在线观看国产原创自拍视频| 精品人伦一区二区三区蜜桃网站 | 欧美激情伊人电影| 中文字幕日韩第一页| 99久久国产免费看| 红桃一区二区三区| 五月天色综合| 国产一区二区三区在线| 黄色片网站在线免费观看| 国产mv日韩mv欧美| 天堂v在线视频| 欧洲美女精品免费观看视频| 国产一区二区三区在线视频| 日本高清www免费视频| 国产福利精品导航| 超碰在线免费观看97| 日韩毛片一区| 亚洲一区二区黄| 狠狠人妻久久久久久| 91尤物视频在线观看| xxxx18hd亚洲hd捆绑| 国产成人在线中文字幕| 久久全球大尺度高清视频| 国产精品怡红院| 日韩理论片网站| 精品久久久99| 亚洲精品国产偷自在线观看| 成人情趣片在线观看免费| 午夜看片在线免费| 欧美日韩国产另类一区| 欧美xxxx精品| 久久99国产精品麻豆| 国产精品无码乱伦| 精品一区二区三区视频在线播放| 久久久91精品国产| 国产xxxx在线观看| 一区二区三区在线视频观看| 91精产国品一二三| 影音先锋中文字幕一区| 精品一区国产| 台湾佬成人网| 日韩中文视频免费在线观看| 国产精品亚洲lv粉色| 亚洲精品欧美二区三区中文字幕| 在线观看岛国av| 欧美日韩理论| 狠狠色综合欧美激情| 最近高清中文在线字幕在线观看1| 日韩av在线免播放器| 无码人妻aⅴ一区二区三区有奶水| 国产清纯在线一区二区www| 亚洲激情在线观看视频| 亚洲一级淫片| 国产一区二区中文字幕免费看| 岛国av免费在线观看| 在线成人中文字幕| 国产免费高清av| 天天做天天摸天天爽国产一区| 中文字幕一区二区三区人妻不卡| 日韩vs国产vs欧美| av磁力番号网| 综合干狼人综合首页| 成人免费观看网址| 老司机深夜福利在线观看| 国产一区二区三区欧美| 国产精品乱码久久久| 精品动漫一区二区三区| 永久免费观看片现看| 国产成人aaaa| 欧美亚洲日本在线观看| 亚洲欧美偷拍自拍| 激情小说综合网| jizzjizz少妇亚洲水多| 欧美激情精品久久久久久黑人| 免费黄网站在线观看| 91精品国产综合久久精品app | 高清全集视频免费在线| 精品1区2区在线观看| 中文天堂在线视频| 亚洲sss视频在线视频| 91视频免费看片| k8久久久一区二区三区| 蜜臀一区二区三区精品免费视频| 99国产精品| 男女h黄动漫啪啪无遮挡软件| 久久影视三级福利片| 成人免费看黄网站| 色尼玛亚洲综合影院| 欧美激情视频给我| 97视频精彩视频在线观看| 亚洲福利视频二区| 国产视频一二三四区| 欧美亚洲国产一区二区三区va| 久久久www成人免费毛片| 国产精品区一区二区三区| 国产女人18毛片水真多18| 老司机精品视频一区二区三区| 国产视频一视频二| 欧美精品不卡| 日韩中文在线字幕| 精品欧美激情在线观看| 九色视频成人porny| 91精品国产自产精品男人的天堂 | 国产精品丝袜黑色高跟| aa片在线观看视频在线播放| 大尺度一区二区| 亚洲av毛片在线观看| 毛片不卡一区二区| 国产天堂在线播放| 日韩极品在线观看| 欧美性大战久久久久xxx| 亚洲人www| 免费拍拍拍网站| 国产真实久久| 成人av在线播放观看| 欧美日韩hd| 欧美另类videosbestsex日本| 国产精品97| 三年中文高清在线观看第6集 | 综合欧美国产视频二区| 黄色毛片在线看| 亚洲欧美中文在线视频| 日本高清中文字幕二区在线| 日韩电影免费在线观看中文字幕| 亚洲福利在线观看视频| 精品欧美一区二区在线观看| va视频在线观看| 日韩丝袜美女视频| 国产浮力第一页| 日韩欧美的一区二区| 亚洲AV午夜精品| 精品国产三级a在线观看| 丰满人妻一区二区三区无码av| 日韩欧美一区在线| 亚洲春色一区二区三区| 精品国产一区二区三区不卡 | 午夜精品一区二| 日本精品一区二区三区四区的功能| 色屁屁影院www国产高清麻豆| 色综合天天综合| 18国产免费视频| 337p亚洲精品色噜噜狠狠| 国产ts变态重口人妖hd| 精品久久国产老人久久综合| 四虎精品一区二区三区| 亚洲欧美三级在线| 日韩专区在线| 欧美激情精品久久久久久蜜臀| 国产拍在线视频| 国产精品91免费在线| 免费视频观看成人| 97se国产在线视频| 日韩大片在线免费观看| 色噜噜狠狠一区二区三区| 天天综合精品| 国产精品久久中文字幕| 喷白浆一区二区| 一级黄色高清视频| 91在线视频免费观看| 先锋影音av在线| 亚洲码国产岛国毛片在线| 免费观看一区二区三区毛片| 在线影视一区二区三区| 国产精品久久久久久久久毛片 | 国产系列在线观看| 久久激情五月丁香伊人| 波多野结衣在线观看| 国产精品a久久久久久| 欧美片网站免费| 欧美国产一二三区| 欧美激情视频一区二区三区在线播放| 大陆极品少妇内射aaaaa| 麻豆免费精品视频| av2014天堂网| 最新日韩在线视频| 青青国产在线观看| 51精品视频一区二区三区| 天天干天天舔天天射| 久久精品免费播放| 在线一区av| 91传媒免费看| 欧美精品尤物在线观看| 欧美成人精品免费| 久久成人综合网| 国产毛片久久久久久久| 亚洲国产精品久久艾草纯爱| 一级黄色在线观看| 精品国产青草久久久久福利| 日本激情视频在线观看| 秋霞成人午夜鲁丝一区二区三区| 精品视频国内| 日韩一本精品| 国产精品入口| 国产精九九网站漫画| 最新不卡av在线| 亚洲中文一区二区| 亚洲黄色在线看| www在线观看播放免费视频日本| 国产ts人妖一区二区三区| 影音先锋欧美激情| 熟女视频一区二区三区| 日本91福利区| 波多野结衣av在线观看| 欧美日韩精品在线播放| 精品人妻aV中文字幕乱码色欲| 中文字幕亚洲欧美一区二区三区 | 国产一区再线| 欧美日韩四区| 在线观看免费看片| 18成人在线视频| 一级黄色小视频| 深夜福利日韩在线看| 国产精品扒开腿做爽爽爽视频软件| 国产区一区二区| 一区在线观看| 97精品人妻一区二区三区蜜桃| 亚洲精品一卡二卡| 国产免费叼嘿网站免费| 另类视频在线观看| 99热这里有精品| 玖玖精品在线视频| 国产麻豆成人精品| 欧美三级小视频| 日韩欧美国产综合| 久草免费在线色站| 国产精品久久亚洲7777| 极品日韩av| 免费成人蒂法网站| 色婷婷av久久久久久久| 国产中文字幕在线播放| 国产精品久久97| 久久麻豆精品| 精品国产鲁一鲁一区二区三区| 亚洲婷婷国产精品电影人久久| 国产一区二区在线视频聊天 | 久久久久久久久久久久久久久久久| 91精品国产综合久久香蕉麻豆| а√天堂官网中文在线| 国产91社区| 亚洲欧美高清| av手机在线播放| 欧美区在线观看| 新版中文在线官网| 国产亚洲欧美一区二区三区| 亚洲欧美大片| 最新日韩免费视频| 欧美一级久久久久久久大片| 青春草免费在线视频| 精品视频一区二区三区四区| 久久精品亚洲| 夫妻性生活毛片| 亚洲精品乱码久久久久久金桔影视 | 欧美成人tv| 男男做爰猛烈叫床爽爽小说| 在线视频你懂得一区| 黄网页在线观看| 精品国产免费一区二区三区 | 91热精品视频| 亚洲第一黄色| 日本美女xxx| 日韩欧美的一区二区| 欧美亚洲韩国| 久久最新免费视频| 97se亚洲国产综合在线| 91精品国产乱码久久| 国模吧一区二区| 成人看的羞羞网站| 国产免费a级片| 欧美三级韩国三级日本一级| 欧美亚洲天堂| 亚洲乱码一区二区三区三上悠亚| 丁香天五香天堂综合| 亚洲午夜无码久久久久| 色综合男人天堂| 欧美手机在线| 国产xxxxxxxxx| 在线综合+亚洲+欧美中文字幕| 小h片在线观看| 日本精品福利视频|