91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

2048小游戲怎么使用C語言實現

發布時間:2021-05-28 12:27:36 來源:億速云 閱讀:183 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關2048小游戲怎么使用C語言實現,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

本文實例為大家分享了C語言實現2048游戲的具體代碼,供大家參考,具體內容如下

環境運行 vc6.0 ,cpp文件。

基本上是c寫的,但是改變字體顏色,在控制臺移動光標等等好像不是c中的。

2048小游戲怎么使用C語言實現2048小游戲怎么使用C語言實現

2048小游戲怎么使用C語言實現

代碼:

#include<time.h> 
#include<stdlib.h> 
#include<conio.h> 
#include<stdio.h> 
#include<windows.h> 
#define x0 26 
#define y0 1 
HANDLE hOutput=GetStdHandle(STD_OUTPUT_HANDLE); 
/*顯示聲明*/ 
void p(int*a,int i,int x,int y); 
/*部分刷新聲明*/ 
void shua(void); 
/*勝利畫面測試函數聲明*/ 
int test(void); 
/*字體空格聲明*/ 
void kg(int*a); 
/*畫長條函數的聲明*/ 
void ct(int x,int y,int l,int k,int c); 
/*標題字幕2048*/ 
void p2048(int x,int y); 
/*單個顏色返回值聲明*/ 
int col(int*a); 
/*移動光標*/ 
void gotoxy(int x,int y) 
{ 
 COORD coordScreen={0,0}; 
 coordScreen.X=x; 
 coordScreen.Y=y; 
 SetConsoleCursorPosition(hOutput,coordScreen); 
} 
/*字體顏色*/ 
void textcolor(int color) 
{ 
 SetConsoleTextAttribute(hOutput,color); 
} 
/*顯示函數*/ 
void prin(int*a,int*score,int*scoremax) 
{ 
 int i; 
 for (i = 0; i < 16; i++) 
 { 
  p(a,i,x0,y0); 
 } 
 printf("\n\n       score=%d MAXscore=%d     \n", *score, *scoremax); 
} 
/* 產生隨機數 */ 
int shu(void) 
{ 
 int s = 0; 
 s = 1 + (int)(12.0 * rand() / (RAND_MAX + 1.0)); 
 if (s == 12) 
  return 4; 
 else 
  return 2; 
} 
 
/* 決定位置 */ 
int rands(void) 
{ 
 return (int)(16.0 * rand() / (RAND_MAX + 1.0)); 
} 
/* 主函數*/ 
int main(void) 
{ 
 int flag = 0, c = 0, pd = 1, n = 0, i = 0, m = 0, j = 
  0, sj, sj1, sj2, a[16] = { 0 }, b[16] ={0}, x = 0, score = 0, t = 0, jx = 0, scoremax = 0,ks=1,yx=0; 
  char sr,an; 
  //開始畫面 
  p2048(17,1); 
  textcolor(255); 
  gotoxy(35,15); 
  for(;;) 
  { 
   an=getch(); 
  switch(an) 
  { 
  case 72: 
   if(ks==1) 
    ks=0; 
   else 
    ks=1; 
  break; 
  case 80: 
   if(ks==1) 
    ks=0; 
   else 
    ks=1; 
  break; 
  case '\r': 
   yx=1; 
   break; 
  default: 
  break; 
  } 
  if(ks==1) 
   gotoxy(35,15); 
  else 
   gotoxy(34,18); 
  if(ks==1&&yx==1) 
   break; 
  else if(ks==0&&yx==1) 
  { 
  textcolor(240); 
  gotoxy(0,0); 
  for(i=0;i<=500;i++) 
  { 
   printf("  "); 
  } 
  gotoxy(0,0); 
  ct(12,5,58,10,223); 
  gotoxy(13,6); 
  printf("      2048游戲說明"); 
  gotoxy(13,8); 
  printf(" 通過按數字鍵移動數字,合并相同的數字來的取得更大的數。"); 
  gotoxy(13,9); 
  printf(" 得到2048時游戲即勝利,當然您也可以選擇繼續挑戰。"); 
  gotoxy(13,11); 
  printf(" 按鍵操作:"); 
  gotoxy(13,13); 
  printf(" 上:↑ 下:↓ 左:← 右:→ 重新開始:r 退出游戲:e"); 
  textcolor(240); 
  printf("\n\n\n\n\n               I know "); 
  getch(); 
  p2048(17,1); 
  textcolor(255); 
  gotoxy(34,18); 
  } 
  yx=0; 
  } 
  //隱藏光標 
  HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE); 
  CONSOLE_CURSOR_INFO cci; 
  GetConsoleCursorInfo(hOut,&cci); 
  cci.bVisible=FALSE; 
  SetConsoleCursorInfo(hOut,&cci); 
  //刷新畫面 
  textcolor(240); 
  gotoxy(0,0); 
  for(i=0;i<=500;i++) 
  { 
   printf("  "); 
  } 
  gotoxy(0,0); 
  /*設置時間種子*/ 
  srand((int)time(0)); 
  /* 設置初始值 */ 
  sj = rands(); 
  sj1 = rands(); 
  sj2 = rands(); 
  for (;;) 
  { 
   if (sj == sj1 || sj == sj2 || sj1 == sj2) 
   { 
    sj1 = rands(); 
    sj2 = rands(); 
   } 
   else 
    break; 
  } 
  a[sj] = shu(); 
  a[sj1] = shu(); 
  a[sj2] = shu(); 
  /*顯示*/ 
  prin(a,&score,&scoremax); 
  for (;;) 
  { 
   /* 無回顯輸入 */ 
   sr = getch(); 
   /* scanf("%d",&n); *//* 記錄之前的位置,將用以比較移動是否有效 */ 
   for (j = 0; j < 16; j++) 
    b[j] = a[j]; 
   switch (sr) 
   { 
    /* 向上移動 */ 
   case 72: 
    /* 全部移到上邊 */ 
    for (j = 0; j < 4; j++) 
    { 
     for (c = 0; c < 3; c++) 
     { 
      if (a[j] == 0) 
      { 
       a[j] = a[j + 4]; 
       a[j + 4] = 0; 
      } 
      if (a[j + 4] == 0) 
      { 
       a[j + 4] = a[j + 8]; 
       a[j + 8] = 0; 
      } 
      if (a[j + 8] == 0) 
      { 
       a[j + 8] = a[j + 12]; 
       a[j + 12] = 0; 
      } 
     } 
     /* 移到上面后的合并操作 */ 
     if (a[j] == a[j + 4]) 
     { 
      a[j] = a[j] * 2; 
      score = score + a[j]; 
      a[j + 4] = a[j + 8]; 
      a[j + 8] = a[j + 12]; 
      a[j + 12] = 0; 
      if (a[j + 4] == a[j + 8]) 
      { 
       a[j + 4] = 2 * a[j + 4]; 
       score = score + a[j + 4]; 
       a[j + 8] = 0; 
      } 
     } 
     else if (a[j + 4] == a[j + 8]) 
     { 
      a[j + 4] = 2 * a[j + 4]; 
      score = score + a[j + 4]; 
      a[j + 8] = a[j + 12]; 
      a[j + 12] = 0; 
     } 
     else if (a[j + 8] == a[j + 12]) 
     { 
      a[j + 8] = 2 * a[j + 8]; 
      score = score + a[j + 8]; 
      a[j + 12] = 0; 
     } 
     else; 
    } 
    break; 
    /* 向下移動 */ 
   case 80: 
    /* 全部移動到下面 */ 
    for (j = 12; j < 16; j++) 
    { 
     for (c = 0; c < 3; c++) 
     { 
      if (a[j] == 0) 
      { 
       a[j] = a[j - 4]; 
       a[j - 4] = 0; 
      } 
      if (a[j - 4] == 0) 
      { 
       a[j - 4] = a[j - 8]; 
       a[j - 8] = 0; 
      } 
      if (a[j - 8] == 0) 
      { 
       a[j - 8] = a[j - 12]; 
       a[j - 12] = 0; 
      } 
     } 
     /* 移到下面后的合并操作 */ 
     if (a[j] == a[j - 4]) 
     { 
      a[j] = a[j] * 2; 
      score = score + a[j]; 
      a[j - 4] = a[j - 8]; 
      a[j - 8] = a[j - 12]; 
      a[j - 12] = 0; 
      if (a[j - 4] == a[j - 8]) 
      { 
       a[j - 4] = 2 * a[j - 4]; 
       score = score + a[j - 4]; 
       a[j - 8] = 0; 
      } 
     } 
     else if (a[j - 4] == a[j - 8]) 
     { 
      a[j - 4] = 2 * a[j - 4]; 
      score = score + a[j - 4]; 
      a[j - 8] = a[j - 12]; 
      a[j - 12] = 0; 
     } 
     else if (a[j - 8] == a[j - 12]) 
     { 
      a[j - 8] = 2 * a[j - 8]; 
      score = score + a[j - 8]; 
      a[j - 12] = 0; 
     } 
     else; 
    } 
    break; 
    /* 向左移動 */ 
   case 75: 
    /* 全部移動到左面 */ 
    for (j = 0; j <= 12; j = j + 4) 
    { 
     for (c = 0; c < 3; c++) 
     { 
      if (a[j] == 0) 
      { 
       a[j] = a[j + 1]; 
       a[j + 1] = 0; 
      } 
      if (a[j + 1] == 0) 
      { 
       a[j + 1] = a[j + 2]; 
       a[j + 2] = 0; 
      } 
      if (a[j + 2] == 0) 
      { 
       a[j + 2] = a[j + 3]; 
       a[j + 3] = 0; 
      } 
     } 
     /* 移到左面后的合并操作 */ 
     if (a[j] == a[j + 1]) 
     { 
      a[j] = a[j] * 2; 
      score = score + a[j]; 
      a[j + 1] = a[j + 2]; 
      a[j + 2] = a[j + 3]; 
      a[j + 3] = 0; 
      if (a[j + 1] == a[j + 2]) 
      { 
       a[j + 1] = 2 * a[j + 1]; 
       score = score + a[j + 1]; 
       a[j + 2] = 0; 
      } 
     } 
     else if (a[j + 1] == a[j + 2]) 
     { 
      a[j + 1] = 2 * a[j + 1]; 
      score = score + a[j + 1]; 
      a[j + 2] = a[j + 3]; 
      a[j + 3] = 0; 
     } 
     else if (a[j + 2] == a[j + 3]) 
     { 
      a[j + 2] = 2 * a[j + 2]; 
      score = score + a[j + 2]; 
      a[j + 3] = 0; 
     } 
     else; 
    } 
    break; 
    /* 向右移動 */ 
   case 77: 
    /* 全部移動到右面 */ 
    for (j = 3; j <= 16; j = j + 4) 
    { 
     for (c = 0; c < 3; c++) 
     { 
      if (a[j] == 0) 
      { 
       a[j] = a[j - 1]; 
       a[j - 1] = 0; 
      } 
      if (a[j - 1] == 0) 
      { 
       a[j - 1] = a[j - 2]; 
       a[j - 2] = 0; 
      } 
      if (a[j - 2] == 0) 
      { 
       a[j - 2] = a[j - 3]; 
       a[j - 3] = 0; 
      } 
     } 
     /* 移到右面后的合并操作 */ 
     if (a[j] == a[j - 1]) 
     { 
      a[j] = a[j] * 2; 
      score = score + a[j]; 
      a[j - 1] = a[j - 2]; 
      a[j - 2] = a[j - 3]; 
      a[j - 3] = 0; 
      if (a[j - 1] == a[j - 2]) 
      { 
       a[j - 1] = 2 * a[j - 1]; 
       score = score + a[j - 1]; 
       a[j - 2] = 0; 
      } 
     } 
     else if (a[j - 1] == a[j - 2]) 
     { 
      a[j - 1] = 2 * a[j - 1]; 
      score = score + a[j - 1]; 
      a[j - 2] = a[j - 3]; 
      a[j - 3] = 0; 
     } 
     else if (a[j - 2] == a[j - 3]) 
     { 
      a[j - 2] = 2 * a[j - 2]; 
      score = score + a[j - 2]; 
      a[j - 3] = 0; 
     } 
     else; 
    } 
    break; 
    /* 重新開始 */ 
   case 'r': 
    for (j = 0; j < 16; j++) 
     a[j] = 0; 
    sj1 = rands(); 
    sj2 = rands(); 
    for (;;) 
    { 
     if (sj1 == sj2) 
     { 
      sj1 = rands(); 
      sj2 = rands(); 
     } 
     else 
      break; 
    } 
    a[sj1] = shu(); 
    a[sj2] = shu(); 
    flag = 0; 
    score = 0; 
    jx = 0; 
    break; 
    /* 退出 */ 
   case 'e': 
    shua(); 
    ct(32,19,15,3,207); 
    printf(" 游戲已退出!"); 
    textcolor(255); 
    gotoxy(0,0); 
    getch(); 
    return 0; 
    break; 
    /* 其他情況(刷新) */ 
   default: 
    ; 
    break; 
  }       
  /*windows下的系統清屏函數*/ 
  //system ("cls"); 
  /* 判斷最高分 */ 
  if (score > scoremax) 
   scoremax = score; 
  /* 判斷是否勝利(是否含有2048) */ 
  for (j = 0; j < 16; j++) 
  { 
   if (a[j] == 2048 && jx == 0) 
   { 
    /* 勝利時輸出游戲結果 */ 
    /*顯示*/ 
    prin(a,&score,&scoremax); 
    shua(); 
    ct(20,19,15,3,207); 
    printf(" 游戲勝利!"); 
    textcolor(159); 
    gotoxy(38,19); 
    printf(" Continue    "); 
    textcolor(239); 
    gotoxy(49,20); 
    printf(" Restart "); 
    textcolor(175); 
    gotoxy(49,21); 
    printf(" Exit  "); 
    t=2; 
    an=75; 
    yx=0; 
    for(;;) 
    { 
     an=getch(); 
     switch(an) 
     { 
     case 72: 
      if(t==2) 
      { 
       t=3; 
     textcolor(240); 
     gotoxy(36,21); 
     printf("       "); 
     textcolor(175); 
     gotoxy(38,21); 
     printf(" Exit     "); 
     textcolor(240); 
     gotoxy(36,19); 
     printf("       "); 
     textcolor(159); 
     gotoxy(47,19); 
     printf("  Continue "); 
     textcolor(240); 
     gotoxy(36,20); 
     printf("       "); 
     textcolor(239); 
     gotoxy(49,20); 
     printf(" Restart "); 
      } 
      else if(t==1) 
      { 
       t=2; 
       textcolor(240); 
     gotoxy(36,19); 
     printf("       "); 
     textcolor(159); 
     gotoxy(38,19); 
     printf(" Continue    "); 
     textcolor(240); 
     gotoxy(36,20); 
     printf("       "); 
     textcolor(239); 
     gotoxy(47,20); 
     printf("  Restart "); 
     textcolor(240); 
     gotoxy(36,21); 
     printf("       "); 
     textcolor(175); 
     gotoxy(49,21); 
     printf(" Exit  "); 
      } 
      else 
      { 
       t=1; 
       textcolor(240); 
     gotoxy(36,20); 
     printf("       "); 
     textcolor(239); 
     gotoxy(38,20); 
     printf(" Restart     "); 
     textcolor(240); 
     gotoxy(36,21); 
     printf("       "); 
     textcolor(175); 
     gotoxy(47,21); 
     printf("  Exit  ");  
     textcolor(240); 
     gotoxy(36,19); 
     printf("       "); 
     textcolor(159); 
     gotoxy(49,19); 
     printf(" Continue "); 
      } 
      break; 
     case 80: 
      if(t==2) 
      { 
       t=1; 
        textcolor(240); 
     gotoxy(36,20); 
     printf("       "); 
     textcolor(239); 
     gotoxy(38,20); 
     printf(" Restart     "); 
     textcolor(240); 
     gotoxy(36,19); 
     printf("       "); 
     textcolor(159); 
     gotoxy(47,19); 
     printf("  Continue "); 
     textcolor(240); 
     gotoxy(36,21); 
     printf("       "); 
     textcolor(175); 
     gotoxy(49,21); 
     printf(" Exit  "); 
      } 
      else if(t==1) 
      { 
       t=3; 
       textcolor(240); 
     gotoxy(36,21); 
     printf("       "); 
     textcolor(175); 
     gotoxy(38,21); 
     printf(" Exit     "); 
     textcolor(240); 
     gotoxy(36,20); 
     printf("       "); 
     textcolor(239); 
     gotoxy(47,20); 
     printf("  Restart "); 
     textcolor(240); 
     gotoxy(36,19); 
     printf("       "); 
     textcolor(159); 
     gotoxy(49,19); 
     printf(" Continue "); 
      } 
      else 
      { 
      t=2; 
      textcolor(240); 
     gotoxy(36,19); 
     printf("       "); 
     textcolor(159); 
     gotoxy(38,19); 
     printf(" Continue    "); 
     textcolor(240); 
     gotoxy(36,21); 
     printf("       "); 
     textcolor(175); 
     gotoxy(47,21); 
     printf("  Exit  ");  
     textcolor(240); 
     gotoxy(36,20); 
     printf("       "); 
     textcolor(239); 
     gotoxy(49,20); 
     printf(" Restart "); 
      } 
      break; 
     case '\r': 
      yx=1; 
      break; 
     } 
     if(yx==1) 
     { 
      yx=0; 
      break; 
     } 
    } 
    shua(); 
    textcolor(255); 
    gotoxy(0,0); 
    /* 重新開始游戲 */ 
    if (t == 1) 
    { 
     shua(); 
     pd = 1; 
     x = 0; 
     for (j = 0; j < 16; j++) 
      a[j] = 0; 
     sj1 = rands(); 
     sj2 = rands(); 
     for (;;) 
     { 
      if (sj1 == sj2) 
      { 
       sj1 = rands(); 
       sj2 = rands(); 
      } 
      else 
       break; 
     } 
     a[sj1] = shu(); 
     a[sj2] = shu(); 
     for (j = 0; j < 16; j++) 
      b[j] = a[j]; 
     flag = 0; 
     score = 0; 
     break; 
    } 
    /* 繼續游戲 */ 
    else if (t == 2) 
    { 
     jx = 1; 
     shua(); 
    } 
    else 
    { 
     shua(); 
     ct(32,19,15,3,207); 
     printf(" 游戲已退出!"); 
     textcolor(255); 
     gotoxy(0,0); 
     getch(); 
     return 0; 
    } 
   } 
  }       
  /* 決定是否產生新的數及其位置以及游戲是否失敗 */ 
  /* flag,pd,x賦初值 */ 
  flag = 0; 
  pd = 1; 
  x = 0; 
  /* 判斷移動后是否有空位:pd=0為有空位,pd=1為無空位 */ 
  for (j = 0; j < 16; j++) 
  { 
   if (a[j] == 0) 
    pd = 0; 
  } 
  /* 移動是否有效:x=1有效,x=0無效 */ 
  for (j = 0; j < 16; j++) 
  { 
   if (a[j] != b[j]) 
   { 
    x = 1; 
    break; 
   } 
  } 
  /* 移動有效時且有空位時產生新數 */ 
  if (pd == 0 && x == 1) 
  { 
   for (;;) 
   { 
    sj = rands(); 
    if (a[sj] == 0) 
    { 
     a[sj] = shu(); 
     break; 
    } 
    else; 
   } 
  } 
  /* 游戲是否失敗的判定 */ 
  /* 移動后無空位 */ 
  else if (pd != 0) 
  { 
   /* 判斷是否還有可合并的項 */ 
   for (j = 0; j < 16; j++) 
   { 
    if (j != 3 && j != 7 && j != 11 && j != 15 && a[j] == a[j + 1]) 
    { 
     flag = flag + 1; 
    } 
    if (j != 12 && j != 13 && j != 14 && j != 15 
     && a[j] == a[j + 4]) 
    { 
     flag = flag + 1; 
    } 
    if (j != 0 && j != 4 && j != 8 && j != 12 && a[j] == a[j - 1]) 
    { 
     flag = flag + 1; 
    } 
    if (j != 0 && j != 1 && j != 2 && j != 3 && a[j] == a[j - 4]) 
    { 
     flag = flag + 1; 
    } 
   }      
   /* 無空位且沒有可合并的項時游戲失敗 */ 
   if (flag == 0) 
   { 
    /* 失敗時輸出游戲結果 */ 
    /*顯示*/ 
    prin(a,&score,&scoremax); 
    shua(); 
    ct(20,19,15,3,271); 
    printf(" 游戲結束!"); 
    textcolor(240); 
    gotoxy(38,19); 
    printf("Whether continue the game ?"); 
    gotoxy(44,21); 
    printf("@Yes  No"); 
    gotoxy(44,21); 
    t=1; 
    an=75; 
    yx=0; 
    for(;;) 
    { 
     an=getch(); 
     switch(an) 
     { 
     case 75: 
      if(t==1) 
      { 
       t=0; 
       gotoxy(53,21); 
       printf("@"); 
       gotoxy(44,21); 
       printf(" "); 
      } 
      else 
      { 
       t=1; 
       gotoxy(44,21); 
       printf("@"); 
       gotoxy(53,21); 
       printf(" "); 
      } 
      break; 
     case 77: 
      if(t==1) 
      { 
       t=0; 
       gotoxy(53,21); 
       printf("@"); 
       gotoxy(44,21); 
       printf(" "); 
 
      } 
      else 
      { 
       t=1; 
       gotoxy(44,21); 
       printf("@"); 
       gotoxy(53,21); 
       printf(" "); 
      } 
      break; 
     case '\r': 
      yx=1; 
      break; 
     } 
     if(yx==1) 
     { 
      yx=0; 
      break; 
     } 
    } 
    shua(); 
    textcolor(255); 
    gotoxy(0,0); 
    if (t == 1) 
    { 
     for (j = 0; j < 16; j++) 
      a[j] = 0; 
     sj=rands(); 
     sj1 = rands(); 
     sj2 = rands(); 
     for (;;) 
     { 
      if (sj1 ==sj2||sj1==sj||sj2==sj) 
      { 
       sj1 = rands(); 
       sj2 = rands(); 
      } 
      else 
       break; 
     } 
     a[sj]=shu(); 
     a[sj1] = shu(); 
     a[sj2] = shu(); 
     score = 0; 
     jx = 0; 
    } 
    else 
    { 
     shua(); 
     ct(32,19,15,3,207); 
     printf(" 游戲已退出!"); 
     textcolor(255); 
     gotoxy(0,0); 
     getch(); 
     return 0; 
    } 
   } 
  } 
  else; 
  /* 顯示結果 */ 
  prin(a,&score,&scoremax); 
 } 
 return 0; 
} 
/*顯示函數*/ 
void p(int*a,int i,int x,int y) 
{ 
 int x1=x,y1=y; 
 textcolor(col(a+i)); 
 x1=x+(i%4)*7; 
 y1=y+(i/4)*4; 
 gotoxy(x1,y1); 
 printf("  "); 
 gotoxy(x1,y1+1); 
 kg(a+i); 
 gotoxy(x1,y1+2); 
 printf("  "); 
 textcolor(240); 
} 
/*字體空格聲明*/ 
void kg(int*a) 
{ 
 if(*a==0) 
  printf("  ",*a); 
 else if(*a<10) 
  printf(" %d ",*a); 
 else if(*a<100) 
  printf(" %d ",*a); 
 else if(*a<1000) 
  printf(" %d ",*a); 
 else if(*a<10000) 
  printf("%d ",*a); 
 else 
  printf("%d",*a); 
} 
/*單個顏色返回值*/ 
int col(int*a) 
{ 
int co=127; 
if(*(a)==0) 
co=127; 
else if(*(a)==2) 
co=143; 
else if(*(a)==4) 
co=191; 
else if(*(a)==8) 
co=175; 
else if(*(a)==16) 
co=239; 
else if(*(a)==32) 
co=223; 
else if(*(a)==64) 
co=207; 
else if(*(a)==128) 
co=95; 
else if(*(a)==256) 
co=159; 
else if(*(a)==512) 
co=63; 
else if(*(a)==1024) 
co=111; 
else if(*(a)==2048) 
co=79; 
else if(*(a)==4096) 
co=287; 
else 
co=271; 
return co; 
} 
/*標題字幕2048*/ 
void p2048(int x,int y) 
{ 
 int i; 
 textcolor(240); 
 gotoxy(0,0); 
 for(i=0;i<=500;i++) 
  { 
   printf("  "); 
  } 
 //2 
 textcolor(207); 
 gotoxy(x,y); 
 printf("   "); 
 gotoxy(x,y+1); 
 printf("   "); 
 gotoxy(x+7,y+2); 
 printf(" "); 
 gotoxy(x+7,y+3); 
 printf(" "); 
 gotoxy(x,y+4); 
 printf("   "); 
 gotoxy(x,y+5); 
 printf("   "); 
 gotoxy(x,y+6); 
 printf(" "); 
 gotoxy(x,y+7); 
 printf(" "); 
 gotoxy(x,y+8); 
 printf("   "); 
 gotoxy(x,y+9); 
 printf("   "); 
 //0 
 textcolor(239); 
 gotoxy(x+13,y); 
 printf("   "); 
 gotoxy(x+13,y+1); 
 printf("   "); 
 gotoxy(x+13,y+2); 
 printf(" "); 
 gotoxy(x+13+7,y+2); 
 printf(" "); 
 gotoxy(x+13,y+3); 
 printf(" "); 
 gotoxy(x+13+7,y+3); 
 printf(" "); 
 gotoxy(x+13,y+4); 
 printf(" "); 
 gotoxy(x+13+7,y+4); 
 printf(" "); 
 gotoxy(x+13,y+5); 
 printf(" "); 
 gotoxy(x+13+7,y+5); 
 printf(" "); 
 gotoxy(x+13,y+6); 
 printf(" "); 
 gotoxy(x+13+7,y+6); 
 printf(" "); 
 gotoxy(x+13,y+7); 
 printf(" "); 
 gotoxy(x+13+7,y+7); 
 printf(" "); 
 gotoxy(x+13,y+8); 
 printf("   "); 
 gotoxy(x+13,y+9); 
 printf("   "); 
 //4 
 textcolor(159); 
 gotoxy(x+26,y); 
 printf(" "); 
 gotoxy(x+26+7,y); 
 printf(" "); 
 gotoxy(x+26,y+1); 
 printf(" "); 
 gotoxy(x+26+7,y+1); 
 printf(" "); 
 gotoxy(x+26,y+2); 
 printf(" "); 
 gotoxy(x+26+7,y+2); 
 printf(" "); 
 gotoxy(x+26,y+3); 
 printf(" "); 
 gotoxy(x+26+7,y+3); 
 printf(" "); 
 gotoxy(x+26,y+4); 
 printf("   "); 
 gotoxy(x+26,y+5); 
 printf("   "); 
 gotoxy(x+26,y+6); 
 printf(" "); 
 gotoxy(x+26,y+7); 
 printf(" "); 
 gotoxy(x+26,y+8); 
 printf(" "); 
 gotoxy(x+26,y+9); 
 printf(" "); 
 //8 
 textcolor(175); 
 for(i=0;i<10;i++) 
 { 
 gotoxy(x+39,y+i); 
 printf("   "); 
 } 
 textcolor(240); 
 gotoxy(x+42,y+2); 
 printf(" "); 
 gotoxy(x+42,y+3); 
 printf(" "); 
 gotoxy(x+42,y+6); 
 printf(" "); 
 gotoxy(x+42,y+7); 
 printf(" "); 
 //長條 
  ct(35,15,20,1,240); 
  printf(" Game Sart"); 
  ct(35,18,20,1,240); 
  printf("How to play"); 
  printf("\n"); 
  printf("\n\n\n               Made by Mr Yan"); 
  gotoxy(35-25,15); 
  textcolor(255); 
  gotoxy(0,0); 
} 
/*畫長條函數*/ 
void ct(int x,int y,int l,int k,int c) 
{ 
 int i=0,j=0; 
 textcolor(c); 
 gotoxy(x,y); 
 for(i=0;i<k;i++) 
 { 
 gotoxy(x,y+i); 
 for(j=0;j<l;j++) 
 { 
 printf(" "); 
 } 
 } 
 gotoxy(x+1,y+k/2); 
} 
void shua(void) 
{ 
 gotoxy(0,18); 
 textcolor(255); 
 printf("                 \n"); 
 printf("                 \n"); 
 printf("                 \n"); 
 printf("                 \n"); 
 printf("                 \n"); 
 printf("                 \n"); 
 gotoxy(0,0); 
} 
/*勝利畫面測試函數*/ 
int test(void) 
{ 
 int i,t,yx; 
 char an; 
  textcolor(240); 
  gotoxy(0,0); 
  for(i=0;i<=500;i++) 
  { 
   printf("  "); 
  } 
  gotoxy(0,0); 
  HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE); 
  CONSOLE_CURSOR_INFO cci; 
  GetConsoleCursorInfo(hOut,&cci); 
  cci.bVisible=FALSE; 
  SetConsoleCursorInfo(hOut,&cci); 
    //printf("\n游戲勝利!t\n重新開始游戲請按1\n繼續游戲請按2\n退出請按其他鍵3\n"); 2 1 3 
                      
/* 
 2 繼續選中 textcolor(240); 
     gotoxy(36,19); 
     printf("       "); 
     textcolor(159); 
     gotoxy(38,19); 
     printf(" Continue    "); 
 
 2 繼續平常 textcolor(240); 
     gotoxy(36,19); 
     printf("       "); 
     textcolor(159); 
     gotoxy(49,19); 
     printf(" Continue "); 
 
 1 重新選中 textcolor(240); 
     gotoxy(36,20); 
     printf("       "); 
     textcolor(239); 
     gotoxy(38,20); 
     printf(" Restart     "); 
 
 1 重新平常 textcolor(240); 
     gotoxy(36,20); 
     printf("       "); 
     textcolor(239); 
     gotoxy(49,20); 
     printf(" Restart "); 
 
 3 退出選中 textcolor(240); 
     gotoxy(36,21); 
     printf("       "); 
     textcolor(175); 
     gotoxy(38,21); 
     printf(" Exit     "); 
 
 3 退出平常 textcolor(240); 
     gotoxy(36,21); 
     printf("       "); 
     textcolor(175); 
     gotoxy(49,21); 
     printf(" Exit  "); 
   //  0000000000000000000000000 24  
  */ 
    shua(); 
    ct(20,19,15,3,207); 
    printf(" 游戲勝利!"); 
    textcolor(159); 
    gotoxy(38,19); 
    printf(" Continue    "); 
 
    textcolor(239); 
    gotoxy(49,20); 
    printf(" Restart "); 
    textcolor(175); 
    gotoxy(49,21); 
    printf(" Exit  "); 
    t=2; 
    an=75; 
    yx=0; 
    for(;;) 
    { 
     an=getch(); 
     switch(an) 
     { 
     case 72: 
      if(t==2) 
      { 
       t=3; 
     textcolor(240); 
     gotoxy(36,21); 
     printf("       "); 
     textcolor(175); 
     gotoxy(38,21); 
     printf(" Exit     "); 
     textcolor(240); 
     gotoxy(36,19); 
     printf("       "); 
     textcolor(159); 
     gotoxy(47,19); 
     printf("  Continue "); 
     textcolor(240); 
     gotoxy(36,20); 
     printf("       "); 
     textcolor(239); 
     gotoxy(49,20); 
     printf(" Restart "); 
      } 
      else if(t==1) 
      { 
       t=2; 
       textcolor(240); 
     gotoxy(36,19); 
     printf("       "); 
     textcolor(159); 
     gotoxy(38,19); 
     printf(" Continue    "); 
     textcolor(240); 
     gotoxy(36,20); 
     printf("       "); 
     textcolor(239); 
     gotoxy(47,20); 
     printf("  Restart "); 
     textcolor(240); 
     gotoxy(36,21); 
     printf("       "); 
     textcolor(175); 
     gotoxy(49,21); 
     printf(" Exit  "); 
      } 
      else 
      { 
       t=1; 
       textcolor(240); 
     gotoxy(36,20); 
     printf("       "); 
     textcolor(239); 
     gotoxy(38,20); 
     printf(" Restart     "); 
     textcolor(240); 
     gotoxy(36,21); 
     printf("       "); 
     textcolor(175); 
     gotoxy(47,21); 
     printf("  Exit  ");  
     textcolor(240); 
     gotoxy(36,19); 
     printf("       "); 
     textcolor(159); 
     gotoxy(49,19); 
     printf(" Continue "); 
      } 
      break; 
     case 80: 
      if(t==2) 
      { 
       t=1; 
        textcolor(240); 
     gotoxy(36,20); 
     printf("       "); 
     textcolor(239); 
     gotoxy(38,20); 
     printf(" Restart     "); 
     textcolor(240); 
     gotoxy(36,19); 
     printf("       "); 
     textcolor(159); 
     gotoxy(47,19); 
     printf("  Continue "); 
     textcolor(240); 
     gotoxy(36,21); 
     printf("       "); 
     textcolor(175); 
     gotoxy(49,21); 
     printf(" Exit  "); 
      } 
      else if(t==1) 
      { 
       t=3; 
       textcolor(240); 
     gotoxy(36,21); 
     printf("       "); 
     textcolor(175); 
     gotoxy(38,21); 
     printf(" Exit     "); 
     textcolor(240); 
     gotoxy(36,20); 
     printf("       "); 
     textcolor(239); 
     gotoxy(47,20); 
     printf("  Restart "); 
     textcolor(240); 
     gotoxy(36,19); 
     printf("       "); 
     textcolor(159); 
     gotoxy(49,19); 
     printf(" Continue "); 
      } 
      else 
      { 
      t=2; 
      textcolor(240); 
     gotoxy(36,19); 
     printf("       "); 
     textcolor(159); 
     gotoxy(38,19); 
     printf(" Continue    "); 
     textcolor(240); 
     gotoxy(36,21); 
     printf("       "); 
     textcolor(175); 
     gotoxy(47,21); 
     printf("  Exit  ");  
     textcolor(240); 
     gotoxy(36,20); 
     printf("       "); 
     textcolor(239); 
     gotoxy(49,20); 
     printf(" Restart "); 
      } 
      break; 
     case '\r': 
      yx=1; 
      break; 
     } 
     if(yx==1) 
     { 
      yx=0; 
      break; 
     } 
    } 
    shua(); 
    textcolor(255); 
    gotoxy(0,0); 
    textcolor(240); 
    if(t==2) 
     printf("Continue  "); 
    else if(t==1) 
     printf("Restart  "); 
    else 
     printf("Exit   "); 
    return 0; 
}

關于“2048小游戲怎么使用C語言實現”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳谷县| 旺苍县| 崇文区| 大城县| 永定县| 洱源县| 九龙城区| 武邑县| 樟树市| 武汉市| 湛江市| 安阳市| 平谷区| 富平县| 石狮市| 焉耆| 合川市| 德惠市| 南木林县| 惠安县| 虞城县| 西和县| 嘉定区| 重庆市| 普陀区| 应城市| 丘北县| 双桥区| 丰城市| 襄樊市| 洪江市| 汉川市| 南阳市| 苍南县| 兴化市| 二连浩特市| 晋城| 鹤庆县| 陈巴尔虎旗| 正镶白旗| 大港区|