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

#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();

}

c语言 飞机,C语言写的飞机源码相关推荐

  1. JAVA毕业设计飞机航班信息查询系统计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计飞机航班信息查询系统计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计飞机航班信息查询系统计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构:B/S架构 ...

  2. 编程语言用 Java 开发一个打飞机小游戏(附完整源码)

    编程语言用 Java 开发一个打飞机小游戏(附完整源码) 上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习.java确实不适合写桌面应用,这里只是通过 ...

  3. mysql 线程池源码模块_易语言Mysql线程池2.0模块源码

    易语言Mysql线程池2.0模块源码 易语言Mysql线程池2.0模块源码 系统结构:GetThis,初始化,关闭类线程,线程_测试,其他_附加文本,连接池初始化,取mysql句柄,释放mysql句柄 ...

  4. C语言实现哈希表(附完整源码)

    C语言实现哈希表 C语言实现哈希表附完整源码 C语言实现哈希表附完整源码 #include<stdio.h> #include<stdlib.h> #define SUCCES ...

  5. WoShop跨境电商USDT支付语言插件全开源无加密商城源码

    WoShop跨境电商USDT支付语言插件全开源无加密商城源码 基于现场直播+购物模式,用户可以"边看边买"现场直播商城平台,全终端支持,统一管理后台,传播更强,管理更方便,支持私有 ...

  6. 通过语言包,让云豹短视频源码实现国际化运营

    本文以ios版本的云豹短视频源码为例,讲述如何通过加入语言包,让云豹短视频源码实现国际化运营. 一.配置 在Xcode中依次选中 projext – Localizations – 自己需要的语言[e ...

  7. 易语言从html中获取验证码,易语言过腾讯滑块验证码模块源码和调用例程

    易语言过腾讯滑块验证码模块源码和调用例程.版本 2 .支持库 BmpOperate .支持库 spec .程序集 程序集1 .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码 ...

  8. JAVA多语言多商户跨境电商源码

    多语言无货源跨境电商源码是一个功能强大的电子商务平台,该平台具有许多先进的功能和特点,可以帮助用户轻松地开展跨境电商业务. 一.主要功能介绍 多语言支持:该平台支持多语言,包括英语.中文.法语.西班牙 ...

  9. C语言小游戏大全,C语言贪吃蛇小游戏(附源码)

    一.C语言小游戏大全,C语言贪吃蛇小游戏(附源码) 贪吃蛇小游戏源码和更多C语言课设项目小游戏源码免 费 下 载 链 接 如下: c语言项目课设小游戏源码资料压缩包.zip-C文档类资源-CSDN下载 ...

  10. Opencv多语言自然场景文本识别系统(源码&教程)

    1. 研究背景 人类在自然场景中可以快速定位并识别看到的文字信息,但是想要计算机做到和人类一样是比较困难的.开发人员一直想要让机器也能识别图像中的文字信息.当然,对于自然场景来说,图像中的信息复杂甚至 ...

最新文章

  1. Linux实战教学笔记32:企业级Memcached服务应用实践
  2. char[],char *,string之间转换
  3. (1)kendo UI使用基础介绍与问题整理——简单说明
  4. 讲师征集| .NET Conf China 2021正式启动!
  5. [Leetcode][第546题][JAVA][移除盒子][递归][动态规划]
  6. 聊一下CPU占用高的解决方案
  7. oracle将字符串转化为blob,oracle String类型转换成blob类型插入
  8. Interface的精髓——《Thinking in Java》随笔025
  9. 自定义服务器控件的元数据属性(MSDN)
  10. java web教程下载_Java Web云应用开发项目式教程 中文pdf扫描版[208MB]
  11. 2022-08-22 步进电机驱动程序
  12. 【微信小程序】微信小程序接口数据加密、解密算法
  13. 如何提高自身数学分析水平
  14. 计算字符串出现的次数
  15. 显著性检测的四种经典方法
  16. html5 自动点击按钮,自动击键神器!一键实现自动点击功能!关键模拟应用
  17. 大师系列彼•奇层查股
  18. qq飞车前瞻版服务器维护,QQ飞车手游前瞻版
  19. 洛谷P1004方格取数
  20. Python常用库大全(转)

热门文章

  1. visu studio编程中L、TEXT、_TEXT、_T 用法说明
  2. ibm bpm开发 手册_使用定制的IBM BPM数据处理程序简化管理复杂输入数据的方式
  3. python 企业发放的奖金根据利润提成
  4. 记一次amd平台win10/win11随机死机蓝屏重启的问题
  5. 埃拉托斯特尼筛法算法复杂度(n*lnlnn)的证明([欧拉数学]素数倒数之和)
  6. dw中css规则定义中文,Dreamweaver编辑CSS规则
  7. catia画变截面弯管
  8. go语言 golang中 关于json数据的处理 动态key 动态字段
  9. c语言编程题狗熊掰棒子,狗熊掰棒子:掰一棒扔一棒
  10. Qt/C++编写自定义控件48-面板窗体控件