贪吃蛇几乎每个人都玩过,而对于程序员来说,这也是每个程序员成长路上的必经之路,一个小小的里程碑,那么如何在go语言中利用面向对象编程的方法实现贪吃蛇呢,别急,我们先整理一下大致思路。
1、蛇结构体创建
长度
[]坐标
方向
2、食物结构体创建
坐标
3、蛇初始化
设置蛇长度 2节
设置蛇的坐标
蛇头方向
4、界面初始化
游戏界面
食物初始化
键盘输入
5、开始游戏
程序流程控制
程序更新周期 time.Sleep()
6、蛇头和墙的碰撞
蛇头和身体的碰撞
游戏结束
7、蛇头和食物碰撞
长度增长
分数增长
随机新食物(不能出现在墙 障碍物 蛇身体)
8、根据方向改变蛇的位置
更新蛇的坐标
身体坐标
蛇头坐标
9、绘制食物 蛇头和身体
10、计算分数
下面让我们跟着已经理好的思路进行编程吧
package main
import (
"fmt"
"os"
"math/rand"
"Clib"
"time"
)
//游戏界面大小
const WIDE int = 20
const HIGH int = 20
//食物坐标
var food Food
//分数
var score int = 0
//蛇的移动偏移值
var dx int = 0
var dy int = 0
//坐标父类
type Postion struct {
X int
Y int
}
//蛇子类
type Snake struct {
pos [WIDE * HIGH]Postion //坐标位置
size int //长度
dir byte //方向
}
//食物子类
type Food struct {
Postion
}
//绘制界面
func DrawUI(p Postion, ch by