#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在此。

最新文章

  1. Jenkins入门系列之——02第二章 Jenkins安装与配置
  2. 08.C# System.Nulable&lt;T&gt;和空引用操作符(四章4.2-4.4)
  3. 【leetcode】Implement strStr()
  4. 二分图匹配(KM算法)n^4 分类: ACM TYPE 2014-10-04 11:36 88人阅读 评论(0) 收藏
  5. SQL Server2012连接SQL Server2000完美解决方案
  6. Eclipse 整合cvs教程及遇到的问题
  7. zookeeper的安装与部署-伪集群
  8. Linux基础(八)
  9. CentOS7安装GitLab、汉化、邮箱配置及使用
  10. 第七届C/C++B-方格填数 DFS
  11. DevExtreme 学习应用[3]
  12. 在ASP.NET 中检测手机浏览器(转)
  13. poj 3335 Rotating Scoreboard(半平面交)
  14. Hdoj 1253.胜利大逃亡 题解
  15. POJ2676 Sudoku 舞蹈链 DLX
  16. POSTGRESQL中ERROR: recursive query &quot;t&quot; column 2 has type character varying(150) in non-recursive term but type character varying overall
  17. Android-Java-构造函数间调用&amp;this内存图
  18. php 对象教程
  19. mysql安装与卸载(非绿色版)
  20. js中用来操作数组的相关的方法

热门文章

  1. pandas删除及其映射修改操作。
  2. char与varchar的区别与联系
  3. thinkcmf5增加微信管理app笔记
  4. PHP GD库---之头像合成九宫格
  5. IE6 单文件绿色版
  6. luogu2153 [SDOI2009]晨跑
  7. iOS开发-NSLog不打印设置 Prefix
  8. Pycharm 简单设置
  9. 如何用jquery+json来写页面
  10. install and config redis on ubuntu14.04