布景
题主现在是php程序员, 学了一周的golang
, 深入的感受到了其特性的优雅及功用的强大, 为了增强熟练度, 决定来写个贪吃蛇来践行下.(底部有github项目链接)
需求构思
1. 确认元素 - 蛇 - 墙 - 食物 - 分数 - 基本的提示信息 2. 用户故事 - 蛇撞墙, 死亡 - 蛇吃蛋分数加1, 身体添加一格长度. - 点击键盘左键, 蛇向左走 - 点击键盘右键, 蛇向右走 - 点击键盘上键, 蛇向上走 - 点击键盘下键, 蛇向下走 - 点esc, 退出游戏
逻辑构思
元素
及用户故事
都确appetite定了, 就要开始写代码吗? 写项目不是这样的!要践行以终为始(很重要!, 否则可能会造成代码的荒草丛生
), 先去考虑一下咱们的代码结构是什么姿态的.
以手持游戏机
为例.
- 游戏机其实就是一个服务(Service), 然后
屏幕
和键盘
一致由游戏机调配.- 屏幕(providegithub中文官网网页r)
- 键盘操控(provider)
然后咱们细分一下屏幕和键程序员那么心爱盘操控的元素:
- 屏幕: 蛇,食物,屏幕宽及高,得分.
- 键盘操控: 用户移动指令,用户退出指令, 蛇死亡指令.
代码结构
//game control 游戏数据结构 type game struct { //操控 control *control //屏幕 screen *screen }
//control 键盘操控 type control struct { moveChannel chan int quitChannel chan int playGameStatusChannel chan bool gameOver bool direction int }
//screen 屏幕相关参数 type screen struct { snakes *snake foodPoint *scope width int height int score int }
//NewGameService 实例化游戏服务 func NewGameService() *gameService { return &gameService{screenApp: newScreenApp(), monitorApp: newMonitorApp()} }
//newScreenApp 屏幕实例化 func newScreenApp() *screenApp { return &screenApp{Screen: initScreenHandle()} }
//newMonitorApp 实例化 func newMonitorApp() *monitorApp { return &monitorApp{Monitor: initMonitor()} }
小结
个人认为php是前端还是后端项意图代码的程序员工作一年后工资结构
写的还算明晰,所以不放过多
代码了, 仅仅把一个全局的结构图景放到这儿, 留给你去探索. 这phappreciatep钱银个小项意图代码逻辑肯定还不完善,你如果有什么主意或许吐槽, 能够鄙人github官网登陆入口方留言,每个我都会仔细阅读和回复.
最终放上项目链接( 感觉不错, 别忘star哦 ):
github.com/The程序员那么可爱Ogithub官网nlines/…
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)