C语言中的飞机游戏

#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])

{

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)

{

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 yan_xu");

if(getch()==27)

setting();

}

以上是一篇C语言制作的小游戏飞机游戏的代码

简单的来说是由5个分函数组成的一个主函数然后通过这5个分函数来控制整个游戏的运行

下面是这个5个分函数分别简单概要:

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

    此函数是整个函数游戏的中心轴是函数的主心骨 定义

所有的函数型号全部都是有输出函数来定义的例如敌机的模型 我机的模型 子弹的模型之类的

还有边界的显示

2.void movebul(int [][N]);//子弹移动函数

这个函数是控制子弹移动的 他的原理相当的简单 就是从下往上的一个for语句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]变成由print定义的0 及空格 而之后的位置则为a[i+1][j]坐标轴向上移动一位变成2及“.” 还有就是当位置与敌机位置纵坐标相差为1时敌机变为空格 score+10

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

同理与2相同唯一的区别为 death

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

设置函数由菜单函数的字符27 ESC 控制 按下ESC则进入

case“”控制界面大小 break; 直接进入下一选项

default 则是输入与case“”无关选项后出现printf(“显示错误”)

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

最基本的见面由printf()getche 和if语句控制 简单易懂

时间: 2024-11-03 15:16:00

C语言中的飞机游戏的相关文章

C语言应用-飞机游戏

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

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

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

c语言:简单飞机射击小游戏

c语言:简单飞机射击小游戏 使用c语言编写一个打飞机小游戏,使用键盘按键来进行游戏,操作方法是"a""d""w"或者"←""↑""→"来控制攻击.左.右,击中敌机可获得积分,被敌机撞中死亡一次,每次游戏有3次机会,机会用光则游戏结束,之后可选择是否重新开始游戏. 改进:增加了颜色函数,使得游戏看起来更加的舒适:增加了终止函数,使游戏在死亡三次后自动结束游戏,并且可以选择是否重新开始游戏:

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

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

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

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

飞机游戏程序

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

飞机游戏课

#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);//菜单函

pygame开发PC端微信打飞机游戏

pygame开发PC端微信打飞机游戏 一.项目简介 1. 介绍 本项目类似曾经火爆的微信打飞机游戏.游戏将使用Python语言开发,主要用到pygame的API.游戏最终将会以python源文件game.py形式完成,只需要运行python game.py就可以进入游戏. 游戏最终效果截图如下: 2. 知识点 本实验中将介绍在Linux桌面环境下使用Python及pygame快速开发小游戏的方式.可以通过这个游戏入门pygame游戏开发. 3. 参考文档 代码参考 Kill-Console写的P