C语言贪吃蛇(光标版)

代码链接在文章后面!
期末看见同平台的大佬们做的项目是贪吃蛇,飞机大战,俄罗斯方块,而我当时做的信息管理系统,很好奇C语言居然还可以有图形界面,假期将要结束了,自己才尝试写贪吃蛇(小懒惰)。书本上不会教图形界面之类的,不碰碰它感觉C语言自己白学了。
在CSDN上搜了一篇前辈的代码,是光标类的,不是system(“cls”);刷新类的。抽了5天晚上的时间先学习,然后花了将近6个小时(分两天)自己重写了一遍。
在前辈基础上新增了些功能,完善写细节
1.把链表与文件加入,来实现死亡时查看历史最高分的功能。
2.新增 + 与 - 来增加或减少蛇的 移动速度。
3.完善细节:蛇向左移动时不能直接向右移,同理上移不能下,右移不能左,下移不能上,原来前辈是直接判定死亡的。
在这里插入图片描述
在这里插入图片描述
希望有兴趣的、有精力的朋友们能帮我看下哪里还有不足,告诉我,也可帮我完善,欢迎指正。比如我发现暂停后,然后按方向键蛇动了之后,右下方那句话不会消失,但影响也不大。
难点与所学。
1.打印围墙,穿墙。C语言汉字打出来的图形 横向占据两个字节,所以要注意。
2.句柄,设置光标位置,设置控制台的大小颜色,都需要包括头函数#include<windows.h>,具体请看代码。
3.蛇移动,先把蛇尾用printf(" ");清了,然后尾巴的横纵坐标由尾巴前面那节坐标取代,然后循环如此知道蛇头被第二节坐标覆盖(蛇就少了一节),根据key值,然后蛇头坐标改变,接着从蛇尾打印到蛇头,蛇就拉长变为原来的节数了。
4.蛇增长,先蛇身总长度增长,然后新蛇头坐标=原来蛇头坐标,原来蛇头坐标=原来第二节的坐标,直到尾巴被它的前一节覆盖(蛇就少了一节),根据key值,然后蛇头坐标改变,接着从蛇尾打印到蛇头,蛇就拉长变为原来的节数了。
5.蛇不动,让key值不为方向键,使头坐标不发生改变,也不会有蛇尾向前覆盖的行为,直到key为方向键,才会又动。
上链接:
我的代码链接:
https://blog.csdn.net/Tjohn9/article/details/104487442
前辈代码链接(代码量比我的少):
https://blog.csdn.net/a10201516595/article/details/95186307
如果前辈的网页失联,那么我呈上他99%的原版代码(我填了少许):
https://blog.csdn.net/Tjohn9/article/details/104487493

大家学习光标贪吃蛇可能用得到的链接:
1.这是SetConsoleTextAttribute()函数的用法:
https://blog.csdn.net/Fdog_/article/details/103764196
2.光标函数:
https://blog.csdn.net/weixin_41019705/article/details/78844074
https://blog.csdn.net/Hanani_Jia/article/details/80012420
3.句柄HANDLE:
https://blog.csdn.net/maowei117/article/details/55254855

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值