上次不是写了个贪吃蛇么,我觉得不够好看
学了学EasyX,决定给他美化一下并重构了函数
大致思路就是先画线格,然后决定地图的大小,这就是蛇的运动路线
然后拐弯什么的通过枚举方向处理蛇头就行,增长长度就是给蛇添加数量就行,我这里就是把蛇处理成结构体
其他思路也就是大致一样的,具体看代码咯,撞墙就是看它蛇头会不会越界就行了
看代码吧
#define _CRT_SECURE_NO_WARNINGS
//因为我用的是VS2019,这里取消一下安全性检查(这里代码都是c++了昂)
#include<graphics.h>
//EasyX的库
#include <conio.h>
//随机函数
#include<stdio.h>
#include<time.h>
enum dir{
left,right,up,down};
bool ai = false;
//描述一个点
struct point {
int x;
int y;
};
//蛇的结构体
struct snake {
struct point xy[100];
int num;
char position;
}bigsnake;
//展示分数用
int score = 0;
void drawline() {
//这里的函数是设置线的颜色,然后规定窗口大小,然后画线
setlinecolor(RGB(232, 232, 236));
rectangle(0, 0, 800, 600);
for (int x = 0; x <= 800; x += 10) {
for (int y = 10; y <= 600; y += 10) {
line(x, 0, x, 600);
line(0, y, 800, y);
}
}
}
//初始化蛇
void initSnake() {
bigsnake.num = 3;
bigsnake.position = right;
for (int i = bigsnake.num - 1; i >= 0; i--) {
bigsnake.xy[i].x = 10 *( (bigsnake.num - 1) - i);
bigsnake.xy[i].y = 20;
}
}
//画蛇
void drawSnake() {
for (int i = 0; i < bigsnake.num; i++)
{
//设置颜色
setlinecolor(BLACK);
//设置填充的颜色,随机颜色变成大彩蛇,非常银杏
setfillcolor(RGB