没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
1. 相关变量,
1. 创建链表 ,贪吃蛇的身体如何保存是游戏的核心,所以我们需要用到链表来保存蛇的身体,这样就可以随时知
道蛇身数据。
1. 食物坐标,记录食物出现的坐标。
1. 绘制初始界面和游戏地图,如图所示。
int JudgeSum = 0; //判断是否加快
int Pause = 200000000; //暂停速度(移动速度)
int * PJ = &JudgeDirection; //用指针传值判断移动方向
nakebody *end = NULL; //尾节点123
typedef struct Snakebody
{
int x, y; //蛇身的坐标
struct Snakebody *next;//保存下一个蛇身的地址
}Snakebody; //通过typedef将 Snakebody 替代 struct Snakebody1234
typedef struct Snakexy
{
int x;
int y;
}Snakexy; //记录食物坐标1234
#include<Windows.h>
#define HEIGHT 20 //设置地图高度
#define WIDTH 40 //设置地图宽度
#define PRINTF printf("■");
#define LINE printf("\n");
SetConsoleTextAttribute()函数是一个API设置字体颜色和背景色的函数。参数表中使用两个属性(属性之间用,隔
开),不同于system(),SetConsoleTextAttribute()可以改变界面多种颜色,而system()只能修改为一种!。 \4. 初
始化蛇身,刚开始蛇不应该只要一个头,所以我们必须创建几个身体。
#define EMPTY printf(" "); //因为这三个语句经常用,所以我就定义成了宏
void Front(); //绘制初始界面
void DeawMap(); //绘制地图
void Front()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |
FOREGROUND_RED);//设置红色
MoveCursor(18, 11);
printf(" 贪 吃 蛇 ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |
FOREGROUND_GREEN);//设置绿色
MoveCursor(18, 12);
printf("作者:花狗");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |
FOREGROUND_BLUE);//设置蓝色
MoveCursor(18, 13);
printf("QQ:2506897252");
MoveCursor(18, 14);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |
FOREGROUND_RED | FOREGROUND_BLUE);//设置红色和蓝色相加
MoveCursor(18, 15);
printf("请等待......");
for (int i = 0; i <= 3000000000; i++){}
system("cls");//清屏处理
}
void DeawMap()
{
for (int i = 0; i < WIDTH; i++)PRINTF LINE //打印上边框
for (int i = 1; i < HEIGHT - 1; i++) //打印左右边框
{
for (int j = 0; j < WIDTH; j++)
{
if (j == 0 || j == WIDTH - 1 || j == WIDTH - 10)
{
PRINTF
if (j == WIDTH - 1)LINE
}
else EMPTY
}
}
for (int i = 0; i < WIDTH; i++)PRINTF LINE //打印下边框
}12345678910111213141516171819202122232425262728293031323334353637383940414243
Snakebody *Phead = NULL; //存储着整个蛇身 不可更改
Snakebody *Phead_1 = NULL; //指向蛇身
Snakebody *Pbady = NULL; //创建节点
void ISnake(); //初始化蛇身
void ISnake()
5.产生食物,随机产生食物,如果和蛇身体重合则再次随机产生食物。
{
for (int i = 0; i < 5; i++)//初始化蛇身拥有五个长度
{
Pbady = (Snakebody*)malloc(sizeof(Snakebody));//创建节点
Pbady->x = 5 - i;
Pbady->y = 5;
if (Phead == NULL)
{
Phead = Pbady;
}
else
{
end->next = Pbady;
}
Pbady->next = NULL;
end = Pbady;
}
Phead_1 = Phead;
while (Phead_1->next != NULL)//打印蛇身
{
MoveCursor(Phead_1->x, Phead_1->y);
PRINTF
Phead_1 = Phead_1->next;
}
}1234567891011121314151617181920212223242526272829
#include<time.h>
int sum = 0; //计算得分
Snakexy * Food = NULL; //保存食物位置
void FoodRand(); //生成食物
void FoodRand()
{
srand((int)time(0));
int x = rand() % 27 + 2;//生成随机数
int y = rand() % 17 + 2;
Phead_1 = Phead;
for (int i = 0; i <= 200; i++)
{
if (Phead_1->x == x&&Phead_1->y == y)
{
x = rand() % 27 + 2;
y = rand() % 17 + 2;
}
else
{
Phead_1 = Phead_1->next;
}
if (Phead_1->next == NULL)
{
break;
}
剩余15页未读,继续阅读
资源评论
- 花了钱的。。。2021-07-03挺不错,可以下
爱吃生花生
- 粉丝: 4
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功