OpenHarmony3.1鍛煉最強大腦

背景
我為什么想要做這樣的一款小游戲呢?
最近孩子在一家思維方面的培訓機構中帶回了一個表格,表格上有隨機的數字,0~25,老師要求孩子們需要用最快的速度連續的把字卡上的數字按順序讀出,越快越好,起初我以為是個游戲(請原諒我的知識缺失),還打趣的和孩子比賽,當然每次我都讓著孩子,一頁方格很快就結束了,我覺得很有意思,想上網下載一些,驚奇的發現這個方格游戲竟然是"最強"的專注力游戲,隨后我用時間搜索關鍵字,想找下是否有類似的游戲APP,確實找到了很多,iOS系統、Android系統都支持,但發現這些APP都內嵌了很多的廣告,在練習的過程中時不時的出現,這本身是一款專注力的游戲,在訓練過程中不斷的被打斷,尤其對孩子不友好,最近正在學習OpenHarmony系統,想在此系統上先創建一個純凈版的專注力游戲–舒爾特方格。
啰七八嗦的一堆,好像沒有提到什么是舒爾特方格。別急,往下看…
先看下游戲截圖吧














游戲視頻
來了,來了,開始解釋說明是舒爾特方格。
什么是舒爾特方格呢?
【某度了一下】
“舒爾特方格”,據說是世界公認“最強”的專注力小游戲,每天讓孩子玩上10分鐘,專注力就能有很大的提升。
舒爾特方格最初是用于幫助飛行員提升專注力的一種訓練方式,其基礎形式屬于九宮格的一種,格數的多少代表了等級的高低,格子內填寫了1-25等數字,在訓練時需要訓練者按照1-25的順序,指出并讀出來,而用時越短,則則證明專注力越好。

而發明這項專注力小游戲的人,是美國神經心理醫生舒爾特,這套“舒爾特方格”主要是通過視覺、聽覺、動覺進行訓練,提高專注力的穩定性,后來因為這個小游戲的效果十分顯著,玩法也比較簡單,所以逐漸被應用到普通人身上。
游戲介紹
游戲目標
1、培養注意力的集中、分配、控制能力。
2、拓展視幅,提高視覺的穩定性、辨別力、定向搜索能力。
游戲玩法
游戲設計了三種不同的難度類型,簡單:3×3的方格,中等:4×4的方格,困難:5×5的方格,根據你選擇的游戲難度,請用手指按1~x的順序依次按下對應的數字按鈕,同時大聲讀出來,當游戲完成時會記錄時間,用時越短,表示你的注意力水平越高。
注:“舒爾特方格”既可以是一種測量兒童專注力的工具,也可以作為鍛煉兒童專注力的有效工具,當兒童專注力過差時,可從3×3表格練起,當兒童對于表格完全熟練之后,再逐漸對表格進行升級,依次進行 “4×4”、 “5×5”……方格的訓練。為防止兒童對于方格過于熟練形成前測效應,每次玩時都應對數字進行打亂,重新隨機編入表格。只要父母平時多注意孩子專注力的鍛煉,孩子的專注力一定會有所提升。
時間標準
根據方格數量的不同,時間的要求標準也不同,現在就5×5共25格的舒爾特方格挑戰時間給出參考標準,如下:
等級 | 優秀 | 良好 | 中等 | 及格 |
5~6歲 | 30秒內 | 30~40秒 | 40~48秒 | 55秒內 |
7~11歲 | 26秒內 | 26~32秒 | 32~40秒 | 45秒內 |
12~17歲 | 16秒內 | 16~18秒 | 19~23秒 | 24秒內 |
18歲以上 | 12秒內 | 13~16秒 | 17~19秒 | 20秒內 |
項目開發
游戲功能
1、游戲首頁-閃屏頁,界面顯示預加載圖片,1.5秒后跳轉到登錄頁面。
2、游戲登錄頁面,用戶名輸入框,最大長度為10字符,用戶名內容無類型限制,可以是數字、文本、符號等,點擊確定進入游戲,登錄頁面只有首次需要輸入,用戶名確認后則直接進入游戲設置界面。
3、游戲設置界面,界面包含:游戲難度選擇(簡單、中等、困難、對戰)、開始游戲,另外可以查看游戲榜單、游戲規則、舒爾特方格的基礎知識,點擊不同的按鈕進入相對于的功能。
4、游戲主頁,根據用戶選擇的難度,加載不同方格數的游戲,簡單類型:3X3共9格,數字從19;中等類型:4X4共16格,數字從116;困難類型:5X5共25格,數字從1~25。
5、單獨說明下對戰類型模式,當一臺設備選擇了對戰模式(為了方便描述,我們把當前的設備命名為:設備A)時界面彈窗顯示當前局域網內的其他設備列表,用戶可以選擇其中一臺設備進行認證,通過認證后,會拉起被連接設備(我們把被連接的設備命名為:設備B)的游戲界面,設備B可以選擇游戲的難度,點擊開始游戲,設備A和設備B同時進入游戲界面,在倒計時后用戶可以進行對戰。
6、游戲模式總體分為兩類,練習(簡單、中等、困難)、對戰,在練習模式下,游戲結束可以查看當前練習的結果,包含:錯誤次數、當前用時、歷史最佳。如果是對戰模式,游戲結束后顯示挑戰用時、當前用時,挑戰用時表示挑戰者的用時,當前用時表示你在本次對戰的用時,根據對戰結果,用時少,提示:“恭喜你,贏得挑戰!”、用時多,提示:“你輸了,再接再厲!”。
7、游戲榜單頁面,包含三種不同難度(簡單、中等、困難)練習的記錄,根據用時的升序排列,根據順序排列。
8、游戲規則頁,主要用戶展示舒爾特方格游戲的規則和一些練習標準。
9、舒爾特方案頁,簡單的介紹舒爾特方格游戲。
環境
- 開發板:DAYU200
- 系統版本:OpenHarmony 3.1 release
- SDK版本:ohos-sdk 3.1.6.5, API 8
- 開發工具:DevEco Studio 3.0.0.900(For OpenHarmony)
項目目錄

使用到的容器與組件
- div
- text
- stack
- block
- divider
- dialog
- button
- image-animator
- image
- textarea
- swiper
- list
- list-item
- label
- input
- tabs
- tab-bar
- tab-content
上述所列舉的所有容器、組件都可以參看官方開發文檔:
關聯技術
分布式調度遠程FA
說明:OpenHarmony提供了分布式能力,能夠實現在同一網絡下對遠程設備Ability的拉起。在本游戲中主要體現在游戲對戰,用戶啟動對戰模式,即開啟分布式遠程調度能力,可以拉起局域網內的已認證設備。
相關技術說明文章可以參看:
- OpenHarmony分布式 啟動遠程設備的FA。
- OpenHarmony分布式調度啟動遠程FA官方demo。
RDB
說明:關系型數據庫(Relational Database,RDB)是一種基于關系模型來管理數據的數據庫。關系型數據庫基于SQLite組件提供了一套完整的對本地數據庫進行管理的機制,對外提供了一系列的增、刪、改、查等接口,也可以直接運行用戶輸入的SQL語句來滿足復雜的場景需要。
在游戲中主要運用在游戲練習的成績存儲,以及同步對戰結果,根據對戰成績比較對戰雙方的成敗。
相關技術說明文章可以參看:
RPC
RPC(Remote Procedure Call)機制用于實現跨進程通信,使用軟總線驅動,用于跨設備跨進程通信。RPC通常采用客戶端-服務器(Client-Server)模型,服務請求方(Client)可獲取提供服務提供方(Server)的代理 (Proxy),并通過此代理讀寫數據來實現進程間的數據通信。通常,Server會先注冊系統能力(System Ability)到系統能力管理者(System Ability Manager,縮寫SAMgr)中,SAMgr負責管理這些SA并向Client提供相關的接口。Client要和某個具體的SA通信,必須先從SAMgr中獲取該SA的代理,然后使用代理和SA通信。
在游戲中主要運用在對戰模式下,對戰時會有兩臺設備,分別為設備A和設備B,設備A發起對戰啟動設備B的游戲app,設備B被啟動后,進入游戲設置界面時,通過RPC啟動設備A的服務,在設備B上選擇游戲模式(簡單、中等、困難)后點擊開始游戲時,通過RPC向設備A發送開始游戲的消息,設備A代理服務收到開始游戲的消息后,通過公共事件將開始游戲的消息(開始游戲、游戲模式)發送到游戲設置界面,根據消息開始游戲。
相關技術說明文章可以參看:
公共廣播
公共事件提供了應用程序向系統其他應用程序發布消息、接收來自系統或其他應用特定消息的能力。CES(Common Event Service, 即公共事件服務)為應用程序提供發布、訂閱及退訂公共事件的能力。
公共事件根據事件發送方不同可分為系統公共事件和自定義公共事件。
- 系統公共事件:系統將收集到的事件信息,根據系統策略發送給訂閱該事件的用戶程序。
- 公共事件包括:終端設備用戶可感知的亮滅屏事件,以及系統關鍵服務發布的系統事件(例如:USB插拔,網絡連接,系統升級)等。自定義公共事件:由應用自身定義的期望特定訂閱者可以接收到的公共事件,這些公共事件往往與應用自身的業務邏輯相關。
在游戲中主要運用在對戰模式下,確保兩臺設備同時進入游戲。
相關技術說明文章可以參看:
??公共事件開發指導??。
已知問題
1、對戰模式下,設備A啟動設備B的游戲FA頁面時出現設備A應用閃退或者設備 B應用閃退?
問題原因:初步排查導致的原因有兩個:第一個是系統內存問題;第二個是應用多實例問題,具體的原因待排查,如果你知道什么原因還希望可以留言告知,不勝感激。
解決方案:清除設備上運行的應用,重啟游戲應用,重新發起挑戰。
展望
- 擴展游戲成績數據的曲線圖,直觀的觀察一段時間內專注力的提升情況。
- 擴展截屏分享功能。
- 擴展對戰數據榜單查詢。
- 擴展舒爾特方格古詩版,增加游戲的趣味性和實用性,還能提升背誦水平。

問題與思考
開發過程中遇到了一些問題,一些比較復雜的問題已經提到issues,希望可以幫助到你在開發過程中閉坑,具體如下:






























