用Golang做了一個命令行貪吃蛇遊戲

用Golang做了一個命令行貪吃蛇遊戲

1 人贊了文章

用Golang做了一個命令行貪吃蛇遊戲

項目介紹

項目鏈接:gitee.com/lwow2025/snak

最近看了一本做幾個小項目的書,突然就想用Golang做一個命令行貪吃蛇,也沒啥特殊原因。

軟體架構

  1. 在後台實現遊戲邏輯。渲染層單獨實現。
  2. game包中實現邏輯,draw-by-gocui中實現渲染,fk-snake為構建這兩個模塊的地方。
  3. game中一次輸出整個場景的信息,因此外邊是每次都clear後重新繪製。還有種做法則是給出變化序列,渲染層只改動變化(這種做法沒有實現)。

上圖是當前的程序結構圖,橙色為模塊部分,模塊之間通過interface解耦,藍色為組裝模塊的builder。

項目特色

  1. 遊戲邏輯層與UI層分開,這樣做有兩個優點:第一,支持多種UI實現,不止gocui,加上通信就可以用js在canvas中繪製,或其它任意能繪圖的前端。第二,分離邏輯後就支持CS架構,可擴展為多人線上遊戲,在game中已支持了多隻蛇,只需加入多玩家操作輸入即可。
  2. 由於使用gocui會直接在命令行中繪製UI,因此log就必須特殊設計一下,本質在於將log輸出到文件中,隨後新開個命令行tail該文件。可以在main.go中注釋掉prodLog(),並打開debugLog()即可。不過該操作還不支持windows,windows上只能用prodLog(),不輸出任何log。

安裝教程

  1. go get -v gitee.com/lwow2025/snak
  2. cd ~/go/src/gitee.com/lwow2025/snak
  3. go run main.go

推薦閱讀:

TAG:遊戲 | 命令行界面CLI | Go語言 |