c语言小游戏编程Word下载.docx
《c语言小游戏编程Word下载.docx》由会员分享,可在线阅读,更多相关《c语言小游戏编程Word下载.docx(11页珍藏版)》请在冰点文库上搜索。
![c语言小游戏编程Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/9a834dbf-d104-43d9-80f5-f008d3373d63/9a834dbf-d104-43d9-80f5-f008d3373d631.gif)
5.源程序:
#include<
stdio.h>
conio.h>
stdlib.h>
time.h>
#defineN35
#defineup72
#defineleft75
#defineright77
voidrun();
//游戏控制函数
voidyn();
//设置是否继续游戏函数
voidprint(int[][N]);
//输出函数
voidmovebul(int[][N]);
//子弹移动函数
voidmovepla(int[][N]);
//敌机移动函数
voidsetting(void);
//设置函数
voidmenu(void);
//菜单函数
intscr[22][N]={0},pl=9,width=24,speed=3,density=30,score=0,death=0;
//全局变量:
界面、我机初始位、界面宽度、敌机速度、敌机密度、得分、死亡
voidmain()
{menu();
run();
}
voidprint(inta[][N])//输出函数
{
system("
cls"
);
inti,j;
for(i=0;
i<
22;
i++)
{
a[i][width-1]=4;
for(j=0;
j<
width;
j++)
{
if(a[i][j]==0)printf("
"
if(a[i][j]==1)printf("
\5"
//输出我机的符号
if(a[i][j]==2)printf("
^"
//子弹
if(a[i][j]==3)printf("
\3"
//输出敌机符号
if(a[i][j]==4)printf("
\2"
if(i==1&
&
j==width-1)printf("
您成功杀敌:
%d架"
score);
//右上角显示得分
if(i==2&
j==width-1)
printf("
设置:
Esc"
if(i==4&
您已经死亡了:
%d次"
death);
//右上角显示死亡次数
if(i==9&
你还剩余%d条命!
"
3-death);
if(i==18&
printf("
制作人:
XXX"
if(i==19&
信息10-3班"
if(i==20&
学号:
20100302xxxx"
}
\n"
}
voidmovebul(inta[][N])
for(j=0;
{
if(i==0&
a[i][j]==2)
a[i][j]=0;
if(a[i][j]==2)
if(a[i-1][j]==3)//加分
{
score+=1;
\7"
}
a[i][j]=0,a[i-1][j]=2;
}
voidmovepla(inta[][N])
inti,j;
for(i=21;
i>
=0;
i--)//从最后一行往上是为了避免把敌机直接冲出数组。
if(i==21&
a[i][j]==3)
a[i][j]=0;
//消除敌机,在最低层
if(a[i][j]==3)a[i][j]=0,a[i+1][j]=3;
//敌机移动
if(a[20][pl]==3&
a[21][pl]==1)death++;
//死亡
voidyn()
system("
color2e"
\t\t\t\t*****GAMEOVER*****\n\a"
\t\t*****游***戏***结***束*****\n\n\n"
\t\t\t按y键继续游戏,n键退出游戏(y/n)?
\t\t\t"
switch(getch())//提示是否要继续游戏
case'
y'
:
Y'
death=0,score=0,run();
break;
n'
N'
default:
exit(0);
voidsetting(void)
intsw=0,i,j;
system("
do
sw=0;
printf("
\n游戏界面的大小:
1.大2.小>
>
switch(getche())
case'
1'
width=34;
2'
width=24;
;
default:
\n错误,请重新选择...\n"
sw=1;
}while(sw);
\n请选择敌机密度:
1.大2.中3.小>
0'
density=10;
density=20;
density=30;
3'
density=40;
\n敌机的飞行速度:
1.快2.中3.慢>
speed=2;
speed=3;
speed=4;
for(i=0;
for(j=0;
45;
scr[i][j]=0;
scr[21][pl=9]=1;
\n按任意键保存..."
getch();
voidrun()
//设置背景颜色
inti=0,j=0;
scr[21][pl]=1;
//我方飞机初始位置
scr[0][5]=3;
while(death<
3)//限制死亡次数
if(kbhit())
switch(getch())//控制左右移动
{
caseleft:
case'
a'
A'
if(pl>
0)
scr[21][pl]=0,scr[21][--pl]=1;
caseright:
d'
D'
if(pl<
width-2)
scr[21][pl]=0,scr[21][++pl]=1;
caseup:
W'
w'
scr[20][pl]=2;
case27:
if(++j%density==0)//控制生产敌机的速度
j=0;
srand(time(NULL));
//产生随机数
scr[0][rand()%width]=3;
//生成随机敌方飞机
if(++i%speed==0)//控制敌机移动速度,相对于子弹移动速度
movepla(scr);
//飞机移动
movebul(scr);
//子弹移动
print(scr);
//绘制游戏画面
}
yn();
voidmenu(void)
{system("
说明:
按NM控制我机左右飞行,Z发射子弹\n设置:
请按Esc\n开始游戏:
任意键"
if(getch()==27)setting();
实验结果与分析:
6.实验反思:
通过本次试验,使我对c语言有了更深一层次的了解,对getche语句、for语句、while语句、printf语句、switch语句、颜色函数等等的了解及使用更加详细了一些,明白了这些语句的用法,明确了c语言的使用环境,功能。
C语言作为一个基础性编程语言是我们在以后编程中不可或缺的语言,使用率肯定会进一步增高。
掌握了c语言就相当于掌握了一门技术,同时c语言相对而言简单一些,更容易理解。
自己虽然对这个小游戏进行一部分的改造,但是我也感觉这只是其中的很很小的一部分,肯定会有更加强大的功能等待着我们去改善。
同时,我也发现了自己很多的不足,需要进一步加强这一方面的学习,明白了自己的在哪一方面的欠缺,希望可以在以后的学习中更加彻底的弥补自己的不足,改善这种情况,
也希望自己也可很容易的就可以轻松写出一些小游戏代码,我相信我也可以在以后的学习过程中逐步地掌握它,彻底的掌握它,使它成为自己手中的一把利剑……
[此文档可自行编辑修改,如有侵权请告知删除,感谢您的支持,我们会努力把内容做得更好]