效果如何?
最終效果如下面的動圖,簡單演示下。
這是個非常老的游戲了,我最早是在linux下玩到的,只有一個簡單字符界面,但比較考驗(yàn)智力和運(yùn)氣,很長一段時間只能玩到 256;后來掌握規(guī)則以后,就很輕松到 2048 了。之前曾在 Windows 和安卓上都做過類似開發(fā),加上漂亮的 UI,這次試用 AI Camera,想回歸原始,直接用純字符來做界面。
UI設(shè)計(jì)
說是UI設(shè)計(jì),起始很簡單,說穿了就是 printf 打印字符和 getchar 獲取輸入。 在實(shí)現(xiàn)中,發(fā)現(xiàn)使用 system(“clear”); 可通過編譯,但無法實(shí)現(xiàn)刷新功能,運(yùn)行時提示錯誤,解決方法是使用 printf("33[2J"); 替代。 getchar 有個小問題,就是不能直接檢測輸入的字符,需增加回車,在喬幫主的提示下,使用
依然有些問題,后續(xù)準(zhǔn)備進(jìn)一步調(diào)試。
規(guī)則實(shí)現(xiàn)
定義數(shù)組 arr[16] 用于記錄填入的數(shù)字,先判斷移動方向,使用合并函數(shù) void merge(),將需要合并的數(shù)字加起來,再通過 move_go() 函數(shù)移動數(shù)字。判斷當(dāng)填滿字符后,游戲結(jié)束。
目前的缺陷
1、判斷 ctrl-z 似乎有問題,退出主函數(shù) main() 需要再調(diào)試。 2、因?yàn)闀r間函數(shù) time() 調(diào)用不成功,沒有給 rand() 做一個臨時種子,所以每次 rand() 的結(jié)果是可推測的。 3、因?yàn)榇诮K端沒有找到真正“清屏”的功能,只能通過滾屏來清屏,所以,會看到屏幕滾動條不斷下移。
責(zé)任編輯:lq
-
AI
+關(guān)注
關(guān)注
87文章
30728瀏覽量
268892 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4327瀏覽量
62573 -
串口終端
+關(guān)注
關(guān)注
0文章
8瀏覽量
2400 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3713瀏覽量
16256
原文標(biāo)題:用鴻蒙AI Camera玩2048小游戲
文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論