flappy bird

来源:互联网 发布:直播电影的软件 编辑:程序博客网 时间:2024/04/29 10:39
#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 = 1, C_Gold = 0, C_Ag = 0, Score = 0, Delay_time = 1000, Max_blank = 9, Distance = 18;  
struct Birds  
{  
int x, y;  
int condition;  
};  
Birds *Bird = (Birds*)malloc(sizeof(Birds));  
struct Bg  
{  
int x, y;  
int l_blank;  
int reward[9];  
Bg *pri;  
Bg *next;  
};  
Bg *Bg1 = new Bg[sizeof(Bg)];  
void Position(int x, int y)  
{  
COORD pos = { x - 1, y - 1 };  
HANDLE Out = GetStdHandle(STD_OUTPUT_HANDLE);  
SetConsoleCursorPosition(Out, pos);  
}  
void CreatBird()  
{  
Bird->x = 41;  
Bird->y = 10;  
Bird->condition = 0;  
}  
void CreatBg()  
{  
Bg *Bg2 = (Bg*)malloc(sizeof(Bg));  
Bg1->x = 90; Bg1->y = 8;  
Bg2->x = Bg1->x + Distance; Bg2->y = 9;  
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(0));  
temp = rand();  
if (temp % 2 == 0)//++  
{  
if ((temp % 4 + p->pri->y + Max_blank - Grade)<21)  
Bgs->y = p->pri->y + temp % 4;  
else  
Bgs->y = p->pri->y;  
}  
else  
{  
if ((p->pri->y - temp % 4)>2)  
Bgs->y = p->pri->y - temp % 4;  
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 = 0, temp;  
while (++i <= 5)  
{  
if (p->x>-4)  
p = p->next;  
else  
{  
srand((int)time(0));  
temp = rand();  
if (temp % 2 == 0)//++  
{  
if ((temp % 4 + p->y + Max_blank - Grade)<21)  
p->y = p->y + temp % 4;  
else  
p->y = p->y;  
p->x = p->pri->x + Distance;  
p->l_blank = Max_blank - Grade;  
}  
else  
{  
if ((p->y - temp % 4)>2)  
p->y = p->y - temp % 4;  
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 = 0;  
while (++i <= 5)  
{  
p->x = p->x - 1;  
p = p->next;  
if (Bird->x == p->x)  
{  
Score += 1;  
if (Score % 4 == 0 && Grade<4)  
Grade++;  
}  
}  
}  
void Prt_Bg(Bg *q)  
{  
Bg *p = q; int i = 0, k, j;  
while (++i <= 5)  
{  
if (p->x>0 && p->x <= 78)  
{  
for (k = 2; k<p->y; k++)  
{  
Position(p->x + 1, 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 + 1;  
for (k; k <= 22; k++)  
{  
Position(p->x + 1, k);  
PR_Box; PR_Box; PR_Blank;  
}  
Position(p->x, 23);  
for (k = 1; k<Distance / 3 - 2; k++)  
PR_Land;  
}  
p = p->next;  
if (p->x == 0)  
{  
for (j = 2; j<p->y; j++)  
{  
Position(p->x + 1, j);  
PR_Blank; PR_Blank;  
}  
Position(p->x + 1, p->y);  
PR_Blank; PR_Blank; PR_Blank;  
Position(p->x + 1, p->y + Max_blank - Grade);  
PR_Blank; PR_Blank; PR_Blank;  
j = j + Max_blank - Grade + 1;  
for (j; j <= 22; j++)  
{  
Position(p->x + 1, j);  
PR_Blank; PR_Blank;  
}  
}  
}  
}  
void PrtBg()  
{  
int i;  
Position(1, 1); PR_Bg_TL;  
Position(79, 1); PR_Bg_TR;  
Position(1, 24); PR_Bg_DL;  
Position(79, 24); PR_Bg_DR;  
for (i = 3; i <= 78; i += 2)  
{  
Position(i, 1); PR_Bg_X;  
Position(i, 24); 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 - 1);  
PR_Blank;  
Position(Bird->x, Bird->y);  
PR_FBird;  
Position(38, 2);  
printf("Score:%d", Score);  
}  
int CheckYN(Bg *q)  
{  
Bg *p = q; int i = 0;  
while (++i <= 5)  
{  
if (Bird->y>23)  
return 0;  
if (Bird->x == p->x&&Bird->y <= p->y)  
return 0;  
if ((Bird->x == p->x || Bird->x == p->x + 1 || Bird->x == p->x + 2) && Bird->y == p->y)  
return 0;  
if (Bird->x == p->x&&Bird->y>p->y + p->l_blank)  
return 0;  
if ((Bird->x == p->x || Bird->x == p->x + 1 || Bird->x == p->x + 2) && Bird->y == p->y + p->l_blank)  
return 0;  
p = p->next;  
}  
return 1;  
}  
void Prtfirst()  
{  
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(" ■■■ 欢迎各路大神与我探讨C、C++、VB、PHP、C#\n");  
printf(" ■■\n");  
printf(" ■■\n");  
printf(" ■■ ■■■ 【无版权,随意修改】\n");  
printf(" ■■ ■■\n");  
printf(" ■■ Ф ■■\n");  
printf(" ■■ ■■\n");  
printf(" ■■ ■■\n");  
printf(" ■■ ■■\n");  
printf(" ■■ ■■\n");  
printf(" ┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳\n");  
system("pause");  
Position(1, 1);  
int i = 0;  
while (i++<40 * 25)  
PR_Blank;  
}  
int main()  
{  
int i = 0; char ch;  
Prtfirst();  
PrtBg();  
CreatBg();  
InsertBg(Bg1);  
InsertBg(Bg1);  
InsertBg(Bg1);  
CreatBird();  
while (1)  
{  
if (!CheckYN(Bg1))  
break;  
Check_Bg(Bg1);  
Prt_Bg(Bg1);  
PrtBird();  
Loop_Bg(Bg1);  
Bird->y = Bird->y + 1;  
if (GetAsyncKeyState(VK_UP))  
{  
Position(Bird->x, Bird->y - 1);  
PR_Blank;  
Bird->y = Bird->y - 4;  
}  
while (i++<500);  
{ Sleep(100);  
}  
i = 0;  
}  
Position(38, 10);  
printf("You Lost!");  
Position(1, 25);  
system("pause");  
return 0;  
}  
0 0
原创粉丝点击