最佳實戰:用Cocos2d-x3.x和C++11編寫2048遊戲以及遊戲AI(全民2048 Android版上線啦)
話說,年僅19歲的帥氣小夥子Gabriele Cirulli於2014年3月完成併發布在github上,遊戲設計來自於《1024》,而《1024》靈感來源於《Threes!》的移動端遊戲。然而遊戲飆升的人氣超乎他的想象,人們忘記了Flappy Bird, 2048成了 網路上“最上癮的東西”。
我是完全為了熟悉Cocos2d-x3.x版本,才寫這個遊戲的。這個遊戲的玩法如下:
該遊戲使用方向鍵讓方塊上下左右移動。如果兩個帶有相同數字的方塊在移動中碰撞,則它們會合併為一個方塊,且所帶數字變為兩者之和。每次移動時,會有一個值為2或者4的新方塊出現。當值為2048的方塊出現時,遊戲即勝利。
遊戲難度在於移動加合併的操作,其實也不難了,只是我覺得寫的不優雅。要是不用lambda,那會更加難看。其他功能實現起來都沒啥說的。當然還有很多地方是可以完善的。
最後我還給這個遊戲寫了個AI,理論上可以達到很高的成功率。當時是晚上8點測試的,跑到晚上12點,平均一局需要移動1000次,如果每0.5秒一次,500秒一局,即一局需要大概8分鐘。因為有出現的不僅僅是2,還可能是4,而且失敗時肯定不需要這麼多時間,不管怎樣,測的結果不是很好。我想主要是因為效率不高吧,計算量較大,其次是跟電腦配置有關係了,畢竟每一步的時間間隔不能太久,測試時間不夠長也是個原因。這個留個以後改進吧。
最後,附上圖片和原始碼:
************************全民2048上線啦*************************
原始碼地址:https://github.com/booirror/game-2048
APK下載:http://apk.hiapk.com/appinfo/com.uboxsoft.puzzle/2
注:
1. 有多名網友反映,移動或合併後位置錯誤。我電腦上很正常,根據網友的反映,貌似移動結束後坐標變成0,0了,這問題終於解決了,是cocos版本導致的。我用的是3.3版本,最新版由於底層函式做了修改,從而出現了這個問題。程式碼稍後我會更新到github上(6月8號之前)。對此,我很感謝其中一位網友,名字就不說了,不確定他是否願意透露名字。
2. 適配問題。這個我承認是程式碼沒寫好,使用FIXED_WIDTH並修改相應座標可以達到滿意效果。
3. 想編譯出Android版的同學,需要自己修改Android.mk檔案。
(完)
相關文章
- 2048遊戲的最佳演算法是?來看看AI版作者的回答遊戲演算法AI
- javascript實現前端小遊戲2048JavaScript前端遊戲
- Python小遊戲2048Python遊戲
- TP5開發海賊王版2048遊戲遊戲
- javascript實現html網頁版的2048遊戲原始碼JavaScriptHTML網頁遊戲原始碼
- 200 行程式碼實現簡易版 2048 遊戲行程遊戲
- 2048小遊戲設計思路遊戲設計
- 【IDL】開發遊戲"2048"開發遊戲
- bash shell實現2048小遊戲詳解遊戲
- 小遊戲2048最佳演算法怎麼實現?思路全解析!遊戲演算法
- 40+ 行 JS 程式碼打造你的 2048 遊戲 AIJS遊戲AI
- [ 邏輯鍛鍊] 用 JavaScript 做一個小遊戲 ——2048 (初級版)JavaScript遊戲
- [ 邏輯鍛鍊] 用 JavaScript 做一個小遊戲 ——2048 (詳解版)JavaScript遊戲
- HTML小遊戲2—— 2048網頁版(附完整原始碼)HTML遊戲網頁原始碼
- 微信小程式版2048微信小程式
- 2048 雙人創新小遊戲【JavaFX-FXGL遊戲框架】遊戲Java框架
- vue實現2048Vue
- C語言在linux終端下實現2048小遊戲:第二版C語言Linux遊戲
- 鵝廠程式猿:使用Swift+SpriteKit編寫2048Swift
- 我的簡易2048小遊戲記錄整理遊戲
- 一鍵雲部署:ROS的Terraform託管服務助你輕鬆上線2048經典遊戲ROSORM遊戲
- 基於 react, redux 最佳實踐構建的 2048ReactRedux
- vue 開發 2048/圍住神經貓 小遊戲Vue遊戲
- 2048原始碼原始碼
- 19歲男孩開發遊戲《2048》意外爆紅 僅用一週就完工開發遊戲
- 微信飛機大戰小遊戲編寫分享(上)遊戲
- [實戰]用flutter編寫炸彈人小遊戲同時支援web和移動端Flutter遊戲Web
- 全民加速節:全站加速在遊戲行業的最佳實踐遊戲行業
- 2048移動演算法演算法
- 用Excel編寫小遊戲 (轉)Excel遊戲
- 輕鬆一刻|Walrus CLI與CI/CD工具整合,輕鬆部署2048遊戲遊戲
- 我們要開始賣Steam遊戲啦!TapTap PC遊戲商城即將上線遊戲APT
- Public Easy Round #2 E. 2048
- hdu2048遞迴問題遞迴
- 編寫 Android Library 的最佳實踐Android
- 上線9年沒對手的這款遊戲,正在讓“全民造夢”成為現實遊戲
- [Erlang07] Erlang 做圖形化程式設計的嘗試:純Erlang做2048遊戲程式設計遊戲
- 用 SAP ABAP 編寫的俄羅斯遊戲遊戲