精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

清纯唯美亚洲激情| 欧美一区二区播放| 五月天亚洲综合小说网| 亚洲无码精品在线观看| 97精品国产| 欧美一级黄色大片| 国产 日韩 亚洲 欧美| 男女视频在线观看| 久久电影国产免费久久电影| 久久99精品久久久久久青青91| 无码成人精品区在线观看| 中文在线中文资源| 亚洲人精品午夜| 99久热re在线精品视频| 九九热最新视频| 国产综合精品| 亚洲日本欧美日韩高观看| 污视频在线观看免费网站| 日本黄色免费在线| 亚洲伦理在线精品| 香蕉久久夜色| 亚洲av成人精品毛片| 精品一区二区成人精品| 91成人天堂久久成人| www深夜成人a√在线| 一区二区美女| 精品日韩欧美一区二区| 天天操狠狠操夜夜操| 日韩大片免费观看| 亚洲最新在线观看| 亚洲精品一区二区三区四区五区| 四虎精品一区二区三区| 国产在线不卡一区| 国产精品入口尤物| av网站中文字幕| 亚洲小说欧美另类社区| 日韩中文字幕视频在线观看| 性少妇bbw张开| 国产区精品视频在线观看豆花| 91精品国产一区二区| 一区二区三区视频在线观看免费| 亚洲日本天堂| 欧美日韩视频在线| 一二三四视频社区在线| 日本在线视频中文有码| 亚洲卡通欧美制服中文| 中文字幕99| 亚洲成人影院麻豆| 欧美国产成人精品| 水蜜桃亚洲精品| 91成人高清| 国产精品午夜久久| 亚洲欧美国产精品桃花| 岛国在线大片| 国产精品久久久久久久浪潮网站| 婷婷四房综合激情五月| 国产黄在线观看| 国产日产欧美一区二区三区| 欧美影视一区二区| 成人在线播放视频| 国产精品久久久久久久久快鸭| 亚洲欧洲日韩综合二区| √天堂资源地址在线官网| 中文字幕不卡在线| 一区精品在线| av免费在线观看网站| 亚洲精品乱码久久久久久黑人| 大地资源网在线观看免费官网| av电影免费在线观看| 亚洲一二三级电影| 国产一区二区视频播放| 黄色在线观看www| 一本到不卡免费一区二区| 狠狠热免费视频| 日本久久久久| 精品久久久久一区二区国产| 97香蕉碰碰人妻国产欧美| 美女精品一区最新中文字幕一区二区三区| 亚洲欧美在线一区| 亚洲激情图片网| 欧美精品99| 欧美一级视频免费在线观看| 国产男人搡女人免费视频| 久久精品国产精品亚洲精品| http;//www.99re视频| 色婷婷av一区二区三| 国产欧美日韩亚州综合| 蜜桃视频成人在线观看| 美女视频在线免费| 欧美在线短视频| 国产裸体视频网站| 亚洲日本三级| 久久精品国产久精国产一老狼| 国产精品成人久久| 日韩黄色免费网站| 成人午夜电影在线播放| 你懂的视频在线观看| 亚洲欧美日本韩国| 日本一本二本在线观看| 久久99精品久久久野外观看| 精品视频—区二区三区免费| 99鲁鲁精品一区二区三区| 国产精品久久久一区二区| 国产日韩在线观看av| 五月婷婷伊人网| 亚洲私人影院在线观看| 成人羞羞国产免费网站| 涩涩屋成人免费视频软件| 亚洲人午夜精品免费| 精品一区二区三区四| 蜜臀久久99精品久久久久宅男 | 国产又黄又爽又色| 麻豆国产精品777777在线| 国产一区二区三区高清视频| 欧美激情免费| 91久久香蕉国产日韩欧美9色| 成人一区二区三区仙踪林| 欧美一区二区三区高清视频| 2019国产精品自在线拍国产不卡| 国产乱淫a∨片免费观看| 久久影视一区二区| 无码人妻精品一区二区蜜桃网站| 91国内外精品自在线播放| 亚洲精品国产精品久久清纯直播| 污污的视频在线免费观看| 日韩成人一区二区| 免费久久一级欧美特大黄| 日本欧美电影在线观看| 67194成人在线观看| 阿v天堂2014| 国产模特精品视频久久久久| 国产精品theporn88| 中国av在线播放| 777精品伊人久久久久大香线蕉| 免费视频91蜜桃| 玖玖视频精品| 你懂的网址一区二区三区| 国产精品25p| 亚洲福利视频专区| 精品午夜福利在线观看| 国产a久久麻豆| 99亚洲国产精品| 国产欧美日韩电影| 久久好看免费视频| 91九色蝌蚪91por成人| 国产精品久久久久一区二区三区共| 激情婷婷综合网| 久久97视频| 国产精品福利在线观看| www.视频在线.com| 欧美在线综合视频| 美女网站视频色| 精品一区二区精品| 91视频 - 88av| 高潮久久久久久久久久久久久久 | 国产免费拔擦拔擦8x在线播放 | 久久精品国产99精品国产亚洲性色| 色黄网站在线观看| 精品国产污污免费网站入口| 日本熟女一区二区| 91蜜桃网址入口| 日本成人黄色网| 婷婷激情综合| 99国精产品一二二线| 9999在线视频| 亚洲欧美激情精品一区二区| 成人一级免费视频| 中文字幕一区日韩精品欧美| 一级黄色大片儿| 亚洲视频精品| 激情五月综合色婷婷一区二区| 欧美裸体视频| 中国china体内裑精亚洲片| 国产精品乱码一区二区| 亚洲精品大片www| 一级特级黄色片| 丝瓜av网站精品一区二区| 一区二区三区四区五区精品| 精品国产乱码一区二区三区 | 日韩欧美a级片| 久久精品视频一区二区三区| 不卡的在线视频| 亚洲国产美女| 亚洲欧美电影在线观看| av男人一区| 国产99久久久欧美黑人| 国产美女福利在线| 日韩av一区在线| 91亚洲国产成人久久精品麻豆| 亚洲一区二区欧美日韩 | 天天干天天色天天| 在线观看亚洲精品视频| 国产一级性生活| 国产欧美综合在线观看第十页| 久久久久无码精品| 久久精品国语| 国产精品国产三级国产专区51| 亚洲老女人视频免费| 亚洲自拍偷拍视频| 欧美xxx视频| 欧美人与物videos| 97超碰国产一区二区三区| 精品欧美一区二区三区精品久久| 久久精品99北条麻妃| 亚洲aⅴ怡春院| chinese全程对白| 久久先锋影音av鲁色资源网| 亚洲天堂网站在线| 日韩在线一区二区| 人妻少妇精品久久| 欧美激情偷拍自拍| 欧美精品一区在线发布| 中文字幕一区日韩精品| 国产日韩av在线| free欧美| 国产91精品久久久久久| 影音先锋男人资源在线| 色噜噜亚洲精品中文字幕| 青梅竹马是消防员在线| 日韩写真欧美这视频| 在线免费观看中文字幕| 一本一道久久a久久精品| 国产精品二区一区二区aⅴ| 亚洲素人一区二区| 国产小视频你懂的| 国产亚洲欧美日韩俺去了| 中出视频在线观看| 国产.精品.日韩.另类.中文.在线.播放 | 日韩在线资源| 伊人精品在线观看| 免费国产在线观看| 日韩福利视频在线观看| 人妻无码一区二区三区久久99| 宅男噜噜噜66一区二区66| 伊人成人在线观看| 欧美性色黄大片| 久久久久久亚洲av无码专区| 色诱亚洲精品久久久久久| 久久中文字幕免费| 欧美视频在线视频| 国产毛片aaa| 欧美日韩精品在线观看| 免费观看一级视频| 亚洲国产精品一区二区久久恐怖片| 成年人av电影| 夜夜嗨av一区二区三区中文字幕| 69xx绿帽三人行| 一区二区三区欧美亚洲| 欧美激情国产精品免费| 亚洲在线视频网站| 国产一级二级毛片| 亚洲成人精品一区| 国产成人精品a视频一区| 精品久久中文字幕久久av| 欧美激情亚洲综合| 一本大道久久a久久综合| 国产精品熟女视频| 欧美日韩一区视频| 97精品人妻一区二区三区| 欧美一区二区私人影院日本| 成人h动漫精品一区二区无码 | 男人网站在线观看| 97精品久久久久中文字幕| 国产精品无码电影| 国产免费久久精品| 日本 欧美 国产| 一区二区三区毛片| 99热在线观看免费精品| 欧美亚洲一区三区| 国产女主播福利| 日韩精品一区二区三区四区| 污视频在线免费| 国产亚洲精品久久久久动| 免费a级人成a大片在线观看| 久久影院资源网| 狠狠操一区二区三区| 国产精品久在线观看| 精品国产乱码久久久久久樱花| 精品不卡在线| 99re久久最新地址获取| 国产a级黄色大片| 亚洲在线一区| 欧美视频亚洲图片| 97se亚洲国产综合自在线| 91麻豆精品国产91久久综合| 尤物视频一区二区| 麻豆精品久久久久久久99蜜桃| 欧美美女一区二区| 超碰免费在线97| 一区二区三区亚洲| 污视频网站免费在线观看| 日本欧美一级片| 日本少妇精品亚洲第一区| 欧美二区三区在线| 欧美一区网站| 成人3d动漫一区二区三区| 国产精品一区二区三区乱码 | 天堂在线观看免费视频| 神马久久桃色视频| 国产777精品精品热热热一区二区| 国产精品久久久久久久久久ktv| 亚洲天堂av资源在线观看| 日本在线观看一区二区三区| 欧美日韩免费| www.久久久精品| 91在线云播放| 欧美黄色aaa| 欧洲在线/亚洲| 天堂v在线观看| 欧美黑人极品猛少妇色xxxxx | 国产欧美日韩视频一区二区三区| 日韩国产欧美一区二区| 欧美日韩性生活片| 国产黑丝在线一区二区三区| 亚洲色图 激情小说| 精品美女国产在线| 成人av一区二区三区在线观看| 中文字幕日韩视频| 欧美成人黑人| 久久精品国产第一区二区三区最新章节 | 国产女女做受ⅹxx高潮| 粉嫩13p一区二区三区| 国产黄色小视频网站| 91国模大尺度私拍在线视频| 污污视频在线观看网站| 欧美黑人巨大xxx极品| 亚洲在线资源| 在线成人av电影| 蜜臀精品久久久久久蜜臀| 91精品人妻一区二区三区| 岛国精品视频在线播放| 天天色天天操天天射| 久久久亚洲天堂| 一级毛片精品毛片| 青青草综合视频| 国产精品一区二区视频| 欧美高清视频一区二区三区| 4438x亚洲最大成人网| 永久免费av在线| 91精品国产自产在线老师啪| 久久久综合色| 老司机久久精品| 亚洲视频综合在线| 国产乱码精品一区二三区蜜臂 | 欧美日韩在线观看首页| 国产另类自拍| 国产日韩欧美一区在线| 一二三不卡视频| 一本久久a久久免费精品不卡| 免费在线稳定资源站| 日本最新高清不卡中文字幕| 蜜桃精品噜噜噜成人av| 久久久久久久少妇| 日本一区免费视频| 91国内精品久久久| 精品久久久av| 国产精品极品国产中出| 国产美女主播在线播放| www国产成人免费观看视频 深夜成人网| 国产成人在线免费视频| 亚洲色无码播放| 欧美黄色a视频| 91社在线播放| 岛国一区二区三区| 日本视频www| 一区国产精品视频| 欧美h版在线观看| 精品少妇在线视频| 久久蜜桃av一区精品变态类天堂| 国产日韩在线免费观看| 日韩有码片在线观看| 亚洲图色一区二区三区| 免费看的黄色大片| 中文字幕欧美日韩一区| 精品国产av一区二区| 97在线视频免费| 日韩成人影院| av在线天堂网| 日本韩国欧美一区| 日韩三级影院| 激情小说网站亚洲综合网| 久久精品电影| 日韩视频中文字幕在线观看| 亚洲精品视频免费在线观看| 午夜不卡一区| 女性女同性aⅴ免费观女性恋| 中文文精品字幕一区二区| 成人黄色在线观看视频| 日韩av免费网站| 午夜视频精品| 中文字幕免费在线看线人动作大片| 欧美福利一区二区| 欧美男人天堂| 免费的一级黄色片| 欧美激情在线一区二区| 亚洲精品911| 国产精品一久久香蕉国产线看观看| 亚洲国产91| 999精品视频在线观看播放| 亚洲国产精品久久|