教你如何用C语言编写简单的游戏。
爱玩是人之常情,C语言是我们计算机专业的基础学科。总的来说,挺无聊的。那么,我们能不能编一些小游戏来提高它的趣味性呢?这样,学习编程就不会是一件辛苦枯燥的事情,反而会变得像电脑游戏一样好奇有趣。学习编程的第一个程序总是来自Hello,world,一般是印一个亲切的字——“Hell O,World!”我们来看看这个最简单的C程序:# Include/*包含输入输出函数的头文件*/int main () {printf ("hello,world!") );/*输出字符串“Hello,world!”在屏幕上。*/返回0;/*退出主函数返回0*/}下面我们找到几个值得改进的地方,1,程序运行结果一闪而过。2.我们每次执行这个程序,都能看到上次运行留下的字符。3.我们也希望屏幕能输出一张笑脸来欢迎我们。让我们改进这个程序!1,在return语句前加一句:getch();按任意键结束。2.在printf语句之前,使用clrscr函数清除屏幕。要使用这个函数和getch函数,你需要包含头文件conio.h.3,ASCII码的开始程序。ASCII码也有很多很搞笑的字符,比如ASCII码值为2的笑脸。我们可以使用printf("%c ",2)输出一个笑脸。现在让我们把你好,世界节目。2、初心,一张运动中的笑脸,你小时候喜欢看动画片吗?哈哈,估计你们都喜欢!我们来做一个小动画。在屏幕上显示一个移动的笑脸,当它到达屏幕边缘时会自动弹回。首先在程序中定义一个点在屏幕上移动的结构:struct move_point{ int x,y;/*点的位置,包括x坐标和y坐标*/ int xv,yv;/*该点在X轴和Y轴上的速度*/};运动的原理是擦除物体之前的轨迹,让物体按照它的速度移动一段距离,然后画出物体。让我们看看下面的代码:gotoxy(man.x,man . y);/*将光标移动到指定坐标*/printf(" ");/*输出一个空格,擦除前面的字符*/然后我们让物体按照它的速度移动:man . x+= man . XV;/*水平方向以X轴的速度运动*/man . y+= man . yv;/*以Y轴的速度垂直移动*/移动后需要判断物体是否出界。如果出界,会使物体反弹,即使其下一时刻的速度等于当前速度的倒数。最后打印出这张笑脸:gotoxy(man.x,man . y);printf("%c\b ",2);/*输出ASCII码值为2 */的“笑脸”字符怎么样?是不是很有意思?但是这张笑脸一直在自己动。我们能控制它的运动吗?但是这个节目没有目的,也没有条件去评判胜负。让我们用这张可以控制其运动的笑脸来做一个更有趣的游戏吧!4.我在探索迷宫的时候,经常在一些绘本杂志上看到一些迷宫游戏,很喜欢。我经常去找一些书找迷宫玩。好了,现在我们用C语言编一个迷宫游戏,重温童年的乐趣。首先我们定义一个二维数组地图,用来保存迷宫地图,其中map[x][y] == '# '表示。y)坐标上的点就是墙。DrawMap函数在屏幕上输出迷宫的地图和一些欢迎信息。在主函数中,我们定义了“恶棍”man的坐标和“目的地”des的坐标。在游戏循环中,我们加入一些判断胜负的句子:如果(man。x = = des。x &;& ampMan.y == des.y) /*如果人的坐标等于目的地的坐标*/{ gotoxy(35,3);printf("好!你赢了!”);/*输出胜利信息*/...}判断键的时候,如果玩家按了方向键,我们首先要判断前面是否有“墙”,如果有,就不能前进了。好了,我们在switch语句的每个分支都加入了判断语句,用于判断键,如下:if(map[…][…]= ' # ')break;/*如果前面是墙就不进行了*/哇!太好了,我们完成了一个完整的游戏。当然,你也可以通过修改二维数组地图来修改迷宫的地图,使其更具挑战性。但是,我们必须设计一个更好玩的游戏-5。聪明的搬运工一定玩过“搬运工”这个游戏!这是一个在电脑和电子词典上流行的益智游戏。让我们自己做一个搬运工吧!程序仍然使用数组映射来保存映射。如果数组元素是空格,则表示什么都没有,' b '表示盒子,' # '表示墙,' * '表示目的地,而' I '表示盒子在目的地。以后我们每次推盒子,不仅会改变屏幕的显示,还会改变地图对应元素的值。游戏的主循环仍然是接受钥匙。当收到一个方向键时,我们需要判断小人前面的方块。如果是墙,不能动;如果是箱子或者目的地上的箱子,就需要继续判断前面箱子的状态:如果前面的箱子是空地或者目的地,人就把箱子往前推,否则不能动。好了,我们已经在switch中加入了这些判断语句。程序的另一个重要功能是判断胜负。数组Des用于记录所有目的地的坐标。每一步操作后,程序会通过Des数组判断这些目的地上是否有盒子。太好了!我们可以玩游戏。而且是老少皆宜的好玩游戏!当然,我们可以通过修改地图数组来制作不同的游戏地图,也可以互相分享好的游戏地图。结论:在C++等高级语言出来之前,很多应用也是用C语言开发的。c语言在与硬件密切相关的编程中也起着重要的作用。其实我觉得学习编程可以通过一些小游戏和实际例子来学习。和学音乐的人一样,不必等到学完了所有的乐理才弹一首完整的曲子。而是在开学的时候有一些简单的曲子让你弹奏,会让你立刻有成就感,让你很快在别人面前炫耀。通过制作游戏来学习编程,把学习变成游戏,是学习计算机的好方法。嗯,做游戏就是这么简单。希望你也可以尝试用C或者其他你喜欢的语言做一些小游戏。