资源简介
代码片段和文件信息
#include
#include “snake.h“
#include
int main(int argc char const *argv[])
{
initgraph(MAP_WIDTH MAP_HEIGHT 0);
// ?????????????????????
setbkcolor(WHITE);
map();
// ????§????
Node *head = initSnake(4);
// ?????°?????????
printSnake(head);
while (1)
{
move(head);
printSnake(head);
// ??????????§????
delay_ms(500);
// ??¤???????????????é??????????? ????°???§?????????
if (kbhit())
{
direction = getch();
}
}
getch();
closegraph();
return 0;
}
// ?§???¨
void move(Node *head)
{
Node *p = head;
// ??????????????????????????????
int prex = p->coord.X;
int prey = p->coord.Y;
// ?????????????????????
int curx cury;
// ????????????????¤???????????????????
switch (direction)
{
case ‘w‘:
p->coord.Y--;
break;
case ‘s‘:
p->coord.Y++;
break;
case ‘a‘:
p->coord.X--;
break;
case ‘d‘:
p->coord.X++;
break;
}
while (p->next)
{
p = p->next;
// ????????????????????????
curx = p->coord.X;
cury = p->coord.Y;
// ?????????????????????????????????
p->coord.X = prex;
p->coord.Y = prey;
// ????????????????????????????????????????????????
prex = curx;
prey = cury;
}
// ???é?¤????????????????????????
// PIMAGE img = newimage();
// getimage(img “D:/EC15/CODE/Snake/Black.png“);
// putimage(curx * IMG_WIDTH cury * IMG_WIDTH img);
// delimage(img);
setcolor(WHITE);
setfillcolor(WHITE);
bar(curx * IMG_WIDTH cury * IMG_WIDTH
(curx + 1) * IMG_WIDTH (cury + 1) * IMG_WIDTH);
}
// ?????°?????????
void printSnake(Node *head)
{
PIMAGE img = newimage();
getimage(img “D:/EC15/CODE/Snake/snake.png“);
Node *p = head;
while (p)
{
printf(“x = %d y = %d\n“ p->coord.X p->coord.Y);
putimage(p->coord.X * IMG_WIDTH p->coord.Y * IMG_WIDTH img);
p = p->next;
}
delimage(img);
}
// ????§?????????????
Node *initSnake(int length)
{
// ????¤???????
Node *head = (Node *)malloc(sizeof(Node));
head->coord.X = 10;
head->coord.Y = 10;
head->next = NULL;
// ?°????é?? ??????é????¨??????????????????
Node *tail = head;
// ??????
for (int i = 1; i < length; i++)
{
// ????????°???????????????
Node *newNode = (Node *)malloc(sizeof(Node));
newNode->coord.X = 10 - i;
newNode->coord.Y = 10;
newNode->next = NULL;
// ?°?????????????é?????????????°??????
tail->next = newNode;
// ?°????é??????????°??????
tail = newNode;
}
return head;
}
// ?????°??°???
void map()
{
PIMAGE img = newimage();
getimage(img
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-08-24 08:58 Snake\
文件 86 2020-08-19 22:04 Snake\Black.png
文件 845 2020-08-19 22:04 Snake\food.png
文件 3331 2020-10-26 20:10 Snake\snake.c
文件 422 2020-08-24 10:25 Snake\snake.h
文件 1335 2020-08-19 22:04 Snake\snake.png
文件 306 2020-08-19 22:04 Snake\wall.png
- 上一篇:dll依赖文件检测工具
- 下一篇:基于ege图形的推箱子游戏
相关资源
- c语言dos窗口扫雷.c
- C++贪吃蛇控制台小游戏代码
- 彩色贪吃蛇.c
- C语言简易三国杀
- vtigercrm7.2中文语言包
- 2048小游戏c语言实现
- 推箱子 c语言代码
- 职工工资管理系统含流程图
- 现代编译原理-C语言描述
- Linux操作系统下C语言编程从零开始
- ZZULIOJ部分答案C语言免费.7z
- json-c 一个用于c语言的json解析库很强
- C语言写的TS流打包
- TOA/AOA定位算法C语言代码
- C语言刷屏神器1.1窗口版
- C语言彻底理解指针和地址,彻底!
- 连连看源代码C语言版
- C语言深度解剖 第二版 陈正冲
- c语言 malloc函数详解
- C语言面向对象编程
- C语言unistd.h
- C语言math.h文件使用说明及相应程序
- AVR单片机SPI通讯程序 (C语言源代码)
- 基于Linux下C语言开发的员工管理系统
- 数据结构C语言版教学笔记严蔚敏
- C语言解析教程第四版pdf及随书代码
- 车牌识别系统,VS2010实现,语言C++
- BP神经网络C语言工程当前最终版
- 平面刚架有限元程序C语言完整版
- 算法_C语言的实现完整版
评论
共有 条评论