欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

2048小游戲C語言實(shí)現(xiàn)代碼

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語言|點(diǎn)擊: 次

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

大一時(shí)學(xué)c語言寫的,寫的不好但當(dāng)時(shí)感覺還行。

環(huán)境運(yùn)行 vc6.0 ,cpp文件。

基本上是c寫的,但是改變字體顏色,在控制臺(tái)移動(dòng)光標(biāo)等等好像不是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); 
/*勝利畫面測(cè)試函數(shù)聲明*/ 
int test(void); 
/*字體空格聲明*/ 
void kg(int*a); 
/*畫長(zhǎng)條函數(shù)的聲明*/ 
void ct(int x,int y,int l,int k,int c); 
/*標(biāo)題字幕2048*/ 
void p2048(int x,int y); 
/*單個(gè)顏色返回值聲明*/ 
int col(int*a); 
/*移動(dòng)光標(biāo)*/ 
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); 
}  
/*顯示函數(shù)*/ 
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); 
} 
/* 產(chǎn)生隨機(jī)數(shù) */ 
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)); 
} 
/* 主函數(shù)*/ 
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(" 通過按數(shù)字鍵移動(dòng)數(shù)字,合并相同的數(shù)字來的取得更大的數(shù)。"); 
    gotoxy(13,9); 
    printf(" 得到2048時(shí)游戲即勝利,當(dāng)然您也可以選擇繼續(xù)挑戰(zhàn)。"); 
    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; 
    } 
    //隱藏光標(biāo) 
    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); 
    /*設(shè)置時(shí)間種子*/ 
    srand((int)time(0)); 
    /* 設(shè)置初始值 */ 
    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); *//* 記錄之前的位置,將用以比較移動(dòng)是否有效 */ 
      for (j = 0; j < 16; j++) 
        b[j] = a[j]; 
      switch (sr) 
      { 
        /* 向上移動(dòng) */ 
      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; 
        /* 向下移動(dòng) */ 
      case 80: 
        /* 全部移動(dòng)到下面 */ 
        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; 
        /* 向左移動(dòng) */ 
      case 75: 
        /* 全部移動(dòng)到左面 */ 
        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; 
        /* 向右移動(dòng) */ 
      case 77: 
        /* 全部移動(dòng)到右面 */ 
        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下的系統(tǒng)清屏函數(shù)*/ 
    //system ("cls"); 
    /* 判斷最高分 */ 
    if (score > scoremax) 
      scoremax = score; 
    /* 判斷是否勝利(是否含有2048) */ 
    for (j = 0; j < 16; j++) 
    { 
      if (a[j] == 2048 && jx == 0) 
      { 
        /* 勝利時(shí)輸出游戲結(jié)果 */ 
        /*顯示*/ 
        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; 
        } 
        /* 繼續(xù)游戲 */ 
        else if (t == 2) 
        { 
          jx = 1; 
          shua(); 
        } 
        else 
        { 
          shua(); 
          ct(32,19,15,3,207); 
          printf(" 游戲已退出!"); 
          textcolor(255); 
          gotoxy(0,0); 
          getch(); 
          return 0; 
        } 
      } 
    }             
    /* 決定是否產(chǎn)生新的數(shù)及其位置以及游戲是否失敗 */ 
    /* flag,pd,x賦初值 */ 
    flag = 0; 
    pd = 1; 
    x = 0; 
    /* 判斷移動(dòng)后是否有空位:pd=0為有空位,pd=1為無空位 */ 
    for (j = 0; j < 16; j++) 
    { 
      if (a[j] == 0) 
        pd = 0; 
    } 
    /* 移動(dòng)是否有效:x=1有效,x=0無效 */ 
    for (j = 0; j < 16; j++) 
    { 
      if (a[j] != b[j]) 
      { 
        x = 1; 
        break; 
      } 
    } 
    /* 移動(dòng)有效時(shí)且有空位時(shí)產(chǎn)生新數(shù) */ 
    if (pd == 0 && x == 1) 
    { 
      for (;;) 
      { 
        sj = rands(); 
        if (a[sj] == 0) 
        { 
          a[sj] = shu(); 
          break; 
        } 
        else; 
      } 
    } 
    /* 游戲是否失敗的判定 */ 
    /* 移動(dòng)后無空位 */ 
    else if (pd != 0) 
    { 
      /* 判斷是否還有可合并的項(xiàng) */ 
      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; 
        } 
      }           
      /* 無空位且沒有可合并的項(xiàng)時(shí)游戲失敗 */ 
      if (flag == 0) 
      { 
        /* 失敗時(shí)輸出游戲結(jié)果 */ 
        /*顯示*/ 
        prin(a,&score,&scoremax); 
        shua(); 
        ct(20,19,15,3,271); 
        printf(" 游戲結(jié)束!"); 
        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; 
    /* 顯示結(jié)果 */ 
    prin(a,&score,&scoremax); 
  } 
  return 0; 
} 
/*顯示函數(shù)*/ 
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); 
} 
/*單個(gè)顏色返回值*/ 
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; 
} 
/*標(biāo)題字幕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("  "); 
  //長(zhǎng)條 
   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); 
} 
/*畫長(zhǎng)條函數(shù)*/ 
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); 
} 
/*勝利畫面測(cè)試函數(shù)*/ 
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重新開始游戲請(qǐng)按1\n繼續(xù)游戲請(qǐng)按2\n退出請(qǐng)按其他鍵3\n");  2 1 3 
                                            
/* 
  2  繼續(xù)選中 textcolor(240); 
         gotoxy(36,19); 
         printf("              "); 
         textcolor(159); 
         gotoxy(38,19); 
         printf(" Continue        "); 
 
  2  繼續(xù)平常 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; 
} 

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

上一篇:C語言中system()執(zhí)行cmd命令打開關(guān)閉程序的方法

欄    目:C語言

下一篇:C++發(fā)郵件簡(jiǎn)單實(shí)例詳解

本文標(biāo)題:2048小游戲C語言實(shí)現(xiàn)代碼

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/796.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有