c语言飞机源代码,C语言写的飞机源码

news/2024/11/24 6:05:48/

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include

#include

#include

#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

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

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

{

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

{

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 开始游戏:任意键");

if(getch()==27)setting();

}


http://www.ppmy.cn/news/132123.html

相关文章

FP6151

FP6151是一款输入可达36V的非同步降压型稳压器&#xff0c;内置75mΩ内阻的高位NMOS&#xff0c;具有出色的负载和线路调节能力&#xff0c;可在宽输入电压范围内实现5A的连续输出电流。 电流模式工作下提供了快速动态和简化回路的稳定性&#xff0c;工作开关频率可通过外部电阻…

adreno源码系列(三)dts配置与gpu列表

以Find x3 pro设备树文件为例进行分析&#xff1a;https://github.com/oppo-source/android_kernel_modules_and_devicetree_oppo_sm8350/blob/oppo/sm8350_s_12.1_find_x3_pro/vendor/qcom/proprietary/devicetree/qcom/sm8150-gpu.dtsi 1. dts配置文件 #define MHZ_TO_KBP…

adreno系列(二)dts配置与gpu列表

以Find x3 pro设备树文件为例分析&#xff1a;https://github.com/oppo-source/android_kernel_modules_and_devicetree_oppo_sm8350/blob/oppo/sm8350_s_12.1_find_x3_pro/vendor/qcom/proprietary/devicetree/qcom/sm8150-gpu.dtsi 1. sm8150-gpu.dtsi #define MHZ_TO_KBPS…

Linux学习——Pxe-Kickstart无人值守环境实现(网络实战)

一名菜鸟学习编程技术,记录所学知识并分享给大家,希望大家多多支持。 文章目录 环境需求分析环境实现原理什么是PXE?PXE工作过程:什么是Kickstart?关键配置命令环境准备:关闭防火墙查看防火墙状态防火墙设置开机不启动设置selinux为关闭状态查看设置情况清空防火墙规则设…

HaaS506硬件规格

HaaS 506是一款经过阿里云HaaS团队认证的高性能、多连接的物联网开发板。 HaaS 506是一款集成了M601 4G-CAT1模块的开发板&#xff0c;板载三组双色LED灯和一个自定义功能按键方便用户调试开发&#xff0c;并且提供丰富的接口用于外设扩展。选择了MicroPython作为运行引擎&…

win7硬盘安装fedora15

一 软件下载 下载GRUB4DOS http://downloads.sourceforge.net/project/grub4dos/GRUB4DOS/grub4dos%200.4.4/grub4dos-0.4.4.zip?rhttp%3A%2F%2Fsourceforge.net%2Fprojects%2Fgrub4dos%2F&ts1312383521&use_mirrorcdnetworks-kr-1 下载fedora15 live cd/DVD版本 …

linux grub命令行,引导工具GRUB详解

导读 引导程序是驻留在硬盘第一个扇区(MBR、主引导记录)的程序。GRUB是一个功能强大的多系统引导程序&#xff0c;专门处理Linux与其它操作系统共存的问题。下面就由我介绍一下grub.conf文件里的具体内容及其含义。 使用一下命令可以查看grub.conf文件内容&#xff1a; #vi /bo…

慧荣 SM3257ENLT - ISP 131112-AA量产

使用chipeasy查询芯片&#xff0c;结果如下 芯片制造商: 慧荣(SMI) 芯片型号 : SM3257ENLT 闪存颗粒 : 闪迪(SanDisk) 闪存类型: TLC 通道: 单通道 闪存识别码: 45DE9493 U盘得分 : 28 分 (参考分值 > 30 ,分值越大性能越好!) 固件版本 : IS…