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

#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. C语言课设-----工资管理系统(附全部源码)

    C语言课设-----工资管理系统(附全部源码) 本系统分三个部分: 1.出售金鱼 2.数字菱形 3.工资管理系统 (ps:另外添加了登录界面 id:qwq password:123 可自己在代码里再更 ...

  2. c语言 临时文件作用,c语言函数mktemp()产生唯一临时文件名实例源码介绍

    c语言函数mktemp()产生唯一临时文件名实例源码介绍.有关的函数:tmpfile引入的头文件:#include 定义函数mktemp():char * mktemp(char * template ...

  3. 价值4500的国际版多语言点赞抖音分享点赞任务平台源码(十二种语言)

    介绍: 平台会员分享给我的,他自己搭建成功了,测试可用!我就不测试了,需要的拿! 九种语言 :西班牙语,泰语.日语,印度尼西亚语言.越南语言.英文.繁体中文,简体中文,印度语 前台支持更换5种颜色风格 ...

  4. mysql db模块下载_易语言MySql数据库操作类V1.0模块源码

    易语言MySql数据库操作类V1.0模块源码 易语言MySql数据库操作类V1.0模块源码 系统结构:MySql数据库连接类_测试子程序,置连接选项,连接,关闭,是否已连接,取连接句柄,置连接句柄,执 ...

  5. c语言打印空心数字图形,(完整word版)C语言编写打印实心和空心菱形【源码】

    <(完整word版)C语言编写打印实心和空心菱形[源码]>由会员分享,可在线阅读,更多相关<(完整word版)C语言编写打印实心和空心菱形[源码](13页珍藏版)>请在人人文库 ...

  6. 易语言免登录获取QQ/昵称/头像/在线状态源码

    易语言免登陆获取q资料卡的源码. 例子: 取得登录q  获取状态:在线 昵称 x7st 获取本人描述等 没有调用第三方接口,纯QQpost稳定,需要的可以下载查看 下载地址:https://6yunp ...

  7. java计算机毕业设计飞机航班信息查询系统(附源码、数据库)

    java计算机毕业设计飞机航班信息查询系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclisp ...

  8. Linux下imx6dl开发板从镜像的烧写、内核源码编译到第一个驱动运行的详细步骤

    文章目录 前言 一.对开发板烧写镜像 1.镜像烧写 2.串口测试 二.搭建交叉编译环境 1.Ubuntu下搭建交叉编译环境 2.WSL下搭建交叉编译环境 三.编译Linux内核源码 1.Ubuntu下 ...

  9. android米聊手写和涂鸦源码,Android访米聊手写和涂鸦源码

    Android访米聊手写和涂鸦源码 \请下载源代码,只上传Android访米聊手写和涂鸦源码源程序列表内容,如果需要此程序,请点击-下载,下载需要资料源代码. Android访米聊手写和涂鸦源码.ra ...

  10. 前端进阶-手写Vue2.0源码(三)|技术点评

    前言 今天是个特别的日子 祝各位女神女神节快乐哈 封面我就放一张杀殿的帅照表达我的祝福 哈哈 此篇主要手写 Vue2.0 源码-初始渲染原理 上一篇咱们主要介绍了 Vue 模板编译原理 它是 Vue ...

最新文章

  1. group_concat
  2. pci规划的三个原则_NR PCI规划
  3. java-List集合的源码分析(数据结构方面,源码注释方面),迭代器快速失败机制
  4. Quartz 2 Scheduler示例
  5. usb长包数据结束判断_如何判断南桥好坏 判断南桥好坏方法介绍【详解】
  6. java getselecteditem_java – 将getSelectedItem()从JComboBox转换为int或任何其他东西
  7. Wcf Rest Service模板--方法输入输出流数据
  8. Java并发编程实战笔记—— 并发编程1
  9. 使用SVN+apache搭建一个版本控制服务器
  10. 设计原则 —— 针对接口编程而不针对实现编程
  11. linux文件描述符、软硬连接、输入输出重定向
  12. Android 获取sim卡序列号
  13. 电大有计算机教程吗,中央电大 计算机平面设计(上)
  14. Docker文档笔记
  15. 系统分析设计案例分析
  16. 镜头相关的基本参数总结
  17. [生存志] 第26节 历代大事件概览 明朝
  18. amh在linux下修改伪静态,伪静态规则大全 - AMH云主机面板 - AMH开源社区 - amh.sh
  19. 如何做好网站SEO优化,网站SEO关键词优化的5个技巧
  20. 毕业设计--智能智造协同管理平台

热门文章

  1. 深入解析Tensor索引中的Indexing Multi-dimensional arrays问题
  2. 理财投资 之 基金投资 - #1篇:基金基础知识扫盲
  3. iOS动画专题·UIView二维形变动画与CAAnimation核心动画
  4. Electron-Builder打包时报错could not find: “\XXX\0-messages.nsh“
  5. 简明Jieba中文分词教程(分词、关键词提取、词性标注、计算位置)
  6. 网易上线短视频创作平台“网易知识公路“
  7. 禁用Android底部虚拟按键
  8. 声纹识别demo_声纹识别 iOS SDK 文档
  9. r语言 新增一列数字类型_R语言实战(2)——创建数据集【学习分享】
  10. 如何使用谷歌浏览器Chrome把整个网页保存成图片