没有合适的资源?快使用搜索试试~ 我知道了~
首页c语言贪吃蛇项目(附完整代码).pdf
资源详情
资源评论
资源推荐
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页未读,继续阅读
爱吃生花生
- 粉丝: 4
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1