#include

#include

#include

//定义全局变量

int high,width;//边界

int bird_x,bird_y; //小鸟坐标

int bar_y;//挡板坐标

int bar_xTop,bar_xDown;//挡板开口上下坐标

int score;//得分

void HideCursor()//隐藏光标

{

CONSOLE_CURSOR_INFO cursor_info = {1, 0};

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);

}

void gotoxy(int x,int y) //光标移动到(x,y)位置

{

HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);

COORD pos;

pos.X = x;

pos.Y = y;

SetConsoleCursorPosition(handle,pos);

}

void startup()//数据初始化

{

high=18;//初始化边界

width=26;

bird_x=high/2; //初始化小鸟坐标

bird_y=width/2;

bar_y=width;//挡板坐标

bar_xTop=high/2;//挡板开口

bar_xDown=bar_xTop+4;

score=0;//得分

HideCursor();//隐藏光标

}

void show()//显示界面

{

int i,j;

gotoxy(0,0);

for(i=0;i<=high+1;i++)

{

for(j=0;j<=width;j++)

{

if((i==bird_x)&&(j==bird_y))//输出小鸟@

printf("@");

else if(i==high+1)//输出下边界

printf("_");

else if(j==width) //输出右边界

printf("|");

else if((j==bar_y)&&((i<=bar_xTop)||(i>=bar_xDown))) //输出挡板

printf("|");

else printf(" ");

}

printf("\n");

}

printf("得分:%d\n",score);

}

void updateWithoutInput()//与用户输入无关的更新

{

if(bird_y==bar_y-1)

{

if((bird_x>bar_xTop)&&(bird_x

score++;

else

{

printf("小鸟死亡\n");//小鸟没没通过挡板开口小鸟死亡

exit(0);

}

}

if(bar_y>0)

bar_y--;

else

{

bar_y=width;

bar_xTop=rand()%(high-4);

bar_xDown=bar_xTop+4;

}

if(bird_x

bird_x++;

else

{

printf("小鸟死亡\n");

exit(0);

}

Sleep(200);

}

void updateWithInpute()//与用户输入有关的更新

{

char input;

if(kbhit())

{

input=getch();

if((input==' ')&&(bird_x>0)&&(bird_x<=high))//小鸟向上跳

bird_x=bird_x-2;

}

}

int main()

{

startup();//数据初始化

while(1)

{

show();//显示界面

updateWithoutInput();//与用户输入无关的更新

updateWithInpute();//与用户输入有关的更新

}

}

flappy bird c语言,C语言实现flappy bird相关推荐

  1. 为什么我们需要一门新语言——Go语言

    编程语言已经非常多,偏性能敏感的编译型语言有 C.C++.Java.C#.Delphi和Objective-C等,偏快速业务开发的动态解析型语言有 PHP.Python.Perl.Ruby.JavaS ...

  2. 职工信息管理程序设计c语言,C语言程序设计职工信息管理系统.docx

    C语言程序设计职工信息管理系统.docx 1 数信学院数信学院 课程设计报告课程设计报告 课程名称课程名称C C 语言程序设计语言程序设计_ _ 题目名称题目名称职工信息管理系统职工信息管理系统 学生 ...

  3. c语言 python-C语言、Java语言和python语言的区别在哪里

    原标题:C语言.Java语言和python语言的区别在哪里 我们经常听到C语言.Java语言和python语言,那么这三者的区别在哪里呢?随着科技的进步以及新技术的推进,编程语言的种类也是越来越多,随 ...

  4. 程序设计语言python语言概述

    程序设计语言 什么是程序设计语言 程序设计语言是人类与计算机交流和沟通的语言.人们通过使用程序语言,来书写计算机程序,以达到设计的程序满足需求的目的. 程序语言的发展历史 程序语言经历了从低级语言到高 ...

  5. c语言吗 程序语言,编程语言为什么从c语言开始,那有没有a语言b语言呢?

    实际上没有A语言叫法. B语言 B语言是贝尔实验室的计算机先驱Ken Thompson 和 Dennis Ritchied与1969年设计开发.他们的主要其他功绩还有Unix操作系统和C语言.可以说C ...

  6. 脚本语言语言脚本语言:Shell , JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua

    今天一直在研究脚本语言语言之类的问题,上午正好有机会和大家共享一下. 脚本语言:Shell , JavaScript.VBScript.Perl.PHP.Python.Ruby.Lua 工作控制语言和 ...

  7. 怎么理解python语言_Python语言入门1-理解Python语言

    本文主要向大家介绍了Python语言入门的理解Python语言,通过具体的内容向大家展现,希望对大家学习Python语言入门有所帮助. python是解释型的脚本语言 解释型语言 与C/C++等编译型 ...

  8. 国家语言,语言代码,locale id对应表

    国家语言,语言代码,locale id对应表.比如 en_US对应的id为1033, 中文的locale=zh_CN,id=2052. Locale Language code LCID string ...

  9. 回旋矩形C语言,C语言回旋函数解释下,该如何处理

    当前位置:我的异常网» C语言 » C语言回旋函数解释下,该如何处理 C语言回旋函数解释下,该如何处理 www.myexceptions.net  网友分享于:2013-06-08  浏览:30次 C ...

  10. Android 应用开发(8)---语言和语言区域

    语言和语言区域 从 Android 7.0(API 级别 24)开始,Android 为多语言用户提供增强的支持,让他们可以在设置中选择多个语言区域.Android 通过大幅扩展受支持的语言区域数量并 ...

最新文章

  1. 没忍住又怼同事了!领导说,要做好情绪管理:真正优秀的人,从来都是不动声色...
  2. 解决Jsp运行org.apache.jasper.JasperException: Unable to compile class for JSP:问题
  3. android 反编译
  4. 详解python的super()的作用和原理
  5. 信息学奥赛一本通(1328:【例7.7】光荣的梦想)
  6. oracle中ak约束,Oracle自定义聚集函数
  7. DevExpress v18.1新版亮点——WPF篇(二)
  8. 小米Android OS特别高,干翻小米,最强定制安卓系统诞生?Color OS11表现如何
  9. 苹果无线笔记本怎么连不上win服务器,苹果笔记本连不上无线_苹果笔记本连不上wifi...
  10. 【开源电机驱动】H桥基础知识
  11. arcmap中有火星坐标码_GIS转换之火星坐标系转换
  12. android cpu型号采集,Android查看CPU型号设备信息等
  13. golang struct数组排序_go语言中排序sort的使用方法示例
  14. 【教3妹学java】JVM调优有哪些工具?
  15. 小伙面试时被连环追问数据库优化, 面试前如何埋点反杀? 网友看完直呼: 太硬核了!
  16. 【原创】WP7向Win8移植遇到的问题及独创性解决方案
  17. Scrapy入门到放弃06:Spider中间件
  18. NX二次开发-获得图纸视图的名字UF_OBJ_ask_name
  19. 一个普通码农的Linux之路
  20. vs2019测试sizeof(string)的长度是28

热门文章

  1. 微信中分享html5网页sdk,微信网页分享JS-SDK使用步骤
  2. c语言打印字母菱形————用绝对值
  3. 在MAC下安装一些软件时提示来自身份不明开发者解决方法
  4. 基于JSP的网上宠物销售商城
  5. 服务器单系统盘和双系统盘,一种比较简单快速的硬盘全新安装Win10单双系统的方法...
  6. 电脑怎么任意裁剪图片?如何自由裁剪图片?
  7. 如何将Android手机弄死机?
  8. CSS —— 背景图片填满DIV、鼠标滑过放大图片
  9. 测试用例(五)(扩展篇)
  10. Fusion360学习记录:螺帽