原文連結:https://mp.weixin.qq.com/s/MGf_He78Kwzl4Xmh0YtyjQ
當你學習、工作累了,趁休息時間娛樂放鬆一下,透過用遊戲的方式來學習技術,那麼 GitHub 上這些好玩的開源專案小遊戲是最適合不過了。
首先,我們來看一下這張圖,可快速瞭解這篇文章中所涉及到的 23 個關於遊戲方面的開源專案。
Games on GitHub這個開源專案作者收集了託管在 GitHub 上的開源遊戲以及跟遊戲相關的專案列表,所含的專案型別眾多,遊戲種類包括教育類、瀏覽器類等,還包括一些開源的遊戲引擎等等;
該專案的目錄:
具體細節就不逐一點開給大家演示了,感興趣的朋友去看看。
GitHub 地址:https://github.com/leereilly/games
vim-game-code-break這個專案是 Vim 外掛版本的打豆豆。
將其放在您的.vimrc中:
Plug 'johngrib/vim-game-code-break'
然後在Vim中執行以下命令:
:source %:PlugInstall
裝上這個外掛輸入:VimGameCodeBreak,即可開始遊戲。
功能介紹
h、l 鍵是控制左右方向;space 鍵是發球;` 鍵是作弊鍵;] 鍵是神模式,[ 鍵是人工模式;q 鍵是結束遊戲,Q 鍵是退出並關閉遊戲;GitHub 地址:
https://github.com/johngrib/vim-game-code-break
javascript-tetris一個簡單的 JavaScript 俄羅斯方塊遊戲,這個開源專案是透過 HTML5 實現的,功能簡陋齊全,作者還記錄這個遊戲的實現細節以及工作原理。
地址:
https://codeincomplete.com/articles/javascript-tetris/
GitHub 地址:
https://github.com/jakesgordon/javascript-tetris
遊戲線上地址:
https://codeincomplete.com/games/tetris/
react-tetris
除了上述俄羅斯方塊遊戲外,還有一款不錯的,我也是非常喜歡,這個專案是透過 React 實現的,遊戲框架使用的是 React + Redux,其中再加入了 Immutable,用它的例項來做來 Redux 的 state,跟上述實現的方式還是有所不同。
這款遊戲不僅指螢幕的自適應,而是在 PC 使用鍵盤、在手機使用手指的響應式操作,都很方便。
GitHub 地址:https://github.com/chvin/react-tetris
遊戲線上地址:https://chvin.github.io/react-tetris/
sshtronSSHTron 是一款透過 SSH 執行的多人 Lightcycle 遊戲,只需執行如下命令即可開始遊戲:
# ssh sshtron.zachlatta.com
功能介紹
W A S D 或 vim 鍵繫結移動(不要使用箭頭鍵);退出或按 Ctrl + C 退出;GitHub 地址:https://github.com/zachlatta/sshtron
battle-city基於 React 的經典坦克大戰,這個 GitHub 倉庫的版本是經典坦克大戰的復刻版本,基於原版素材,使用 React 將各類素材封裝為對應的元件。素材使用 SVG 進行渲染以展現遊戲的畫素風,可以先調整瀏覽器縮放再進行遊戲,1080P 螢幕下使用 200% 縮放為最佳。
此遊戲使用網頁前端技術進行開發,主要透過 React 進行頁面展現,使用 Immutable.js 作為資料結構工具庫,使用 redux 管理遊戲狀態,以及使用 redux-saga/little-saga 處理複雜的遊戲邏輯。
GitHub 地址:https://github.com/shinima/battle-city
遊戲線上地址:http://shinima.pw/battle-city/
pacmanPacman 是基於 HTML5 的吃豆人遊戲。該專案在 GitHub 上的核心程式碼就兩個檔案,程式碼有註釋、整潔。對於新手來說是個很好的實踐專案。
GitHub 地址:https://github.com/mumuy/pacman
遊戲線上地址:http://passer-by.com/pacman/
ratelRatel 這個專案是基於 Netty 實現的一款命令列鬥地主遊戲。
Ratel 分客戶端和服務端,你可以讓小夥伴們的客戶端都連線你的伺服器進行遊戲,也可以直接連線作者的公網伺服器進行遊戲。
詳情可參考:《摸魚神器:在 Linux 命令列下玩鬥地主!》這篇文章介紹瞭如何安裝 Ratel?以及一些 Ratel 的玩法。
GitHub 地址:https://github.com/ainilili/ratel
lilalila 是一款基於 Scala 語言,完全免費、開源、沒有廣告、支援多語言的線上國際象棋遊戲。
GitHub 地址:https://github.com/ornicar/lila
遊戲線上地址:https://lichess.org/
star-battlestar-battle 是一個使用 JavaScript ES6、Canvas 開發的飛船射擊類遊戲。
功能介紹
使用 W、A、S、D 鍵控制飛船,按下 Space 發射;燃料初始值為 15,每秒遞減 1 點,當燃料值為 0 時,遊戲結束;觸碰掉下的燃料瓶可增加 15 點,最大值為 30 點;擊中敵方飛船增加 5 分。行星需擊中兩次,增加 10 分。擊中友方減 10 分;撞擊敵方損失 15 點燃料,撞擊友方扣除 10 分;遊戲允許負分;按下 P 暫停遊戲,按下 M 靜音;GitHub 地址:https://github.com/gd4Ark/star-battle
遊戲線上地址:https://4ark.me/star-battle/
PythonPlantsVsZombiesPythonPlantsVsZombies 使用 Python 語言編寫的植物大戰殭屍。
功能介紹
PlantsVsZombies 所支援的植物型別:向日葵、豌豆射手、寒冰射手、堅果、櫻桃炸彈等;PlantsVsZombies 所支援的殭屍型別:普通殭屍、鞭打殭屍,錐頭殭屍,水桶頭殭屍,報紙殭屍等;該專案可使用 json 檔案來儲存關卡資料資訊(例如殭屍的位置和時間,背景資訊);支援在關卡開始前選擇植物卡;支援白天/夜間模式,移動卡選擇水平和 Wallnut 保齡球水平;執行 main.py 檔案即可運行遊戲:
# python main.pyimport pygame as pgfrom source.main import mainif __name__=='__main__': main() pg.quit()
GitHub 地址:
https://github.com/marblexu/PythonPlantsVsZombies
HueJumper2k這個專案是用 JS 實現 2KB 大小的 3D 賽車遊戲。
控制項
滑鼠 = 轉向點選 = 剎車雙擊 = 跳轉R = 重新啟動1 = 螢幕圖GitHub 地址:
https://github.com/KilledByAPixel/HueJumper2k
遊戲線上地址:
https://killedbyapixel.itch.io/hue-jumper
free-python-games免費的入門級 Python 遊戲集合庫,都是一些簡單的小遊戲:貪吃蛇、迷宮、Pong、猜字等,執行方便、程式碼簡單易懂。以遊戲的方式開啟你的 Python 學習之旅,玩完再學原始碼,真是其樂無窮。
GitHub 地址:https://github.com/grantjenks/free-python-games
css-sweeper一個只用 HTML 和 CSS 實現的掃雷遊戲。
GitHub 地址:https://github.com/propjockey/css-sweeper
遊戲線上地址:https://propjockey.github.io/css-sweeper/
emoji-minesweeperEmoji-minesweeper 是一款表情符號的掃雷遊戲。
功能介紹
左鍵單擊可開啟一個地點;右鍵單擊可將一個點標記為炸彈;雙擊以開啟目標附近的所有 8 個點(使用右鍵單擊已標記為炸彈的點除外)GitHub 地址:
https://github.com/muan/emoji-minesweeper
遊戲線上地址:
http://muan.github.io/emoji-minesweeper/
MazeBattles.com使用 Node.js 和 Socket.io 實現的線上迷宮遊戲,透過 [a][w][s][d] 按鍵移動位置,支援多人和單人兩種模式。
GitHub 地址:
https://github.com/HenryDavidZhu/MazeBattles.com
遊戲線上地址:
http://www.mazebattles.com/
flexboxfroggy一個幫助學習 CSS flexbox 知識的線上遊戲。
遊戲一共 24 關,通俗易懂地解釋了 flex 佈局,適合初學者,支援中文,可以在 settings 中選擇語言。
GitHub 地址:
https://github.com/thomaspark/flexboxfroggy
遊戲線上地址:
https://flexboxfroggy.com/
gorchedGo 語言寫的終端遊戲 Scorched Earth。
控制項
← → 改變大炮角度SPACE 開始載入(第一擊)並射擊(第二擊)Ctrl+C 退出遊戲Ctrl+R 重新開始當前回合Ctrl+N 開始下一輪S 顯示分數A 顯示玩家的屬性H 顯示幫助GitHub 地址:https://github.com/zladovan/gorched
遊戲線上地址:https://repl.it/@zladovan/gorched
Mindustry一款 Java 編寫的免費沙盒塔防遊戲。支援多平臺:Windows、Linux、macOS、Android
GitHub 地址:https://github.com/Anuken/Mindustry
AIDungeonAIDungeon 是一個基於機器學習的地下城文字遊戲。
GitHub 地址:
https://github.com/Latitude-Archives/AIDungeon
遊戲線上地址:
https://play.aidungeon.io/main/landing
OpenEmuOpenEmu 是一個可以玩各種復古遊戲的遊戲機,支援任天堂、索尼 PSP、世嘉 32X 等 30 多種遊戲引擎,以及支援外接遊戲手柄、投屏等操作;
GitHub 地址:https://github.com/OpenEmu/OpenEmu
gameboy.livegameboy.live 是一個具有終端 “雲遊戲” 支援的基本 Gameboy 模擬器,可透過 Socket 遠端玩畫素遊戲。
功能介紹
CPU指令模擬計時器和中斷支援僅ROM,MBC1,MBC2,MBC3磁帶聲音模擬圖形模擬雲遊戲ROM偵錯程式遊戲儲存和恢復卡帶級別GitHub 地址:https://github.com/HFO4/gameboy.live
cxk-ball這是一款用 Javascript 實現的 CXK 打籃球遊戲。
該遊戲有多種模式可選擇:
簡單普通困難極限非人類GitHub 地址:https://github.com/kasuganosoras/cxk-ball
遊戲線上地址:https://cxk.ssrr.one/
最後以上就是今天所要分享的全部內容了。