飞机游戏程序修改及感想

根据老师提供的飞机游戏程序,我仔细观察了游戏的运行方式及一些程序的细节,并做出了一些修改,程序如下:

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <time.h>

#define N 35

void print(int [][N]);//输出函数

void movebul(int [][N]);//子弹移动函数     (通过两个函数来控制子弹和敌机的移动)

void movepla(int [][N]);//敌机移动函数

void setting(void);//设置函数

void menu(void);//菜单函数

int scr[22][N]={0},pl=9,width=24,speed=3,density=30,score=0,death=0;//全局变量:界面、我机初始位、界面宽度、敌机速度、敌机密度、得分、死亡

main(void)

{

menu();

int i=0,j=0;

scr[21][pl]=1;

scr[0][5]=3;

while(1)

{

if(kbhit())

switch(getch())//控制左右移动和进入菜单

{

case ‘a‘:case ‘A‘:

if(pl>0)

scr[21][pl]=0,scr[21][--pl]=1;

break;

case ‘d‘:case ‘D‘:

if(pl<width-2)

scr[21][pl]=0,scr[21][++pl]=1;

break;

case ‘w‘:case ‘W‘:

scr[20][pl]=2;

break;

case 27 :

setting();

break;

}

if(++j%density==0)//控制生产敌机的速度

{

j=0;srand(time(NULL));

scr[0][rand()%width]=3;

}

if(++i%speed==0)//控制敌机移动速度,相对于子弹移动速度

movepla(scr);

movebul(scr);

print(scr);

if(i==30000)

i=0;//以免i 越界

}

}

void print(int a[][N])            (通过if语句来输出我机、敌机和子弹的符号)

{

system("cls");

int i,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("|");

if(i==0&&j==width-1)

printf("得分:%d",score);//右上角显示得分

if(i==1&&j==width-1)

printf("死亡:%d",death);

if(i==2&&j==width-1)

printf("设置:Esc");

if(i==3&&j==width-1)

printf("Copyright:张铮");

}

printf("\n");

}

}

void movebul(int a[][N])

{

int i,j;

for(i=0;i<22;i++)

for(j=0;j<width;j++)

{

if(i==0&&a[i][j]==2)

a[i][j]=0;

if(a[i][j]==2)

{

if(a[i-1][j]==3)

score+=10,printf("\7");

a[i][j]=0,a[i-1][j]=2;

}

}

}

void movepla(int a[][N])

{

int i,j;

for(i=21;i>=0;i--)//从最后一行往上是为了避免把敌机直接冲出数组。

for(j=0;j<width;j++)

{

if(i==21&&a[i][j]==3)

a[i][j]=0;//底行赋值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++;

}

void setting(void)              (通过switch语句来修改游戏设置)

{

int sw=0,i,j;

system("cls");

do{sw=0;printf("\n 游戏界面的大小:1.大2.小>> ");

switch(getche())

{

case ‘1‘:

width=34;

break;

case ‘2‘:

width=24;

break;

default:

printf("\n 错误,请重新选择...\n");

sw=1;

}

}

while(sw);

do

{

sw=0;

printf("\n 请选择敌机密度:1.大2.中3.小>> ");

switch(getche())

{

case ‘0‘:

density=10;

break;

case ‘1‘:

density=20;

break;

case ‘2‘:

density=30;

break;

case ‘3‘:

density=40;

break;

default:

printf("\n 错误,请重新选择...\n");

sw=1;

}

}while(sw);

do

{

sw=0;

printf("\n 敌机的飞行速度:1.快2.中3.慢>> ");

switch(getche())

{

case ‘1‘:

speed=2;

break;

case ‘2‘:

speed=3;

break;

case ‘3‘:

speed=4;

break;

default:

printf("\n 错误,请重新选择...\n");

sw=1;

}

}while(sw);

for(i=0;i<22;i++)

for(j=0;j<45;j++)

scr[i][j]=0;

scr[21][pl=9]=1;

printf("\n 按任意键保存...");

getch();

}

void menu(void)

{

printf("说明:按A D 控制我机左右飞行,W 发射子弹\n 设置:请按Esc\n 开始游戏:任意键\n                               by zhang_zheng");

if(getch()==27)

setting();

}

在这之前,我认为开发一个游戏程序是很困难的,可是经过我仔细观察老师发给我们的飞机游戏程序,我发现我们完全可以通过我们在上学期学过的C语言程序来开发出类似于这样简单的小游戏通过这样一个小程序,我懂得了怎样运用我们学过的知识来实现一个程序。

时间: 2024-12-25 11:05:33

飞机游戏程序修改及感想的相关文章

关于《飞机游戏软件:C语言应用初步感受》的感想

C语言课程设计的第一节课,老师提供了一个C语言的飞机游戏让我们感受. 首先安装c-free,然后是将代码贴进去运行, 界面虽然有点简单,但是真正的游戏,C语言还能做这么有意思的东西,真是没有想到. 这是第一次认为C语言是个神奇的语言,竟然可以编写出游戏来. 用到的语句也很简单. 比如:#include<stdio.h>等,都是以前学过的知识,真的是想要好好学习一下C语言,争取自己编写个小程序出来.

飞机游戏软件:C语言应用初步感受

C语言课程设以一节课,老师提供了一个C语言的飞机游戏让我们感受,上学期C语言课程,主要是各种语句的练习,这次是用以前的知识来感受一个实际的系统. 首先安装c-free,然后是将代码贴进去运行, 界面虽然有点简单,但是真正的游戏,C语言还能做这么有意思的东西,真是没有想到. 分析一下程序,感觉没有太复杂的,就是上学期学习的简单语句的组合,但是用的非常好.首先看看用到了几种语句: 1.首先是在屏幕上显示的语句printf,有点忘记了,百度一下, http://baike.baidu.com/link

13.1-全栈Java笔记:打飞机游戏实战项目|AWT技术|MyGameFrame

简介和项目目标 通过游戏项目学习整个Java基础知识体系,我们做了精心的设计,让每一章知识都能获得应用. 比如:多线程用来实现动画效果.容器实现对于多发炮弹的存取和处理.常用类等等的应用. 寓教于乐,让大家迅速入门,更希望通过喜闻乐见的小游戏,让大家爱上编程,爱上"程序员". 老鸟建议 很多朋友会疑惑:"游戏项目,又不能拿到企业面试中,为什么要讲?" 这是一种太过于功利的想法.就像,我们说:"今天吃个馒头,又不是长高,为什么要吃呢?" 游戏项目的

C语言应用-飞机游戏

在第一次的C语言程序设计课上我们第一次接触到将近200行程序的大型程序.即使现在已经将这个程序分析的十分清楚,但是每次看到这么多的程序还是令我感到头痛不已. 这个大型的程序是一个基础的飞机类型的游戏.虽然比我们现在手机上.电脑上玩的游戏要简陋不止几百倍而且由于它是利用C语言的循环语句进行输出所以在玩的时候总是在不停地闪烁使人有些头晕.但我还是觉得异常有趣. printf这个函数在这个飞机游戏中用来显示和输出整个游戏.发现printf这个函数不仅仅是用来简单的输出,还可以配合getch()这个函数

飞机游戏程序

C语言的基本语句功能的体会和"飞机游戏"的结构分析 通过今天对于C语言结构的学习,我对于C语言的基本功能语句所能时限的功能感到不可思议,短短的几段简单的程序就能完成看似如此复杂的事情. 就如今天学习的"飞机游戏",我们可以把如此复杂的程序分成main,print,movebul, movepla,setting和menu6大块. 1 首先是main 函数 /全局变量:界面.我机初始位.界面宽度.敌机速度.敌机密度.得分.死亡 main(void) { menu();

彭界博-飞机游戏

根据老师提供的飞机游戏,经过自己的理解,稍有改动.其源代码如下: #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> #define N 35 void print(int [][N]);//输出函数 void movebul(int [][N]);//子弹移动函数 void movepla(int [][N]);//敌机移动函数 void setting(v

蓝懿 iOS 打飞机游戏实现步骤

昨天打算回宿舍写,到宿舍忽然想起宿舍没网,今天一早补上,今天是练习日,十点上课,晚上八点自习结束,这两天讲的大部分都是训练营讲过的内容,所以我感觉分外轻松! 昨天由于前两天讲的对与新来的同学来说内容过多,所以上午只把前一天留下的作业讲了一下,下午只讲方法的调用与生成:之后大家一起看了一部电影作为放松! -(返回值类型)方法名称参数介绍:(参数类型)参数名称 and(参数类型)参数名称 return; 方法调用:[self 方法名称] 下边放上作业的内容与步骤: 打飞机游戏实现步骤: 1.搭建界面

飞机游戏在C语言程序的基本语句能完成功能的体会

论飞机游戏在C语言程序的基本语句能完成功能的体会 一.题目:  射击类飞机游戏 二.目的:  通过c语言编写一个射击类的打飞机小游戏,可以通过键盘来进行游戏,操作方法是"a""d""w"或者"←""↑""→"来控制,击中敌机可获得积分,被敌机撞中死亡一次,每次游戏有3次生还机会,游戏结束后可选择是否重新开始游戏. 三.改进:  这个游戏是我对一个小游戏进行的改造升级版,添加了颜色函数.终

使用swift写sprite Kit的模仿微信打飞机游戏

通过写这个东西来学习swift和sprite Kit,参考自https://github.com/croath/PlaneWarOSX,联系了原作者,他也表示感兴趣. 传送门:https://github.com/ljlin/PlaneWarSwift 使用swift写sprite Kit的模仿微信打飞机游戏,布布扣,bubuko.com