用Golang做了一個命令行貪吃蛇遊戲
10-11
用Golang做了一個命令行貪吃蛇遊戲
1 人贊了文章
用Golang做了一個命令行貪吃蛇遊戲
項目介紹
項目鏈接:https://gitee.com/lwow2025/snake-go
最近看了一本做幾個小項目的書,突然就想用Golang做一個命令行貪吃蛇,也沒啥特殊原因。
軟體架構
- 在後台實現遊戲邏輯。渲染層單獨實現。
- game包中實現邏輯,draw-by-gocui中實現渲染,fk-snake為構建這兩個模塊的地方。
- game中一次輸出整個場景的信息,因此外邊是每次都clear後重新繪製。還有種做法則是給出變化序列,渲染層只改動變化(這種做法沒有實現)。
上圖是當前的程序結構圖,橙色為模塊部分,模塊之間通過interface解耦,藍色為組裝模塊的builder。
項目特色
- 遊戲邏輯層與UI層分開,這樣做有兩個優點:第一,支持多種UI實現,不止gocui,加上通信就可以用js在canvas中繪製,或其它任意能繪圖的前端。第二,分離邏輯後就支持CS架構,可擴展為多人線上遊戲,在game中已支持了多隻蛇,只需加入多玩家操作輸入即可。
- 由於使用gocui會直接在命令行中繪製UI,因此log就必須特殊設計一下,本質在於將log輸出到文件中,隨後新開個命令行tail該文件。可以在main.go中注釋掉prodLog(),並打開debugLog()即可。不過該操作還不支持windows,windows上只能用prodLog(),不輸出任何log。
安裝教程
- go get -v http://gitee.com/lwow2025/snake-go
- cd ~/go/src/http://gitee.com/lwow2025/snake-go
- go run main.go
推薦閱讀: