C语言基础-贪吃蛇小游戏

贪吃蛇小游戏最近在学习C,所以做一个纯C打造的贪吃蛇终端小游戏,由于MAC上windows的API都无法调用,所以寻找到了Ncurses来实现控制终端.使用的技术CNcurses实现效果(在src文件夹下)游戏准备界面:游戏中界面: 游戏结束界面:小结在实现MAC上写终端贪吃蛇的时候遇到了很多问题,最重要的就是这个库的问题了,安装Ncurses一直报错,直到看到这篇文章才学会了在MAC上使用Ncurses.在此感谢这篇文章的作者.可以试试 QQ交流群:826352486 声明: 用纯C写贪吃蛇只是为了学习交流,本项目并没有多么惊艳,只是个人精心做的一个小项目,只是为了更多学C的新生能少走弯路,所以源代码大多打了注释,如有问题可以加交流群沟通.Ncurses初探详细代码见Github

Ncurses-学习历程-安装和配置

Ncurses初探-MAC什么是Ncurses?Ncurses作为一个C库,可以允许开发者编写独立于终端的基于文本的用户界面。它是一个虚拟终端中的“类GUI”应用软件工具箱.Ncurses可以干什么?使用Ncurese可以更加方便的操作终端界面,可以使用Ncurese制作终端用户界面,因此这里我打算使用它制作一款终端纯C语言贪吃蛇游戏Ncurses安装在MAC上windows库是无法使用的,所以这里才会有初探Ncurses一说,MAC上安装包肯定使用homebrew:brew install ncurses 安装完成之后直接在C程序头写上:#include <ncurses.h> 当编译C的时候使用下述的格式: gcc <program file> -lncurses 必须加入编译参数: -lncursesNcurses环境检测使用下述代码来检查你的环境是否安装成功,切记编译要加入-lncurses的编译参数,当输出下图的时候就代表环境配置正确#include <ncurses.h> int main() { initscr...

C语言基础-函数传参

函数传参在开发过程中,为了加强可读性,一般会使用函数封装代码.而在函数的使用中,会出现函数传参的情况.而这个时候就会出现一点问题了!函数传参的类型函数传参只有一种形式: type function(args) 但是可以根据函数参数的类型大致分为传值传址传值传值的意思是直接传递变量的值比如,使用交换整型c,d值为例,定义名为swap的函数来交换c,d的值:#include <stdio.h> void swap(int a,int b){ int tem; tem = a; a = b; b = tem; } int main(){ int c=1,d=2; swap(c,d); printf("c = %d, d= %d\n",c,d ); return 0; } 而这个时候执行的结果却是:c = 1, d= 2可见此时c,d的值并没有交换.分析下原理所谓的传值,相当于把main函数中的局部变量c,d的值传给了swap函数中的局部变量a,b. 所以此时的a,b是c,d的一个...

C语言基础-scanf类型错误导致无限循环

scanf类型错误导致无限循环int i; scanf("%d",&i); 当使用上述代码,而输入的非整型会导致程序陷入死循环至崩溃,这就导致无法正确提示用户输入正确字符,而是只能创新启动程序.解决方法char c; while((c = getchar()) != '\n' && c != EOF); 解决方法只需要把上述代码放到scanf后面即可.原理使用getchar将错误清除缓存,避免因之前的错误进入死循环.

GD库方法-详解-imagecolorallocatealpha()和imagecolorallocate()

imagecolorallocate()用于图片背景色处理参数说明:参数含义$image目标图片$redRGB红$greenRGB绿$blueRGB蓝imagecolorallocatealpha()用于图片背景色处理imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha ) : int 参数说明:参数含义$image目标图片$redRGB红$greenRGB绿$blueRGB蓝$alpha透明度(127全透明,0完全不透明)两者区别imagecolorallocate比imagecolorallocatealpha少了一个参数imagecolorallocate无法使背景透明-导致如果使圆角图成了方块图-有背景色