C语言实现贪吃蛇

 

网易云课程链接:C语言贪吃蛇教程

该教程是win32控制台的小游戏代码,只要学完C语言就可以用来作为项目练手,本篇博客主要会记录一些我不太熟悉或我认为有意义的内容

教程关于游戏规则有一处Bug:在撞墙的瞬间改变方向蛇不会死,此处我在自己的代码中做了修改

封面(封皮+音乐)

#pragma comment(lib,"winmm.lib")是什么意思

导入winmm.lib库,有了它才可以支持对windows 多媒体的编程

#pragma 是一条编译器指令,是给告诉编译器你要链接一些东西,然后在后面的comment里面指明是什么东西

 

使用播放文件的路径:

PlaySound("10+往事只能回味.wav", NULL, SND_FILENAME | SND_ASYNC);

使用播放文件资源ID:

#include"resource.h"   双引号导入工程头文件(非系统头文件)

PlaySound(MAKEINTRESOURCE(IDR_WAVE1), NULL, SND_RESOURCE | SND_ASYNC);

此处注意把常量写左侧可避免少打一个等号(赋值报错),另需注意不要写成 “ ”,双引号表示常量字符串会返回首地址。

 

显示背景、边框

shift+Tab 向前缩进,不按Tab向后缩进

随机蛇

nX对应x坐标对应列,nY对应y坐标对应行

参考:Visual Studio 2012 编译错误【error C4996: 'scanf': This function or variable may be unsafe. 】的解决方案

声明 后运行正常

蛇动起来

利用枚举处理蛇头

蛇随方向动

常用的键盘读取函数

getchar() //需要回车
_getch()  //同步检测:每一步都需要输入,与实际情况相悖
GetAsyncKeyState() //异步检测,直接侦測键盘的硬件中断。

  

计分

 

运行结果如图:

 具体代码已上传github:https://github.com/johnny161/C-Snake

原文地址:https://www.cnblogs.com/exciting/p/9271621.html