flappy bird c语言实现

C语言小游戏:飞翔的小鸟(完整版) 本程序设计了三种不同颜色的小鸟(可以实现三人对战)另外也有白天模式和夜晚模式,不同模式和不同小鸟是在每次死亡后随机刷新,避免产生视觉疲劳。 阅读详情

#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
//辅助函数
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 HideCursor()      //隐藏光标
{
    CONSOLE_CURSOR_INFO cursor_info = { 1, 0 };
    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}

//全局变量的定义
//游戏画面大小
int high;
int width;
//小鸟的坐标
int bird_x;
int bird_y;
//障碍物的相关坐标    
int bar1_y;
int bar1_xTop;
int bar1_xDown;
int score;

void startup() //数据初始化
{
    //游戏界面大小 
    high = 15;    
    width = 25;
    //小鸟的初始位置 
    bird_x = high / 2;
    bird_y = width / 4;
    //障碍物的初始位置
    bar1_y = width - 1;    
    bar1_xTop = high / 4;
    bar1_xDown = high / 2;
    //得分 
    score = 0;
}

void show()  //显示画面
{
    gotoxy(0, 0);    //将光标调整到(0,0)的位置
    int i, j;
    for (i = 0; i < high; i++)
    {
        for (j = 0; j < width; j++)
        {
            if ((i == bird_x) && (j == bird_y))    //输出小鸟
            {
                printf("@");
            }
            else if ((j == bar1_y) && ((i < bar1_xTop) || (i > bar1_xDown)))    //输出障碍物    
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }
    printf("得分:%d\n", score);
}

int updateWithoutInput()//与用户无关的更新
{
    bird_x++;    
    bar1_y--;
    if (bird_y == bar1_y)
    {
        if ((bird_x >= bar1_xTop) && (bird_x <= bar1_xDown))    
        {
            score++;
        }
        else
        {
            printf("游戏失败!!!");
            return -1;
        }
    }
    else
    {
        if (bird_x > high)
        {
            printf("游戏失败!!!");
            return -1;
        }
    }
    if (bar1_y <= 0)
    {
        bar1_y = width - 1;
        int upside = rand() % (int)(high * 0.6) + 1;
        bar1_xTop = upside;
        int opening = rand() % (int)(high * 0.2) + 2;
        while ((bar1_xDown = bar1_xTop + opening) > high - 2)
        {
            opening = rand() % (int)(high * 0.2) + 2;
        }
    }
    Sleep(100);
    return 0;
 }
 
void updateWithInput()//与用户输入有关的更新
{
    char input;
    if (_kbhit())
    {
        input = _getch();
        if (input == ' ' && bird_x > 0)
        {
            bird_x = bird_x - 2;
        }
    }
}
int main()
{
    srand((unsigned)time(NULL));
    HideCursor();
again:
    startup();    //初始化变量 
    while (1)
    {
        show(); //显示画面
        int ret = updateWithoutInput();//与用户无关的更新
        if (ret == -1)
        {
            system("CLS");
            printf("1.重新开始\n0.退出\n请选择:");
            int input = 0;
            scanf("%d", &input);
            if (input)
            {
                goto again;
            }
            else
                return 0;
        }
        updateWithInput();//与用户输入有关的更新
    }
    return 0;
}
 

C语言实现【小游戏——Flappy Bird】 目录:1.目标要求:2.C语言代码:3.运行结果: 1.目标要求: 1.小鸟默认向右向下飞,按空格会使小鸟弹起向上 2.小鸟每通过一根柱子,分数加1 3.若小鸟碰到柱子或边框,游戏结束 2.C语言代码: #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<conio.h&g... 阅读详情

相关推荐

Flappy Bird重现江湖:仅100KB的Android版,全用C语言实现

回到2013年,Flappy Bird凭借其简单却极具挑战性的玩法,迅速在全球爆红。简单的点触操作、复古像素风图形,再加上考验玩家耐心与反应的机制,成功俘获了数百万玩家的心。然而,这款游戏的成功也带来了巨大的争议。它的难度让人又爱又恨,甚至有玩家因愤怒摔坏手机。在这样的背景下,有人决定通过另一种方式重现这款经典游戏:完全使用C语言,并限制在100KB以内。你可能会问,为什么选择C语言?为什么要限制在100KB呢?1.C语言的高效性。

知道者 1220

用C语言开发入门游戏FlappyBird

《flappy bird》是一款由来自越南的独立游戏开发者Dong Nguyen所开发的作品,游戏于2013年5月24日上线,并在2014年2月突然暴红。2014年2月,《Flappy Bird》被开发者本人从苹果及谷歌应用商店撤下。2014年8月份正式回归APP Store,正式加入Flappy迷们期待已久的多人对战模式。游戏中玩家必须控制一只小鸟,跨越由各种不同长度水管所组成的障碍。通过游戏开发可以做到1)在游戏窗口中显示从右向左运动的障碍物,显示三根柱子墙;

莫浅子的博客 8529

C语言实现【EasyX库——Flappy Bird】图片界面+添加声音+鼠标交互

目录:1.目标要求:2.C语言代码:3.运行结果: 1.目标要求: 1.实现用鼠标画图功能 2.C语言代码: #include<graphics.h> #include<conio.h> void main(){ initgraph(640,480);//初始化图形窗口 MOUSEMSG m;//鼠标信息类型 while(1){ if(MouseHit())...

weixin_43503632的博客 6513

用C语言实现FlappyBird

在《FlappyBird》这款游戏中,玩家需要用一根手指来操控小鸟往上飞,不断的点击屏幕就会不断的往高处飞。放松手指,则会快速下降。所以玩家要控制小鸟一直向前飞行,然后注意躲避途中高低不平的管子得分。 在这里,我们主要使用C语言中的printf和scanf函数实现一个简单的FlappyBird游戏 整体思路 在开始游戏之前,我们先了解一些辅助函数 void gotoxy(int x, in...

木头的博客 8343

C 语言实现 Flappy Bird 游戏

在本文中,我将带你一步步实现一个基于C语言的Flappy Bird游戏,并结合代码示例详细讲解实现过程中的关键逻辑、设计思路及其背后的原因。如果你也对C语言和Linux系统感兴趣,强烈推荐你尝试实现这个项目,它将为你带来巨大的成就感和学习体验。库的使用、信号处理与游戏逻辑的编写,以及对指针和链表的理解。这些问题的解决不仅帮助我深入理解了C语言,也让我在Linux环境下的编程能力有了显著提高。在游戏中,障碍物是用链表表示的,:信号处理是C编程中的一个高级主题,它是我在本项目中遇到的最大挑战之一。

tang7mj的博客 757

flappy bird用c语言编写的代码

复制粘贴,然后运行之后就可以试玩了,大家感兴趣的可以试试,并且分析一下它的源码

C语言小游戏(flappy bird),附带源码及素材

课程设计—用C语言编码一个小游戏(flappy bird)前言一、系统简介二、函数模块图三、具体代码头文件 前言 完成该程序需要用到easy-x库数据,建议用vc6或vs2013版本以上等支持安装easy-x库的软件 一、系统简介 该游戏名为FLIP 滑稽,改自flappy bird。游戏实现了按空格键跳跃,越过障碍无得分,触碰障碍物边界或游戏窗口上下边界游戏结束的功能。其中图片、音效、文件写入...

qq_43605229的博客 1万+

tree_sitter多语言解析器配置实战指南

本文是一份详细的Tree-sitter多语言解析器配置实战指南。文章从零开始,手把手指导如何搭建Python环境、安装指定版本的tree-sitter库、下载并编译多种语言的语法规则,最终构建一个统一的解析器库。通过实战代码演示了如何初始化解析器、解析代码并遍历语法树,旨在帮助开发者高效处理多语言代码分析任务,并分享了高级技巧与常见问题排坑经验。

weixin_29245767的博客 268

flappy bird c语言,Flappy Bird C语言实现

#include#include#include#include#include/********函数变量声明********/#define PR_Box printf("■")#define PR_Gold printf("★")#define PR_Ag printf("☆")#define PR_FBird printf("Ю")#define PR_DBird printf("Ф")#d...

weixin_39695241的博客 304

手把手教你用U盘给海信IP501H刷机:GK6323V100C芯片的4.4.2和9.0固件实战

本文详细介绍了海信IP501H电视盒子基于GK6323V100C芯片的刷机实战指南,涵盖Android 4.4.2强刷和Android 9.0免拆刷机两种方案。从工具准备、短接操作到ADB调试,提供全流程解析和常见问题解决方案,帮助用户安全高效地完成刷机操作。

lemon的博客 1458

会 C 语言就能做游戏? C 语言实现 flappy bird

C语言实现flappy bird(可视化编程) 前言 flappy bird是一款在2014年爆火的游戏,相信大家都曾听说过或者玩过,今天我们将会采用C语言来写这个游戏的基本玩法,最重要的是从中接触可视化编程。 代码效果 可视化编程需要一个头文件,需要自己下载,即easyx。 贴图技术 #include <graphics.h> 我选择的开发工具是vs2019,去掉了安全检查以及将字符集换成了多字符集。 这个游戏主要运用到了一些贴图技术和利用多线程播放音乐的方法。 我们首先需要构建一个

qq_52354687的博客 7867

PX4自定义uORB消息与MAVLink消息映射实战:从飞控到QGC地面站完整流程解析

本文详细解析PX4飞控中自定义uORB消息与MAVLink消息映射的完整流程,涵盖从飞控内部消息定义、MAVLink消息创建到QGC地面站接收显示的全链路实践。重点介绍如何使用mavlink inspector工具进行调试,解决版本兼容性和多实例消息处理等常见问题,为无人机开发者提供可靠的实时数据监控方案。

ll5678的博客 1068

c语言bird游戏,C语言实现Flappy Bird小游戏

#include#include#include#include#include/********函数变量声明********/#define PR_Box printf("■")#define PR_Gold printf("★")#define PR_Ag printf("☆")#define PR_FBird printf("Ю")#define PR_DBird printf("Ф")#d...

weixin_31049801的博客 258

关于React Native Android找不到node的错误

最近,按照官方文档初始化了一个React Native项目,但是在Android端运行的时候,报了如下的一个错误。 org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:recordFilesBeforeBundleCommandDebug'. Caused by: org.gradle.process.internal.ExecException: A problem occurred starting p

xiangzhihong8的专栏 4247

手把手教你学Simulink--基于未来出行解决方案的场景实例:电动飞行汽车(eVTOL)的动力系统建模与仿真

电动垂直起降飞行器零道路拥堵:三维空间飞行绿色低碳:全电驱动,零排放快速响应:城市内15分钟直达低噪音:相比直升机↓20dB📊 预测:2030年全球eVTOL市场规模将超300亿美元,中国、美国、欧洲加速适航认证。本文通过,构建了电动飞行汽车(eVTOL)动力系统高压电池系统建模电力电子(DC-DC、逆变器)实现PMSM电机+螺旋桨推进系统搭建完整飞行任务动态仿真性能KPI评估与优化。

MHD0815的博客 443

c语言flappy bird代码,C语言实现Flappy Bird小游戏

#include/********函数变量声明********/#define PR_Box printf("■")#define PR_Gold printf("★")#define PR_Ag printf("☆")#define PR_FBird printf("Ю")#define PR_DBird printf("Ф")#define PR_Land printf("┳┳┯")#defi...

weixin_28759987的博客 434

Java全栈开发:充电桩管理系统项目实战

技术收获深入理解分布式系统架构掌握高并发场景解决方案提升系统设计能力经验教训前期需求分析的重要性技术选型需要考虑长期维护测试覆盖率的重要性未来展望引入AI预测故障支持更多支付方式优化用户体验通过此项目的开发,不仅实现了充电桩的智能化管理,也积累了宝贵的全栈开发经验。项目中的很多技术方案和架构设计都具有普遍适用性,可以在其他类似项目中借鉴使用。@Componentstatic {// 初始化状态转换规则。

exlink2012的专栏 1253

C语言版flappy_bird实现

一、实验说明 1. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面上的程序: LX终端(LXTerminal):Linux命令行终端,打开后会进入Bash环境,可以使用Linux命令。GVim 2.环境使用 使用GVim编辑器输入实验所需的代码及文件,使用LX终端(LXTerminal)运行所需命令进行操作。 完成实验后可以点击桌面上方

陈 浩 6122

echarts 饼图(加载进度条动画效果)

1、外侧动画细线效果运动“custom”自定义系列中“renderItem”属性来实现,动态修改起始角度和终止角度。2、圆环使用" pie "类型添加两个data值来画百分比圆环,动态修改data中的值。

God's asylum的博客 1633

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

flappy bird源代码c语言,C语言实现flappy bird游戏

#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 ...

weixin_29997937的博客 936

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

flappy+bird+c语言程序,C语言版flappy_bird实现

一、实验说明1. 环境介绍本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面上的程序:LX终端(LXTerminal):Linux命令行终端,打开后会进入Bash环境,可以使用Linux命令。GVim2.环境使用使用GVim编辑器输入实验所需的代码及文件,使用LX终端(LXTerminal)运行所需命令进行操作。 完成实验后可以点击桌面上方的“实验截图”保存并分享实验结果到微博,...

weixin_30260621的博客 1095

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Flappy Bird游戏 C语言实现

大家是否玩过上面这款游戏呢?想要自己做出来并不难,跟着我来用手吧。 一、准备工作 编译器使用VS2019,但需要下载一个图形库Easy—X。 由于此图形库是C++的,所以我们要以C++文件来进行编写,C++文件内也可以使用C语言。 EasyX 下载地址https://easyx.cn/怎样安装 EasyX? - EasyXhttps://easyx.cn/setup#:~:text=1.%20%E5%8F%8C%E5%87%BB%E4%B8%8B%E8%BD%BD%E7%9A%84%20E...

m0_56620669的博客 4719

flappy bird c语言,C语言实现flappy bird

#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,...

weixin_36197248的博客 288

c语言flappy bird编程,C语言实现Flappy Bird小游戏

本文实例为大家分享了C语言实现Flappy Bird小游戏的具体代码,供大家参考,具体内容如下#include#include#include#include#include/********函数变量声明********/#define PR_Box printf("■")#define PR_Gold printf("★")#define PR_Ag printf("☆")#define PR_...

weixin_29122445的博客 639

flappy+bird+c语言程序,C语言实现flappy bird游戏

本文实例为大家分享了C语言实现flappy bird的具体代码,供大家参考,具体内容如下#include#include#include//定义全局变量int high,width; //边界int bird_x,bird_y; //小鸟坐标int bar_y; //挡板坐标int bar_xTop,bar_xDown; //挡板开口上下坐标int score; //得分void HideCurs...

weixin_34079307的博客 451
monkeydonotcode
博客等级 码龄5年 4粉丝 1原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值