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

同样是最初步的模拟,有待再完善下去。飞碟速度上的问题还是希望大家自己调整gamespeed的速度。 空格是发射,发射的具体样子我没写。 #include

#include

#include

#include

#define KEY_ESC 0x01

#define KEY_SPACE 0x39

#define KEY_UP 0x48

#define KEY_LEFT 0x4b

#define KEY_RIGHT 0x4d

#define KEY_DOWN 0x50

int gamespeed=1200;/*自己改游戏的速度*/

int speed;/*飞碟移动速度*/

int col;/*中心坐标*/

int score=0;/*得分*/

char key_state[128],key_pressed[128];/*键盘操作用的变量*/

void Init();/*初始*/

void Close();/*关闭*/

void PlayGame();/*游戏过程*/

void PrScore();/*输出成绩*/

void DrawM(int x,int y,int color);/*画瞄准器*/

void Win();/*输出最后结果*/

int GetKey(int ScanCode);/*这里开始都是按键函数*/

void interrupt far (*OldInt9Handler)();

void far interrupt NewInt9();

void InstallKeyboard();

void ShutDownKeyboard();

DrawFly(int x,int y,int color);/*画飞碟*/

void main(void) void PrScore()/*输出成绩*/

{

char s[10];

setfillstyle(SOLID_FILL,BLACK);

bar(30,0,100,50);

setcolor(6);

settextstyle(0,0,2);

sprintf(s,"%d",score);

outtextxy(30,20,s);

}

void DrawM(int x,int y,int color)/*画瞄准器*/ void Win()/*输出最后结果*/

{

settextstyle(0,0,4);

setcolor(RED);

if(score>18)

outtextxy(200,200,"VERY GOOD");

else if(score>10)

outtextxy(250,200,"GOOD");

else

outtextxy(250,200,"~@_@~");

} void PlayGame()/*游戏过程*/

{

float x,y;/*飞碟的坐标*/

int mx,my;

int i,num=0;

for(i=40;i<640;i+=30)

DrawFly(i,65,WHITE);

mx=my=300;

setcolor(15);

line(0,80,640,80);

randomize();

while(num<20)

{

PrScore();/*输出成绩*/

col=random(10);/*中心坐标随机*/

col=col*20+200;

speed=2+random(2);/*飞碟速度随机*/

for(x=-250;x<=250;x+=speed)/*飞碟移动全过程*/

{

y=pow((x/10),2)+200;/*求y坐标*/

DrawFly(x,y,WHITE);

DrawM(mx,my,YELLOW);

delay(gamespeed);/*间隔*/

DrawM(mx,my,BLACK);

DrawFly(x,y,BLACK);

if(GetKey(KEY_ESC))/*结束游戏*/

break;

if(GetKey(KEY_LEFT))

mx-=4;

if(GetKey(KEY_RIGHT))

mx+=4;

if(GetKey(KEY_DOWN))

my+=4;

if(GetKey(KEY_UP)&&my>100)

my-=4;

if(GetKey(KEY_SPACE))/*发子弹*/

{

if(((x+col+10)>=(mx-2)&&x<=(mx+2))&&(y>=(my-2)&&y<=(my+2)))/*这里控制精确度*/

{

score++;

DrawFly(x,y,BLACK);

DrawM(mx,my,YELLOW);

PrScore();

DrawM(mx,my,BLACK);

break;

}

}

if(y>490&&col+x>col)/*自动消失*/

break;

}

if(y<490)

{

setcolor(RED);

line(40+num*30-10,55,40+num*30+10,75);

line(40+num*30-10,75,40+num*30+10,55);

}

num++;

if(GetKey(KEY_ESC))/*结束游戏*/

break;

}

Win();

while(1) }

void Init()/*初始*/

{ int gd=DETECT,gm;

initgraph(&gd,&gm,"c:\tc");

cleardevice();

InstallKeyboard();

}

void Close()/*关闭*/ DrawFly(int x,int y,int color)/*画飞碟*/ void far interrupt NewInt9(void)

{

unsigned char ScanCode,temp;

ScanCode=inportb(0x60);

temp=inportb(0x61);

outportb(0x61,temp 0x80);

outportb(0x61,temp & 0x7f);

if(ScanCode&0x80)

{

ScanCode&=0x7f;

key_state[ScanCode]=0;

}

else

{

key_state[ScanCode]=1;

key_pressed[ScanCode]=1;

}

outportb(0x20,0x20);

}

void InstallKeyboard(void)

{

int i;

for(i=0;i<128;i++)

key_state[i]=key_pressed[i]=0;

OldInt9Handler=getvect(9); /*中断向量值*/

setvect(9,NewInt9); /*中断程序NewInt9地址存入指定的中断向量表中INT 09H*/

} void ShutDownKeyboard(void)

int GetKey(int ScanCode)

{

int res;

res=key_state[ScanCode]key_pressed[ScanCode];

key_pressed[ScanCode]=0;

return res;

简单游戏的c语言程序,[C语言编写小程序]简单打飞碟游戏相关推荐

  1. python能开发小程序吗_搭建小程序用Python语言可以搭建吗?

    原标题:搭建小程序用Python语言可以搭建吗? 正如我们在学习语言编程的过程中能发现各种逻辑规律的奥妙无穷那样,当我们能掌握一种语言编程方式之后,逐渐地也能深刻地感受到如今在小程序编写上还能有着怎样 ...

  2. C语言实现的一个交互小程序(一)

    关于C语言如何有效正确的学习,我写了一个专栏:你可以这样学习C语言,有兴趣的小伙伴可以来看看哦,希望能对你有收获!本文例子需要源码的可以关注我后私信我. 这几天我用C语言自己写了一个交互小程序.这个交 ...

  3. python能开发小程序吗_微信小程序用什么语言开发?Python能开发小程序么

    小程序是什么语言开发设计的那麼微信小程序的编程语言用的什么,许多 官方网站都会微信上有微信小程序,不用下载手机软件就可以享有一样的服务项目,还无需占运行内存,棒极了有么有?下边给大伙儿产生小程序語言开 ...

  4. c语言计算二次函数顶点坐标,C语言编写一个求一元二次方程的实根的程序。 编辑一个小程序去做一元二次方程的求解(b^24ac)...

    导航:网站首页 > C语言编写一个求一元二次方程的实根的程序. 编辑一个小程序去做一元二次方程的求解(b^2>4ac) C语言编写一个求一元二次方程的实根的程序. 编辑一个小程序去做一元二 ...

  5. c语言洗牌发牌结构体,C语言实现洗牌发牌小程序

    本文实例为大家分享了C语言实现洗牌发牌小程序的具体代码,供大家参考,具体内容如下 构建一副扑克牌,并实现洗牌发牌. 代码 #include #include #include #define NUM ...

  6. XFC演示-使用C语言通过WinAPI函数编写Windows程序

    XFC演示-使用C语言通过WinAPI函数编写Windows程序 1,目标效果: 2,代码片段: winMain.c /*!\file winMain.c\version v1.00\date 10/ ...

  7. Evento 易语言web服务框架 微信小程序 微信支付 微信JSAPI调用

    Evento 易语言web服务框架使用说明 前言: 为什么要有这个东西,C/S构架在十多年前就已经开始向主流的B/S构架转型,其中在易语言WEB应用也不泛优秀的例程和应用.官方出了针对IIS开发的IS ...

  8. 【微信小程序系列】微信小程序超简单教程,基本语法,获取用户基本数据信息,实现对云数据库的增删改查及小程序外部api的引用示例(附源码)

    [微信小程序系列]微信小程序超简单教程 小程序项目结构 静态页面的构成 HTML:结构 css:样式 js:行为 小程序 页面全部存放在pages, 而且pages目录只能存放页面 页面包括4个文件, ...

  9. 最新小程序源码(微信/抖音小程序源码和小程序游戏源码开发)

    本文将利用小程序游戏提供的能力制作一个简单的方块旋转小程序游戏,旨在从零开始介绍小程序游戏的开发过程. 注册小程序游戏账号 进入小程序注册页面按照指引填写信息并提交相应信息,服务类别选择"程 ...

  10. 编写运行最简单的java程序——使用记事本编写java程序

    编写运行最简单的java程序--使用记事本编写java程序 第一个java程序--使用记事本编辑 经过上篇文章的java环境搭建成功的小伙伴们可以在自己的计算机上编写属于自己的java程序了yo~ 还 ...

最新文章

  1. 深入理解JVM——(三)为什么JVM新生代需要两个Survivor区
  2. 分布式消息队列 — Overview
  3. ubuntu19.10安装deepin的微信和qq(转载+自己在新系统上验证)
  4. eclipse各种配置
  5. [Java基础]IO流小结
  6. Java实现查看SEGY(.su格式)数据道头字信息的GUI图形用户界面
  7. 征服RIA:元编程的思想
  8. 2018-12-20 第二章Java 预习作业
  9. [RK3399][Android7.1] ADB功能怎么Debug
  10. 布客·ApacheCN 翻译/校对/笔记整理活动进度公告 2020.1
  11. 常用算法实现(五)——python阿拉伯数字转中文
  12. scrcpy Device disconnected报错
  13. php excel 进度,在php中生成Excel文件时显示进度条
  14. JSF 2 简介,第 2 部分: 模板及复合组件
  15. java获取当前时间前12个月内的年月信息
  16. maven 设置本地仓库
  17. 基于uFUN开发板的心率计(二)动态阈值算法获取心率值
  18. android 电子书源码,翻页效果
  19. STM32F767--->寄存器
  20. android系统允许icon角标,安卓手机角标显示方案

热门文章

  1. Microbiome | 宏基因组测序中减少样品中真核宿主的DNA污染
  2. Oracle数据库update语句用法,多表批量更新对应的字段值
  3. 如何自己编写字符串处理函数
  4. 京东坐稳全渠道最大家电零售商之位,苏宁怼京东815恐无成效
  5. JAVA实现导出mysql表结构到Word详细注解版
  6. nginx配置tcp转发
  7. Win32窗口程序实例
  8. Clickhouse打包aarch64二进制文件
  9. 2022春秋杯联赛 传说殿堂赛道 sql_debug题目解析
  10. 【19调剂】北京语言大学 智能语音习得技术实验室 -调剂信息