教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教学研究 >

c语言版本flappy bird

来源:网络收集 时间:2024-05-19
导读: 不是我原创 #includestdio.h #includestdlib.h #includeconio.h #includetime.h #includeWindows.h /********函数变量声明********/ #define PR_Box printf(■) #define PR_Gold printf(★) #define PR_Ag printf(☆) #define PR_FBird printf(Ю) #define P

不是我原创

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

}

void 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");

}

c语言版本flappy bird.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1580213.html(转载请注明文章来源)
Copyright © 2020-2021 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)