zoukankan      html  css  js  c++  java
  • Flappy bird源代码(略吊)

     #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("══════════════════════════════════════
    ");
    printf(" ■■ ■■
    ");
    printf(" ■■ ■■
    ");
    printf(" ■■ ■■ C语言版 Flappy Bird
    ");
    printf(" ■■ ■■ 瞎搞人:yyposs
    ");
    printf(" ■■ ■■ 瞎搞日期:2014.2
    ");
    printf(" ■■ ■■ 耗时:4小时
    ");
    printf(" ■■■ ■■ 游戏说明:
    ");
    printf(" ■■ 1-按上箭头使鸟起飞
    ");
    printf(" ■■ 2-等级越高,难度越大!
    ");
    printf(" Ю ■■■
    ");
    printf("
    ");
    printf(" ■■■ 欢迎各路大神与我探讨C、C++、VB、PHP、C#
    ");
    printf(" ■■
    ");
    printf(" ■■
    ");
    printf(" ■■ ■■■ 【无版权,随意修改】
    ");
    printf(" ■■ ■■
    ");
    printf(" ■■ Ф ■■
    ");
    printf(" ■■ ■■
    ");
    printf(" ■■ ■■
    ");
    printf(" ■■ ■■
    ");
    printf(" ■■ ■■
    ");
    printf(" ┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳
    ");
    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");
    
    
    }

  • 相关阅读:
    Android平台架构及特性
    MySQL 数据库性能优化之索引优化
    排序自己总结
    存储过程中“ 警告: 聚合或其他 SET 操作消除了 Null 值” 导致错误的解决
    存储过程的output及return的区别
    如果ssh端口转发时候g没有效果解决方案
    sql语句显示复选内容, indication 为复选框的累计value(整数),显示所有的
    kprfakesu.c Linux su密码欺骗 源码
    Unix/Linux上的后门技术和防范
    iis7应用程序池经常自动停止如何解决?
  • 原文地址:https://www.cnblogs.com/oversea201405/p/3767033.html
Copyright © 2011-2022 走看看