为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 数组游戏之一——只要你知道C语言简单的规则就可以自己编写游戏了

数组游戏之一——只要你知道C语言简单的规则就可以自己编写游戏了

2018-03-21 5页 doc 17KB 13阅读

用户头像

is_591137

暂无简介

举报
数组游戏之一——只要你知道C语言简单的规则就可以自己编写游戏了数组游戏之一——只要你知道C语言简单的规则就可以自己编写游戏了 对于许多像我这样非计算机专业的哥们儿来说,想要用C语言编写一款游戏基本上是不可能的,因为一般来说,C语言学到结构体就已经不错了,更不要说是图像编辑了。不过下列列举出来的程序代码是在doc环境下,完全不用图像编辑器而编写的小游戏,非常适合非计算机专业的同学观摩。这里就先列举一个游戏,之后还会陆续出来更多的小游戏,但是我也不太清楚有多少个,也不知道自己的能力能不能编写出来,不过我一定会尽力的。 先介绍一个超级简单的游戏,算是入门讲解——迷宫游戏。我会一句话一句话详...
数组游戏之一——只要你知道C语言简单的规则就可以自己编写游戏了
数组游戏之一——只要你知道C语言简单的规则就可以自己编写游戏了 对于许多像我这样非计算机专业的哥们儿来说,想要用C语言编写一款游戏基本上是不可能的,因为一般来说,C语言学到结构体就已经不错了,更不要说是图像编辑了。不过下列列举出来的程序代码是在doc环境下,完全不用图像编辑器而编写的小游戏,非常适合非计算机专业的同学观摩。这里就先列举一个游戏,之后还会陆续出来更多的小游戏,但是我也不太清楚有多少个,也不知道自己的能力能不能编写出来,不过我一定会尽力的。 先介绍一个超级简单的游戏,算是入门讲解——迷宫游戏。我会一句话一句话详细的解释,之后的游戏我就只写每句话的注释注释以及关键问解释,不可能太详细。 刚刚说过,这里不用图像编辑函数,那么想要出来图像该怎么办呢,利用二维数组~你把数组用char型的格式表示出来就可以画一系列的东西,当然,在输出数组的时候一定要记得换行。如果你想显示一个动态的画面,那简单,先用clrscr()函数清屏,然后打印下一张图片的数组,然后不断循环就可以了。 #include /*这分别是代表了键盘上的方向键这 四个键发送给电脑的是一个十六进制的代码, 为了简单起见用对应的字母代替*/ #define RIGHT 0x4d00 #define LEFT 0x4b00 #define DOWN 0x5000 #define UP 0x4800 /*这是迷宫的图形,定义的是char型的数值 0代表是空类型,2代表的是一个笑脸也就是墙, 而‘w’呢,——就是代表一个w。到时候一个棋子 就会从左上角的空白处出发,直到w处结束*/ char a[10][10]= { {0,2,2,2,2,2,2,2,2,2}, {0,0,2,2,2,2,2,2,2,2}, {2,0,2,2,2,0,0,0,2,2}, {2,0,0,0,0,0,2,0,2,2}, {2,2,2,2,2,2,2,0,2,2}, {2,2,2,2,2,2,0,0,2,2}, {2,0,0,0,2,2,0,2,2,2}, {2,0,2,0,0,2,0,0,0,2}, {2,0,'w',2,0,0,0,0,2,2}, {2,2,2,2,2,2,2,0,0,2} }; /*X,Y是棋子的坐标,k嘛, 就是读取的按键值储存的空间*/ int X,Y,k; /*change()函数,就是你按一个键 棋子走一步的表现形式*/ void change() { char i,j; /*这里怎么就开始检测k值了,因为k是在 主函数里已经赋值了,这里直接用就行了。*/ switch(k) { /*判断下一步的位置是否是边缘或者是——墙*/ case UP:if(a[Y-1][X] != 2 && Y != 0) /*如果可以移动,那么现有位置抹掉,就是赋0,下一个位置置1 然后再把坐标给“与时俱进”了*/ {a[Y][X]=0;a[Y-1][X]=1;Y=Y-1;}break; case DOWN:if(a[Y+1][X] != 2 && Y != 9) {a[Y][X]=0;a[Y+1][X]=1;Y=Y+1;}break; case LEFT :if(a[Y][X-1] != 2 && X != 0) {a[Y][X]=0;a[Y][ X-1]=1;X=X-1; }break; case RIGHT:if(a[Y][X+1] != 2 && X!=9) {a[Y][X]=0;a[Y][X+1]=1;X=X+1;}break; } clrscr();/*清屏,把原有的图像给全清掉*/ /*把走过之后的图像显示出来,就看见你的棋子动了 有个专业的术语叫换帧*/ for(i=0;i<10;i++) { for(j=0;j<10;j++) printf("%c",a[i][j]); printf("\n"); } } void main() { int i,j; char b[]="Eqpitcvwcvg";/*什么意思,——有点像联盟语。不告诉你,玩过游戏后你 自己就知道了*/ X=0; Y=0; a[0][0]=1;/*1在字符上是另一个笑脸,也就是棋子的初始位置*/ for(i=0;i<10;i++)/*先把墙还有棋子画好*/ { for(j=0;j<10;j++) printf("%c",a[i][j]); printf("\n"); } while(!(X == 2 && Y == 8))/*如果与w重合,那么游戏结束*/ { while(bioskey(1)==0);/*如果有按键按下bioskey(1)会等于0的,执行下边的语句,否则就会停在这里*/ k=bioskey(0);/*bioskey(0)就是读出来的按键值*/ change(); /*执行change函数*/ } for(i=0;i<11;i++) { b[i]=b[i]-2;/*这是一个超级简单的解码器*/ printf("%c",b[i]);/*如果你赢了,之后会显示出这句话*/ } scanf("%d",&i);/*这句话纯粹是蒙计算机的,让它把上边那个祝福语保持住,不然你就会看见屏幕闪一下,然后就不见了,想要看见我给你写得那句话,就必须再按Alt+F5*/ } 怎么样,不难吧,其实我所遇到的很多棋盘游戏都跟这编程思路是一样的,只不过穿上了华丽的外衣而已,还是那句话,“穿上马甲我还认识你~” 上边的地图是可以自己编写的,要不自己设计一个地图试试,还有一个问题,就是如果一个地图走完了想换下一个地图怎么办,自己弄吧,我没那个精力了。 突然间想起来了,化学专业的好像学的是vb,那哥们儿编游戏更好玩,什么扫雷了之类的,反正需要鼠标图像的都可以很方便的用vb编写,幸福啊。 如果喜欢,就转吧,澎湃这厢有礼了。
/
本文档为【数组游戏之一——只要你知道C语言简单的规则就可以自己编写游戏了】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索