一个不到300行的C语言打飞机游戏
#include "stdio.h"
#include <windows.h>
#include <conio.h>
#include <time.h>
#define Esc 27 //退出
#define Up 72 //上,下,左,右
#define Down 80
#define Left 75
#define Right 77
#define Kong 32 //发射子弹int x=10; //飞机坐标
int y=18;
int d2=10;//敌机坐标
int d1=10;
int d=10;
int r=1;
int r1=1;
int r2=1;
int t=1; // 游戏结束
int f=0; // 计分数
int m=3; // 敌机数
int j=0; // 歼敌数
char p; // 接受按键
void kongzhi(int bx,int by);//声明函数
void huatu();
void gotoxy(int x,int y) //移动坐标
{COORD coord;coord.X=x;coord.Y=y;SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord );
}
void hidden()//隐藏光标
{HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);CONSOLE_CURSOR_INFO cci;GetConsoleCursorInfo(hOut,&cci);cci.bVisible=0;//赋1为显示,赋0为隐藏SetConsoleCursorInfo(hOut,&cci);
}//说明
void shuoming()
{printf("\t\t\t\n\n\n\n");printf("\t\t\t方向控制\n\n""\t\t\t上 ↑\n\n""\t\t\t下 ↓\n\n""\t\t\t左 ←\n\n""\t\t\t右 →\n\n""\t\t\t子弹 空格\n\n\n""\t\t\t退出请按 ESC\n");gotoxy(0,0);
}//判断我机死没死/游戏结束
void byebye()
{if((x==d&&y==r)||(x==d1&&y==r1)||(x==d2&&y==r2)){gotoxy(1,3);printf(" !!! 游戏结束 !!!\n""*******************\n"" 您的总得分: %d\n\n"" 敌机数: %d\n"" 歼敌数: %d\n"" 命中率: %.0f %%\n""*******************\n",f,m,j,((float)j/(float)m)*100);while(!kbhit()){Sleep(500);gotoxy(1,12);printf(" 继续请按任意键...\n\n\n");Sleep(900);gotoxy(1,12);printf(" ");}gotoxy(0,0);huatu();f=0; m=0; j=0;if(x>=18) x--;else x++;gotoxy(x,y);printf("Ж");}
}// 计分/更新敌机
void jifan()
{if(x==d&&y==r){gotoxy(d,r);printf("3");Sleep(200);gotoxy(d,r); printf(" "); f+=2; r=0; j++;}if(x==d1&&y==r1){gotoxy(d1,r1);printf("1");Sleep(200);gotoxy(d1,r1);printf(" ");f+=3; r1=0; j++;}if(x==d2&&y==r2){gotoxy(d2,r2);printf("0");Sleep(200);gotoxy(d2,r2);printf(" ");f+=1; r2=0; j++;}gotoxy(26,2);printf(" %d \n",f);}//画图
void huatu()
{int i,n;for(i=0;i<=20;i++){for(n=0;n<=20;n++){printf("*");}printf("\n");}for(i=1;i<=19;i++){for(n=1;n<=19;n++){gotoxy(i,n);printf(" ");}}
}//随机产生敌机
void dfeiji()
{while(t){if(!r) {d=rand()%17+1; m++;}if(!r1) {d1=rand()%17+1; m++;}if(!r2) {d2=rand()%17+1; m++;}while(t){r++; r1++; r2++;gotoxy(d,r);printf("Ψ");gotoxy(d1,r1);printf("ж");gotoxy(d2,r2);printf("♀");Sleep(900);gotoxy(d,r);printf(" ");gotoxy(d1,r1);printf(" ");gotoxy(d2,r2);printf(" ");kongzhi(0,0);byebye();if(r==18) r=0;if(r1==18) r1=0;if(r2==18) r2=0;if(r==0||r1==0||r2==0) break;}}
}//操控飞机
void kongzhi(int bx,int by)
{int a;while (kbhit()){if((p=getch())==-32) p=getch();a=p;gotoxy(22,5);switch(a){//控制方向case Up:if (y!=1){gotoxy(x,y);printf(" ");y--;gotoxy(x,y);printf("Ж");}break;case Down:if (y!=18){gotoxy(x,y);printf(" ");y++;gotoxy(x,y);printf("Ж");}break;case Left:if (x!=1){gotoxy(x,y);printf(" ");x--;gotoxy(x,y);printf("Ж");}break;case Right:if (x!=18){gotoxy(x,y);printf(" ");x++;gotoxy(x,y);printf("Ж");}break;case Kong:{bx=y;for(by=y;by>1;) //发射子弹{by--;gotoxy(x,by);printf("θ");Sleep(10);gotoxy(x,by);printf(" ");y=by;jifan();if(r==0||r1==0||r2==0) break;}y=bx;}break;case Esc:t=0; break; //退出default:break;}}
}
void main()
{srand(time(NULL));shuoming();hidden();huatu();gotoxy(x,y);printf("Ж");gotoxy(22,2);printf("分数:");while (t){kongzhi(0,0);if(t)dfeiji ();}
}
一个不到300行的C语言打飞机游戏相关推荐
- 使用c语言实现飞机游戏
在这里,我主要使用scanf函数和printf函数来实现一个简单的飞机游戏,并且通过函数的形式实现,同时,感谢 童晶 老师的教程,链接https://zhuanlan.zhihu.com/c2game ...
- c语言飞机借位,使用c语言实现飞机游戏
在这里,我主要使用scanf函数和printf函数来实现一个简单的飞机游戏,并且通过函数的形式实现. 整体思路:main函数 在这里,主要是使用一个简易的游戏框架,来减小开发游戏时的难度int mai ...
- java 300行代码 冒险闯关小游戏(代码+讲解)
作为一个男孩子,从小就喜欢晚一些游戏.今天就用java写一个类似马里奥的冒险闯关小游戏,但这也不是一两天能完成的事情,我将会持续更新这个游戏(有什么好的介意也非常欢迎大家提出来,也能在我的基础上自己 ...
- c语言全民飞机游戏代码,课内资源 - 基于VC++和OpenCV实现的全民飞机大战游戏
摘要功能:利用C++语言完成了一个小游戏项目-全民飞机大战,该游戏首先能够给用户提供注册,登录功能:提供了菜单栏及两种游戏模式,一种是无尽模式,另一种是一般模式:一般模式中用户通过控制玩家飞机攻击敌方 ...
- Python 300行游戏开发(基于Pygame贪吃蛇)
使用300行实现贪吃蛇的简单游戏(详细教程) 上效果图: 简单介绍 编译器: PyCharm 环境: python 3.7 使用的库: Pygame,需要自己安装,或者在PyCharm中自动安装. 模 ...
- c语言小飞机游戏如何实现敌机多个输出,飞机游戏软件:C语言应用初步感受
C语言课程设以一节课,首先提供一个C语言的飞机游戏让大家感受一下,上学期C语言课程,主要是各种语句的练习,这次是用以前的知识来感受一个实际的系统. 首先安装c-free,然后是将代码贴进去运行, 界面 ...
- 通过Mesos、Docker和Go,使用300行代码创建一个分布式系统
[摘要]虽然 Docker 和 Mesos 已成为不折不扣的 Buzzwords ,但是对于大部分人来说它们仍然是陌生的,下面我们就一起领略 Mesos .Docker 和 Go 配合带来的强大破坏力 ...
- 三百行python代码的项目_使用300行代码创建一个分布式系统
使用 300 行代码创建一个分布式系统 构建一个分布式系统是很困难的. 它需要可扩展性. 容错性. 高可用性. 一致性. 可伸缩以及高效.为了达到这些目的,分布式系统需要很多复杂的组件以一 种 复杂的 ...
- 投篮c语言程序,C语言300行-投篮
<C语言300行-投篮>由会员分享,可在线阅读,更多相关<C语言300行-投篮(7页珍藏版)>请在人人文库网上搜索. 1.include stdio.h#ifdef __APP ...
- c语言300行代码大作业,C语言300行代码
<C语言300行代码>由会员分享,可在线阅读,更多相关<C语言300行代码(3页珍藏版)>请在人人文库网上搜索. 1.include #include #include #in ...
最新文章
- RichTextBox实现关键字自定义颜色显示(C#)
- Window Function--the function of window function
- 严重性代码说明项目文件行 禁止显示状态错误 C4996 fopen('fscanf'、strcmp):This function or variable may be unsafe. 最全解决办法
- Openlayers中使用Cluster+Overlay实现点击单个要素和聚合要素时显示不同弹窗
- java继承调用先后_「继承顺序」JAVA继承顺序 - seo实验室
- 如何给 Visual C++ 中的对话框增加位图背景
- SV processses
- 想设计亿万级高并发架构,你要先知道高并发是什么?
- Cannot create an instance of OLE DB provider OraOLEDB.Oracle for linked server xxxxxxx.
- Microsoft.mshtml.dll 添加引用及类型选择错误问题解决办法
- CodeBlocks下载与安装教程
- mongoose schema Schema hasn't been registered for model
- 加密狗加密excel ,方法之 C#开发Excel自定义函数
- (邱维声)高等代数课程笔记:数域
- 作为一个才刚刚开始学习java的小白 居然显示码龄3年??每天吃饭点菜成为了一个难题 然后今天简单写了一个随机菜单
- MySQL及达梦数据库数字金额转人民币大写
- 基于android 10的国产手机,魅友有福了,基于Android 10的Flyme来了,10款旧机型可申请...
- VUE之组件(Props特性深析)
- 超实数与布尔巴基学派
- python 网络编程是什么_什么是网络编程-Python 网络编程-嗨客网
热门文章
- 9102,用原生js造一个轮播组件
- 马蹄疾 | 聊聊你可能并没有完全掌握的 Flex 布局:从概念入手,丝丝入扣
- 智能家居如何让消费者心甘情愿地买单
- 全国多地元旦迎雾霾天气 京津冀霾明天短暂减弱
- oracle_dblink配置
- opensips1.6.4+freeradius2.1.10+radiusclient0.5.6 problem do accounting
- 串-第4章-《数据结构题集》答案解析-严蔚敏吴伟民版
- JAVA多线程(转)
- freemarker 标签循环list 以及获取下标值
- Android 4.1初识--7月13号