c语言代码如何实现贪吃蛇动画

c语言代码实现贪吃蛇动画的方法:首先确定基本思路,蛇每吃一个食物蛇身子就增加一格;然后用UP,DOWN,LEFT,RIGHT控制蛇头的运动,而蛇身子跟着蛇头走;最后每后一格蛇身子下一步走到上一格蛇身子的位置。

c语言代码如何实现贪吃蛇动画

基本思路: 

蛇每吃一个食物蛇身子就增加一格,用UP, DOWN, LEFT, RIGHT控制蛇头的运动,而蛇身子跟着蛇头走,每后一格蛇身子下一步走到上一格蛇身子的位置,以此类推。

#include #include #include #define BEG_X 2#define BEG_Y 1#define WID 20#define HEI 20HANDLE hout;typedef enum {UP, DOWN, LEFT, RIGHT} DIR;typedef struct Snake_body{COORD pos;//蛇身的位置struct Snake_body *next;//下一个蛇身struct Snake_body *prev;//前一个蛇身}SNAKE, *PSNAKE;PSNAKE head = NULL;//蛇头PSNAKE tail = NULL;//蛇尾//画游戏边框的函数void DrawBorder(){int i, j;COORD pos = {BEG_X, BEG_Y};for(i = 0; i < HEI; ++i){SetConsoleCursorPosition(hout, pos);for(j = 0; j pos = pos;if(!head){head = tail = pnew;}else{pnew->next = head;//新创建蛇身的next指向原先的蛇头head->prev = pnew;//原先的蛇头的prev指向新创建的蛇身head = pnew;//把新创建的蛇身作为新的蛇头}SetConsoleCursorPosition(hout, head->pos);printf("◎");}//蛇身移动的函数void MoveBody(DIR dir){PSNAKE ptmp;COORD pos = head->pos;switch(dir){case UP:if(head->pos.Y > BEG_Y + 1)--pos.Y;elsereturn;break;case DOWN:if(head->pos.Y pos.X > BEG_X + 2)pos.X -= 2;elsereturn;break;case RIGHT:if(head->pos.X prev;if(tail)tail->next = NULL;SetConsoleCursorPosition(hout, ptmp->pos);printf("  ");free(ptmp);}int main(){int ctrl;DIR dir = RIGHT;//初始蛇的方向是向右的COORD pos = {BEG_X + 2, BEG_Y + HEI / 2};system("color 0E");system("mode con cols=90 lines=30");hout = GetStdHandle(STD_OUTPUT_HANDLE);printf("    ------------贪吃蛇的移动------------");DrawBorder();//自定义几个蛇的身体AddBody(pos);pos.X += 2;AddBody(pos);pos.X += 2;AddBody(pos);pos.X += 2;AddBody(pos);pos.X += 2;AddBody(pos);pos.X += 2;AddBody(pos);pos.X += 2;AddBody(pos);//控制蛇的移动while(ctrl = getch()){switch(ctrl){case 'w':if(dir == DOWN)continue;dir = UP;break;case 's':if(dir == UP)continue;dir = DOWN;break;case 'a':if(dir == RIGHT)continue;dir = LEFT;break;case 'd':if(dir == LEFT)continue;dir = RIGHT;break;case 'q':return 0;}MoveBody(dir);}return 0;}

以上就是c语言代码如何实现贪吃蛇动画的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1434352.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 09:53:27
下一篇 2025年12月12日 15:18:37

相关推荐

  • 在c语言中代表什么?

    “”在c语言中代表“字符串结束符”。“”的ASCII码为“0”,也就是空字符;字符串总是以“”作为串的结束符;因此当把一个字符串存入一个数组时,也把结束符“”存入数组,并以此作为该字符串是否结束的标志。 <img src="https://cdn.chuangxiangniao.co…

    2025年12月17日
    000
  • 在c语言中char型数据在内存中的存储形式是什么?

    在c语言中char型数据在内存中的存储形式是ASCII码。在C语言中,char型数据是将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。 在c语言中char型数据在内存中的存储形式是ASCII码。 在C语言中,char型数据是将一…

    2025年12月17日
    000
  • printf(” “)是什么意思?

    “printf(“n”)”的意思是:换行。“printf(“n”)”表示输出换行符,“n”是个转义字符,系统识别到转义字符时会自动换行;窗口是不会显示“n”的,会直接换到下一行。 printf(“n”)的意思是:换行。 prin…

    2025年12月17日
    000
  • c语言真假是1和0吗?

    c语言真假是“1”和“0”。C语言中“0”为假,“1”为真,逻辑与和整数乘法相同;c语言中的“1”就是整数,整数除法“1/2”结果也会是整数,数学中答案是“0.5”,但是整型的不能保存“0.5”;因此会直接变成“0”。 C语言规定1为真(TRUE),0为假(FALSE)。 C语言中0为假,1为真,逻…

    2025年12月17日
    000
  • 你知道C语言的标识符命名规则是什么吗(详解)

    学习C语言的第一步,首当其冲的就是标识符,大家知道标识符的命名规则吗?下面我们一起看看吧。 C语言的标识符一般应遵循如下的命名规则:  1 标识符必须以字母a~z、 A~Z或下划线开头,后面可跟任意个(可为0)字符,这些字符可以是字母、下划线和数字,其他字符不允许出现在标识符中。  2 标识符区分大…

    2025年12月17日
    000
  • C语言中的每条可执行语句都将转换成什么

    C语言中的每条可执行语句都将转换成二进制的机器指令。C语言中的非执行语句不会被编译,不会生成二进制的机器指令。C语言不仅可以发挥出高级编程语言的功能,还具有汇编语言的特点。 c语言中的每条可执行语句最终都将转换成二进制的机器指令。 (推荐学习:C语言教程) 需要注意的是:C语言中的非执行语句不会被编…

    2025年12月17日
    000
  • switch语句中case后面的值必须是什么?

    switch语句中case后面的值必须是常量。因为switch语句中,会根据case标签后面的常量值,生成跳转表,只经过少数次数的比较,就可以跳到对应标签下面;如果允许变量,switch对于一个数据也只能从头到尾地进行比较,这就失去了意义。 switch语句中case后面的值必须是常量。 因为C语言…

    2025年12月17日
    000
  • struct student在c语言中是什么意思?

    “struct student”在c语言中就是被命名为“student”的一个结构体类型名。struct是C语言结构体类型的标识符;结构体支持把一组变量整合起来形成一个大的变量。 “struct student”就是被命名为student的一个结构体类型名。 struct是C语言结构体类型的标识符。…

    2025年12月17日
    000
  • “ ”在c语言中是什么意思?

    “nn”在c语言中表示连续两次换行。“n”是换行符,通常在输出中用作格式控制;“n”就是一个转义字符,其意义是“回车换行”;转义字符以反斜线“”开头,后面跟一个或几个字符。 nn在c语言中表示连续两次换行。 n的意思是:回车换行。将当前位置移到下一行的开头。 1、n是换行符,通常在输出中用作格式控制…

    2025年12月17日
    000
  • c语言关系运算符号有哪些?

    c语言关系运算符号有“=、==、!=”。关系运算符都是双目运算符,其的作用是判明这两个表达式的大小关系;关系运算符的优先级低于算术运算符,高于赋值运算符;其运算结果只有0或1,当条件成立时结果为1,条件不成立结果为0。 c语言关系运算符号有、>=、==、!=。 关系运算符的作用就是判明这两个表…

    2025年12月17日
    000
  • 带你了解C语言中的Sleep函数(附代码)

    Sleep函数: 功 能: 执行挂起一段时间   用 法: unsigned sleep(unsigned seconds);   注意:   立即学习“C语言免费学习笔记(深入)”; 在VC中使用带上头文件#include ,在Linux下,gcc编译器中,使用的头文件因gcc版本的不同而不同#i…

    2025年12月17日
    000
  • 三分钟了解C语言中自定义的标识符及规则

    C语言中的标识符有:关键字、预定义标识符、用户标识符 1.关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 2.预定义标识符是C语言中系统预先定义的标识符,如系统类库名…

    2025年12月17日
    000
  • putchar函数在C语言中是什么意思

    putchar函数在C语言中表示字符串输出函数,putchar函数的功能是在终端(显示器)输出单个字符。函数语法格式:【int putchar(int ch)】,其中,ch表示要输出的字符内容。 putchar函数是c语言中的字符输出函数,其功能是在终端(显示器)输出单个字符。 (推荐教程:C语言教…

    2025年12月17日
    000
  • 在一个C语言程序中,main函数可以在任何地方出现么

    在一个c语言程序中,main函数可以在任何地方出现。一个完整的C语言程序有且仅有一个主函数(main()函数)。程序总是从main()函数的第一条语句开始执行,到main()函数的最后一条语句结束。 在一个c语言程序中,main函数可以在任何地方出现。 (推荐学习:C语言教程) 解析: 一个完整的C…

    2025年12月17日
    000
  • c语言中的标识符只能由三种字符组成,它们是什么?

    c语言中的标识符只能由三种字符组成,它们是下划线、字母、数字。C语言的标识符命名规则:1、标识符必须以字母a~z、A~Z或下划线开头,后面可跟任意个(可为0)字符;2、标识符区分大小写字母;3、标识符不能是关键字。 c语言中的标识符只能由三种字符组成,它们是下划线、字母、数字。 C语言的标识符一般应…

    2025年12月17日
    000
  • c语言用什么函数来比较字符串大小?

    c语言用“strcmp()”函数来比较字符串大小。其语法为“int strcmp(const char *s1, const char *s2);”;参数“s1”、“s2”分别代表需要比较的两个字符串。 c语言用strcmp()函数来比较字符串大小。 头文件: #include strcmp() 用…

    2025年12月17日
    000
  • c语言中strstr函数的用法是什么?

    c语言中“strstr(str1,str2)”函数用于判断字符串“str2”是否是“str1”的子串;如果是,则该函数返回“str2”在“str1”中首次出现的地址;否则返回NULL。其语法为“* strstr(str1,str2)”。 strstr(str1,str2) 函数用于判断字符串str2…

    2025年12月17日
    000
  • C语言中do while语句的用法是什么?

    C语言中“do while”语句用于语句的循环判断;语法为:“do {代码语句} while(表达式);”。它与while循环的不同在于:“do while”先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。 do-while语句的一般形式为: do{ 代码语句…

    2025年12月17日
    000
  • c语言有且唯一的函数是什么?

    在c语言中有且唯一的函数是:“main”函数。“main”函数,又称主函数,是程序执行的起点;如果有其他函数,则会完成对其他函数的调用后再返回到主函数,最后由“main”函数结束整个程序。 c语言有且唯一的函数是:main函数 main函数,又称主函数,是程序执行的起点 程序执行总是从main函数开…

    2025年12月17日
    000
  • c语言合法标识符判断规则是什么?

    规则是:1、标识符的第一个字符必须是字母(a~z或A~Z)或下划线(_);2、后面跟的字符是由任意字母、下划线(_)、数字组成;3、标识符中的大小写字母是有区别的,代表不同含义;4、标识符不能是关键字。 c语言合法标识符判断规则如下: (1)第一个字符必须是字母(不分大小写)或下划线(_); (2)…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信