国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C++ > 正文

C語(yǔ)言實(shí)現(xiàn)Flappy Bird小游戲

2020-05-23 13:22:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)Flappy Bird小游戲的具體代碼,供大家參考,具體內(nèi)容如下

#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<time.h>#include<Windows.h>/********函數(shù)變量聲明********/#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;typedef struct Birds {  int x, y;  int condition;}Birds; Birds * Bird; typedef struct Bg {  int x, y;  int l_blank;  int reward[9];  struct Bg * pri;  struct Bg * next;}Bg;Bg * Bg1; 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;  }}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語(yǔ)言版 Flappy Bird/n");  printf(" ■■ ■■ 瞎搞人:yyposs/n");  printf(" ■■ ■■ 瞎搞日期:2014.2/n");  printf(" ■■ ■■ 耗時(shí):4小時(shí)/n");  printf(" ■■■ ■■ 游戲說(shuō)明:/n");  printf(" ■■ 1-按上箭頭使鳥(niǎo)起飛/n");  printf(" ■■ 2-等級(jí)越高,難度越大!/n");  printf(" Ю ■■■/n");  printf("/n");  printf(" ■■■ 歡迎各路大神一起探討/n");  printf(" ■■/n");  printf(" ■■/n");  printf(" ■■ ■■■ 【無(wú)版權(quán),隨意修改】/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;  Bird = (Birds * ) malloc(sizeof(Birds));  Bg1 = (Bg * ) malloc(sizeof(Bg));  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");}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宝丰县| 浏阳市| 西峡县| 资源县| 方正县| 延津县| 新野县| 黄石市| 剑河县| 龙门县| 卢氏县| 锡林郭勒盟| 陆良县| 长兴县| 康保县| 芦山县| 衢州市| 山东省| 芒康县| 偃师市| 刚察县| 遂昌县| 临颍县| 中山市| 从化市| 苏尼特右旗| 澜沧| 开封县| 金华市| 且末县| 周至县| 兴仁县| 隆安县| 德惠市| 正镶白旗| 鸡东县| 南川市| 湘潭县| 新兴县| 丽水市| 玉屏|