宅在家學不進去嗎?試試這些 GitHub 上簡單易學的遊戲項目吧
- 2020 年 2 月 20 日
- 筆記
以下文章來源於HelloGitHub ,作者HelloGitHub
作者:HelloGitHub-小魚乾
這是本人宅在家裡的第 4 周,代碼不想看,技術文章不想讀,都不能愉快學習了我還怎麼當一個優秀的需求消化師呢?有沒有什麼輕鬆地方法來學習技術呢?想起了小時候金山打字通,玩着玩着就學會了打字,Bingo!#用遊戲的方式來學習技術#,是時候找找 GitHub 上有哪些好玩的遊戲項目來邊玩邊學了。
- 重溫經典
- 重溫童年
- 全家桶·模擬器
Tips:文章中的項目分別涵蓋了 Python、機器學習、Java、JS、Go、Objective-C 類別,希望不同技術棧的小夥伴都可以找到自己感興趣的新項目。
一、重溫經典
1.1 植物大戰殭屍

GitHub 地址→https://github.com/marblexu/PythonPlantsVsZombies
PythonPlantsVsZombies 是 Python 語言編寫的植物大戰殭屍。
- 編程語言:Python
- 功能介紹
- PythonPlantsVsZombies 支持的植物類型:太陽花、豌豆射手、寒冰射手、堅果、櫻桃炸彈、雙重豌豆射手等;
- PythonPlantsVsZombies 支持的殭屍類型:普通殭屍、棋子殭屍、路障殭屍、鐵桶殭屍、毒爆殭屍;
- 項目使用 Json 文件保存關卡信息,可獨立設置殭屍出現的時間和位置;
- 支持關卡開始時選擇上場植物;
- 支持夜間模式;
- 推薦理由:風靡一時的植物大戰殭屍關卡多、組合搭配多樣,拿它來學習 Python 練手是一個不錯的選擇。
1.2 地下城文字遊戲

GitHub 地址→https://github.com/AIDungeon/AIDungeon
AIDungeon2 是一個基於機器學習的地下城文字遊戲。
- 編程語言:Python
- 功能介紹
- AI Dungeon 基於 OpenAI 打造,採用了最先進的開放源碼文本生成功能,輔以自選冒險類特性,向玩家呈現了一段段獨特的文字。在 AI Dungeon 中,玩家可以進行各式行為,且無論你的舉動多麼奇怪都能得到回應;
- 推薦理由:此項目介紹了如何使用機器學習構建一個遊戲,代碼簡單清晰適合 AI 愛好者深入研究喲~
1.3 鬥地主

GitHub 地址→https://github.com/ainilili/ratel
Ratel 是一個命令行可聯網的鬥地主遊戲。
- 編程語言:Java
- 功能介紹
- Ratel 分客戶端和服務端,你可以讓小夥伴們的客戶端都連接你的服務器進行遊戲,也可以直接連接作者的公網服務器進行遊戲;
- 推薦理由:Ratel 使用 Java 語言開發,Netty 4.x 網絡框架搭配 protobuf 數據協議,此外還可以學到 Server-Client、Client-Client 等交互流程。
二、重溫童年
2.1 飛船射擊

GitHub 地址→https://github.com/gd4Ark/star-battle
Star Battle 是一個 JavaScript ES6、Canvas 開發的飛船射擊類遊戲。
- 編程語言:JavaScript
- 功能介紹
- 使用 W、A、S、D 控制飛船,按下 Space 發射;
- 燃料初始值為 15,每秒遞減 1 點,當燃料值為 0 時,遊戲結束;
- 觸碰掉下的燃料瓶可增加 15 點,最大值為 30 點;
- 擊中敵方飛船增加 5 分。行星需擊中兩次,增加 10 分。擊中友方扣除 10 分;
- 撞擊敵方損失 15 點燃料,撞擊友方扣除 10 分;
- 遊戲允許負分;
- 按下 P 暫停遊戲,按下 M 靜音;
- 推薦理由:作為單機遊戲經典款太空大戰,本項目除了能重溫簡單粗暴地擊落得分之外,還可以學到 Canvas 實踐技術,一舉兩得。
2.2 俄羅斯方塊

GitHub 地址→https://github.com/gd4Ark/star-battle
Tinytetris 是一個用 C++ 編寫的終端版俄羅斯方塊遊戲。
- 編程語言:C++
- 功能介紹
- 通過鍵位 A(左)、D(右)、W(旋轉)、S(放下)和 Q(退出)來控制方塊的方向和掉落;
- 推薦理由:Tinytetris 提供了兩個版本的源碼,分為注釋版和庫版,注釋較多易於理解和學習。
2.3 掃雷

GitHub 地址→https://github.com/muan/emoji-minesweeper
Emoji-minesweeper 是一款 Emoji 符號的掃雷遊戲。代碼很簡短,遊戲創意很酷。
- 編程語言:JavaScript
- 功能介紹
- 左鍵單擊開啟一個地點;
- 右鍵單擊以將一個點標記為炸彈;
- 雙擊可打開目標附近的所有 8 個點(使用右鍵單擊已標記為炸彈的點除外);
- 推薦理由:寥寥 300+ 行代碼實現該遊戲,還能學到 Javascript 處理 Emoji 的方法,你不來試試嘛~
三、全家桶·模擬器
3.1 Mac 上的紅白機

GitHub 地址→https://github.com/OpenEmu/OpenEmu
OpenEmu 是一個可以玩各種復古遊戲的遊戲機。
- 編程語言:Objective-C
- 功能介紹
- 支持任天堂(NES)、索尼PSP、世嘉 32X 等 30 多種遊戲引擎;
- 支持外接遊戲手柄、投屏等操作;
- 推薦理由:有了它,我們就可以在 Mac 系統上玩各種經典遊戲,只需將下載到的遊戲 ROM 拖到 NES 即可開心地玩耍 30+ 款掌機遊戲。
3.2 遠程遊戲

GitHub 地址→https://github.com/HFO4/gameboy.live
Gameboy.Live 是一個 Gameboy 模擬器,可以通過 Socket 遠程玩像素遊戲。
- 編程語言:Golang
- 功能介紹
- CPU指令仿真
- 計時器和中斷
- 支持僅 ROM、MBC1、MBC2 磁帶
- 聲音模擬
- 圖形仿真
- 雲遊戲
- ROM 調試器
- 遊戲保存和恢復卡帶級別
- 推薦理由:Gameboy.Live 是為學習目的而編寫的 Gameboy 模擬器,所以通過這個項目你可以快速 Pick Golang 技術。
以上為不才最近找到的可以學習姿勢的 GitHub 項目,#你有什麼 GitHub 上的遊戲項目來分享下嗎?# 歡迎留言告訴我們。