数组游戏之一——只要你知道C语言简单的规则就可以自己编写游戏了数组游戏之一——只要你知道C语言简单的规则就可以自己编写游戏了
对于许多像我这样非计算机专业的哥们儿来说,想要用C语言编写一款游戏基本上是不可能的,因为一般来说,C语言学到结构体就已经不错了,更不要说是图像编辑了。不过下列列举出来的程序代码是在doc环境下,完全不用图像编辑器而编写的小游戏,非常适合非计算机专业的同学观摩。这里就先列举一个游戏,之后还会陆续出来更多的小游戏,但是我也不太清楚有多少个,也不知道自己的能力能不能编写出来,不过我一定会尽力的。
先介绍一个超级简单的游戏,算是入门讲解——迷宫游戏。我会一句话一句话详...
数组游戏之一——只要你知道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,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。