#include"StdAfx.h" 

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>
#include<time.h>
#include<Windows.h>
/********函数变量声明********/
#define PR_Box printf("■")
#define PR_Gold printf("★")
#define PR_Ag printf("☆")
#define PR_FBird printf("Ю")
#define PR_DBird printf("Ф")
#define PR_Land printf("┳┳┯")
#define PR_Bg_TL printf("╔")
#define PR_Bg_TR printf("╗")
#define PR_Bg_DL printf("╚")
#define PR_Bg_DR printf("╝")
#define PR_Bg_X printf("═")
#define PR_Bg_Y printf("║")
#define PR_Blank printf(" "); int Grade = , C_Gold = , C_Ag = , Score = , Delay_time = ,Max_blank=,Distance=; struct Birds
{
int x, y;
int condition;
}; Birds *Bird = (Birds*)malloc(sizeof(Birds)); struct Bg
{
int x, y;
int l_blank;
int reward[];
Bg *pri;
Bg *next;
}; Bg *Bg1 = new Bg[sizeof(Bg)]; void Position(int x, int y)
{
COORD pos = { x - , y - };
HANDLE Out = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(Out, pos);
} void CreatBird()
{
Bird->x=;
Bird->y=;
Bird->condition =;
} void CreatBg()
{
Bg *Bg2 = (Bg*)malloc(sizeof(Bg)); Bg1->x=;Bg1->y =;
Bg2->x=Bg1->x+Distance;Bg2->y =; Bg1->l_blank =Max_blank-Grade;
Bg2->l_blank =Max_blank-Grade; //循环链表?
Bg1->next=Bg2;
Bg1->pri=Bg2;
Bg2->next=Bg1;
Bg2->pri=Bg1;
} void InsertBg(Bg *p)
{
int temp;
Bg *Bgs = (Bg*)malloc(sizeof(Bg));
Bgs->x=p->pri->x+Distance;
Bgs->l_blank =Max_blank-Grade;
srand((int)time());
temp=rand();
if(temp%==)//++
{
if((temp%+p->pri->y+Max_blank-Grade)<)
Bgs->y=p->pri->y+temp%;
else
Bgs->y=p->pri->y;
}
else
{
if((p->pri->y-temp%)>)
Bgs->y=p->pri->y-temp%;
else
Bgs->y=p->pri->y;
} Bgs->pri=p->pri;
Bgs->next =p;
p->pri->next=Bgs;
p->pri =Bgs;
} void Check_Bg(Bg *q)
{
Bg *p=q;int i=,temp;
while(++i<=)
{
if(p->x>-)
p=p->next;
else
{
srand((int)time());
temp=rand();
if(temp%==)//++
{
if((temp%+p->y+Max_blank-Grade)<)
p->y=p->y+temp%;
else
p->y=p->y;
p->x=p->pri->x+Distance;
p->l_blank=Max_blank-Grade;
}
else
{
if((p->y-temp%)>)
p->y=p->y-temp%;
else
p->y=p->y;
p->x=p->pri->x+Distance;
p->l_blank=Max_blank-Grade;
}
} } }
void Loop_Bg(Bg *q)
{
Bg *p=q;int i=;
while(++i<=)
{
p->x=p->x-;
p=p->next ;
if(Bird->x==p->x)
{
Score+=;
if(Score%==&&Grade<)
Grade++;
}
}
} void Prt_Bg(Bg *q)
{
Bg *p=q;int i=,k,j;
while(++i<=)
{
if(p->x>&&p->x<=)
{ for(k=;k<p->y;k++)
{
Position(p->x+,k);
PR_Box;PR_Box;PR_Blank
}
Position(p->x,p->y);
PR_Box;PR_Box;PR_Box;PR_Blank;
Position(p->x,p->y+p->l_blank);
PR_Box;PR_Box;PR_Box;PR_Blank;
k=k+p->l_blank+;
for(k;k<=;k++)
{
Position(p->x+,k);
PR_Box;PR_Box;PR_Blank;
}
Position(p->x,);
for(k=;k<Distance/-;k++)
PR_Land;
}
p=p->next;
if(p->x==)
{
for(j=;j<p->y;j++)
{ Position(p->x+,j);
PR_Blank;PR_Blank;
}
Position(p->x+,p->y);
PR_Blank;PR_Blank;PR_Blank;
Position(p->x+,p->y+Max_blank-Grade);
PR_Blank;PR_Blank;PR_Blank;
j=j+Max_blank-Grade+;
for(j;j<=;j++)
{Position(p->x+,j);
PR_Blank;PR_Blank;
}
}
}
}
void PrtBg()
{
int i;
Position(,);PR_Bg_TL;
Position(,);PR_Bg_TR;
Position(,);PR_Bg_DL;
Position(,);PR_Bg_DR;
for(i=;i<=;i+=)
{
Position(i,);PR_Bg_X;
Position(i,);PR_Bg_X;
}
/*for(i=2;i<=23;i++)
{ Position(1,i);PR_Bg_Y;printf("%d",i-1);
Position(79,i);PR_Bg_Y;
}*/
}
void PrtBird()
{
Position(Bird->x,Bird->y-);
PR_Blank;
Position(Bird->x,Bird->y);
PR_FBird;
Position(,);
printf("Score:%d",Score);
}
int CheckYN(Bg *q)
{
Bg *p=q;int i=;
while(++i<=)
{
if(Bird->y>)
return ;
if(Bird->x==p->x&&Bird->y<=p->y)
return ;
if((Bird->x==p->x||Bird->x==p->x+||Bird->x==p->x+)&&Bird->y==p->y)
return ;
if(Bird->x==p->x&&Bird->y>p->y+p->l_blank)
return ;
if((Bird->x==p->x||Bird->x==p->x+||Bird->x==p->x+)&&Bird->y==p->y+p->l_blank)
return ;
p=p->next;
}
return ;
}
void Prtfirst()
{
printf("══════════════════════════════════════\n");
printf(" ■■ ■■\n");
printf(" ■■ ■■\n");
printf(" ■■ ■■\n");
printf(" ■■ ■■\n");
printf(" ■■ ■■ C语言版 Flappy Bird\n");
printf(" ■■ ■■ 瞎搞人:yyposs\n");
printf(" ■■ ■■ 瞎搞日期:2014.2\n");
printf(" ■■ ■■ 耗时:4小时\n");
printf(" ■■■ ■■ 游戏说明:\n");
printf(" ■■ 1-按上箭头使鸟起飞\n");
printf(" ■■ 2-等级越高,难度越大!\n");
printf(" Ю ■■■\n");
printf("\n");
printf(" \n\n\n\n\n\n\n\n");
printf(" ┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳\n");
system("pause");
Position(,);
int i=;
while(i++<*)
PR_Blank;
}
void main()
{
int i=;char ch;
Prtfirst(); PrtBg();
CreatBg();
InsertBg(Bg1);
InsertBg(Bg1);
InsertBg(Bg1);
CreatBird();
while()
{
if(!CheckYN(Bg1))
break;
Check_Bg(Bg1);
Prt_Bg(Bg1);
PrtBird();
Loop_Bg(Bg1);
Bird->y=Bird->y+;
if(GetAsyncKeyState(VK_UP))
{
Position(Bird->x,Bird->y-);
PR_Blank;
Bird->y=Bird->y-;
}
while(i++<);
{
Sleep();
}
i=;
}
Position(,);
printf("You Lost!");
Position(,);
system("pause");
}

在校内上看到这份代码,对vs进行些配置后可以运行,mark在此。

转载:Flappy Bird源代码 win32 console版的更多相关文章

  1. Flappy bird源代码(略吊)

    #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<time.h> #inc ...

  2. HTML5 版的flappy bird

    Flappy Bird这款简单的小游戏累计下载量已经超过5000万次,每天收入至少5万美元.然而,2月10日其开发者Dong Nguyen却将Flappy Bird从苹果App Store和Googl ...

  3. C语言版flappy bird黑白框游戏

    在此记录下本人在大一暑假,2014.6~8这段时间复习C语言,随手编的一个模仿之前很火热的小游戏----flappy bird.代码bug基本被我找光了,如果有哪位兄弟找到其他的就帮我留言下吧,谢谢了 ...

  4. 也来山寨一版Flappy Bird (js版)

    随着Flappy Bird的火爆,各种实现的版也不断出现,于是也手痒简单实现了一版. 其实本来只是想实现一下这只笨鸟的飞翔运动的,后来没忍住,就直接实现一个完整游戏了…… 因为这个游戏本身实现起来就没 ...

  5. flappy bird游戏源代码揭秘和下载

    转:http://blog.csdn.net/touchsnow/article/details/19071961 背景: 最近火爆全球的游戏flappy bird让笔者叹为观止,于是花了一天的时间山 ...

  6. 教你从头到尾利用DQN自动玩flappy bird(全程命令提示,GPU+CPU版)【转】

    转自:http://blog.csdn.net/v_JULY_v/article/details/52810219?locationNum=3&fps=1 目录(?)[-] 教你从头到尾利用D ...

  7. cocos2dx-html5 实现网页版flappy bird游戏

    我也是第一次使用cocos2d_html5,对js和html5也不熟,看引擎自带的例子和引擎源码,边学边做,如果使用过cocos2d-x的话,完成这个游戏还是十分简单的.游戏体验地址: http:// ...

  8. [Win32::Console]Perl终端版生命游戏

    环境,WinXP/Win7  Perl 5.16 默认循环1000次,按ESC提前退出 use strict; use Term::ReadKey; use Win32::Console; use T ...

  9. 自己动手写游戏:Flappy Bird

    START:最近闲来无事,看了看一下<C#开发Flappy Bird游戏>的教程,自己也试着做了一下,实现了一个超级简单版(十分简陋)的Flappy Bird,使用的语言是C#,技术采用了 ...

随机推荐

  1. [BZOJ] 4145: [AMPPZ2014]The Prices

    设\(f[S][i]\)表示考虑到第\(i\)家店,已经买了集合\(S\)内的物品 一个朴素的想法是枚举子集转移 \[ f[S][i]=\min\{f[T][i-1]+cost[S\oplus T][ ...

  2. vue + axios---封装一个http请求

    在使用vue开发时,官方推荐使用axios来请求接口 // axios官方地址 https://github.com/axios/axios 但是axios并不像 vue-resource 一样拥有i ...

  3. windows server2008R2 64位 配置 mysql-8.0.15-winx64

    下载mysql: 1 https://dev.mysql.com/downloads/mysql/ 如图: 然后在解压的文件夹里面新建 my.ini文件,内容如下 按 Ctrl+C 复制代码 按 Ct ...

  4. Python基础——集合(set)

    集合可以去除掉列表中重复的元素. 创建 list1=[123,123,456,789] list1=set(list1) list1 set1=set() type(set1) set1=set([1 ...

  5. python 类的封装/property类型/和对象的绑定与非绑定方法

    目录 类的封装 类的property特性 类与对象的绑定方法与非绑定方法 类的封装 封装: 就是打包,封起来,装起来,把你丢进袋子里,然后用绳子把袋子绑紧,你还能拿到袋子里的那个人吗? 1.隐藏属性和 ...

  6. Applied Nonparametric Statistics-lec3

    Ref: https://onlinecourses.science.psu.edu/stat464/print/book/export/html/4 使用非参数方法的优势: 1. 对总体分布做的假设 ...

  7. stm32之PWM学习

    下图是一个STM32普通PWM形成的图形原理说明 自动重装载寄存器(ARR)用于确定波形的频率(即周期).捕获比较寄存器(CCRx)(用于确定占空比的) PWM的工作过程如下:首先ARR寄存器里面的值 ...

  8. 全网最详细python中socket套接字send与sendall的区别

    将数据发送到套接字. 套接字必须连接到远程套接字.  返回发送的字节数. 应用程序负责检查是否已发送所有数据; 如果仅传输了一些数据, 则应用程序需要尝试传递剩余数据.(需要用户自己完成) 将数据发送 ...

  9. 在Ubuntu中打开pycharm步骤:

    在pycharm的bin文件夹中打开终端,包含pycharm.sh文件的,输入“sh pycharm.sh",如下图所示: 创建工程和windows环境下相同. 结束关掉pycharm 终端 ...

  10. loj2016 「SCOI2016」美味

    trie 树思想运用到主席树上orz #include <iostream> #include <cstdio> using namespace std; int n, m, ...