用Golang做了一个命令行贪吃蛇游戏

原创
2018/09/26 22:04
阅读数 1.9K

用Golang做了一个命令行贪吃蛇游戏

项目介绍

项目链接:https://gitee.com/lwow2025/snake-go

最近看了一本做几个小项目的书,突然就想用Golang做一个命令行贪吃蛇,也没啥特殊原因。

软件架构

  1. 在后台实现游戏逻辑。渲染层单独实现。
  2. game包中实现逻辑,draw-by-gocui中实现渲染,fk-snake为构建这两个模块的地方。
  3. game中一次输出整个场景的信息,因此外边是每次都clear后重新绘制。还有种做法则是给出变化序列,渲染层只改动变化(这种做法没有实现)。

image

上图是当前的程序结构图,橙色为模块部分,模块之间通过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/snake-go
  2. cd ~/go/src/gitee.com/lwow2025/snake-go
  3. go run main.go
展开阅读全文
打赏
0
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
0
分享
返回顶部
顶部