亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言實現2048游戲

2020-01-26 13:59:37
字體:
來源:轉載
供稿:網友

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

具有以下特點:

1.linux下完成

2.非堵塞鍵盤讀取

3.隨機生成2和4

#include <stdio.h> #include <stdlib.h> #include <unistd.h>  #define TTY_PATH "/dev/tty" #define STTY_ON "stty raw -echo -F" #define STTY_OFF "stty -raw echo -F"  int map[4][4];  typedef struct node {  int x;  int y;  int num; }Node; Node node;  void init_map()//初始化全部方格 {  int i, j;  for(i=0; i<4; i++)   for(j=0; j<4; j++)    map[i][j] = 0; }  void new_node()//新增方格,避免重復。 {  int x = 0, y = 0 ,num = 0;  do{  int fals = 1;  int i,j;  for(i=0; i<4; i++)   for(j=0; j<4; j++)    if(map[i][j] == 0)     fals =0;  if(fals)//新方格無法被填入,游戲失敗  {   system("clear");   printf("game over!!!!!!!!!!!/n");   exit(0);  }   x = rand() % 4;  y = rand() % 4;  num = rand() % 2;   if(num == 0)   num = 3;  else if(num == 1)   num = 5;   }while(map[x][y] > 0);   node.x = x;   node.y = y;   node.num = num;   map[x][y] = node.num; }  void show()//彩色打印數字 {  int i, j;  for(i=0; i<4; i++)  {   for(j=0; j<4; j++)   {    if(map[i][j]%2 == 1)    {     map[i][j] -= 1;     printf("/33[31m%d/33[0m/t",map[i][j]);    }    else if(map[i][j] == 0)    {     printf("%d/t",map[i][j]);    }    else if(map[i][j] == 2)    {     printf("/33[32m%d/33[0m/t",map[i][j]);    }    else if(map[i][j] == 4)    {     printf("/33[33m%d/33[0m/t",map[i][j]);    }    else if(map[i][j] == 8)    {     printf("/33[34m%d/33[0m/t",map[i][j]);    }    else if(map[i][j] == 16)    {     printf("/33[35m%d/33[0m/t",map[i][j]);    }    else if(map[i][j] == 32)    {     printf("/33[36m%d/33[0m/t",map[i][j]);    }    else    {     printf("/33[44m%d/33[0m/t",map[i][j]);    }   }   printf("/n");  } } void left() {  int i, j, z, tmp;  for(i=0; i<4; i++)//全體方格左移   for(j=0; j<4; j++)    if(map[i][j] == 0 )     for(z = j + 1; z<4; z++)      if(map[i][z] > 0)      {       tmp = map[i][j];       map[i][j] = map[i][z];       map[i][z] = tmp;       break;      }  for(i=0; i<4; i++)//如果方格數字相同則,相加,通過主函數多次調用,排列好   for(j=0; j<4; j++)    if(map[i][j] > 0 )     for(z = j + 1; z<4; z++)      if(map[i][z] > 0)       if(map[i][z] == map[i][j])       {        map[i][j] *= 2;        map[i][z] = 0;       }else        break;      else       break;    else     break; }  void right() {  int i, j, z, tmp;  for(i=0; i<4; i++)   for(j=3; j>=0; j--)    if(map[i][j] == 0 )     for(z = j-1; z>=0; z--)      if(map[i][z] > 0)      {       tmp = map[i][j];       map[i][j] = map[i][z];       map[i][z] = tmp;       break;      }  for(i=0; i<4; i++)   for(j=3; j>=0; j--)    if(map[i][j] > 0 )     for(z = j-1; z>=0; z--)      if(map[i][z] > 0)       if(map[i][z] == map[i][j])       {        map[i][j] *= 2;        map[i][z] = 0;       }else        break;      else       break;    else     break; } void up() {  int i, j, z, tmp;  for(i=0; i<4; i++)   for(j=0; j<4; j++)    if(map[j][i] == 0 )     for(z = j+1; z<4; z++)      if(map[z][i] > 0)      {       tmp = map[j][i];       map[j][i] = map[z][i];       map[z][i] = tmp;       break;      }  for(i=0; i<4; i++)   for(j=0; j<4; j++)    if(map[j][i] > 0 )     for(z = j+1; z<4; z++)      if(map[z][i] > 0)       if(map[z][i] == map[j][i])       {        map[j][i] *= 2;        map[z][i] = 0;       }else        break;      else       break;    else     break; } void down() {  int i, j, z, tmp;  for(i=0; i<4; i++)   for(j=3; j>=0; j--)    if(map[j][i] == 0 )     for(z = j-1; z>=0; z--)      if(map[z][i] > 0)      {       tmp = map[j][i];       map[j][i] = map[z][i];       map[z][i] = tmp;       break;      }  for(i=0; i<4; i++)   for(j=3; j>=0; j--)    if(map[j][i] > 0 )     for(z = j-1; z>=0; z--)      if(map[z][i] > 0)       if(map[z][i] == map[j][i])       {        map[j][i] *= 2;        map[z][i] = 0;       }else        break;      else       break;    else     break; } void move(char ch) {  switch(ch)  {   case 'a':    left();    break;   case 'd':    right();    break;   case 'w':    up();    break;   case 's':    down();    break;  } }  char in_direct()//非堵塞輸入 {  fd_set fd;  struct timeval tv;  char ch;  FD_ZERO(&fd);  FD_SET(0, &fd);  tv.tv_sec = 0;  tv.tv_usec = 10;  if(select(1, &fd ,NULL, NULL, &tv) > 0)  {     ch = getchar();  }   return ch; } int main() {  srand(time(NULL));  init_map();  new_node();  show();  char ch;  int i=0;  while(1)  {   system(STTY_ON TTY_PATH);   ch = in_direct();   system(STTY_OFF TTY_PATH);   if(ch=='a'||ch=='d'||ch=='s'||ch=='w')   {    system("clear");    for(i=0;i<3;i++)//重復多次才能排序好     move(ch);    new_node();    show();       }   if(ch=='q')//退出游戲   {    system("clear");    printf("game over!!!!!!!!/n");    break;   }   usleep(500000);  }  return 0; } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美专区第一页| 欧美日韩美女在线| 日韩视频精品在线| 韩剧1988在线观看免费完整版| 国产欧美一区二区三区视频| 日韩欧美亚洲国产一区| 亚洲va欧美va国产综合久久| 这里精品视频免费| 成人免费福利视频| 中文字幕亚洲第一| 国产欧美在线看| 久久久免费av| 国产亚洲精品久久久久久777| 欧美激情视频在线| 精品久久久香蕉免费精品视频| 91中文精品字幕在线视频| 久久久精品999| 欧美日韩国产成人高清视频| 中文字幕一区二区精品| 91免费综合在线| 亚洲午夜国产成人av电影男同| 性欧美暴力猛交69hd| 亚洲丝袜一区在线| 国内免费久久久久久久久久久| 国产日韩专区在线| 欧美一区在线直播| 中文字幕日韩欧美精品在线观看| 欧美夫妻性生活xx| 成人黄色在线观看| 国产精品黄视频| 2019中文在线观看| 欧美日韩在线视频一区| 国产一区二区美女视频| 欧美大荫蒂xxx| 成人写真福利网| 亚洲色图五月天| 亚洲男人天堂2019| 欧洲午夜精品久久久| 国内偷自视频区视频综合| 色综合久久久888| 日韩av成人在线观看| 久久久久五月天| 一色桃子一区二区| 久久久久久久一区二区| 久久亚洲精品视频| 久久免费视频观看| 色综久久综合桃花网| 亚洲视频在线免费看| 久久久精品电影| 最新69国产成人精品视频免费| 一区二区三区www| 日韩精品中文字幕久久臀| 中文字幕日韩在线视频| 国外日韩电影在线观看| 国产精品男女猛烈高潮激情| 国产视频自拍一区| 中文字幕欧美日韩精品| 国内成人精品视频| 国产精品96久久久久久又黄又硬| 亚洲人成电影网站色…| 欧美大学生性色视频| 国产69精品久久久久99| 亚洲iv一区二区三区| 色中色综合影院手机版在线观看| 久久亚洲综合国产精品99麻豆精品福利| 2020欧美日韩在线视频| 欧美精品videofree1080p| 国产欧美最新羞羞视频在线观看| 亚洲人成伊人成综合网久久久| 亚洲视频在线视频| 国产人妖伪娘一区91| 久久在线免费观看视频| 欧美人在线观看| 亚洲综合视频1区| 欧美亚州一区二区三区| 欧美日韩国产丝袜另类| 日韩av在线资源| 欧美高清不卡在线| 久久999免费视频| 国产精品丝袜白浆摸在线| 日本精品一区二区三区在线| 国内精品视频一区| 久久久精品在线观看| 中文字幕日韩专区| 日韩av一区在线| 国产精品美女呻吟| 久久久久久久久久婷婷| 亚洲美女动态图120秒| 国产精品三级美女白浆呻吟| 欧美成人小视频| 另类少妇人与禽zozz0性伦| 亚洲欧美国产精品专区久久| 欧美另类极品videosbest最新版本| 欧美性jizz18性欧美| 国内精品美女av在线播放| 欧美性猛交xxxx偷拍洗澡| 日韩欧美在线视频日韩欧美在线视频| 国产www精品| 欧美精品免费看| 日韩精品福利在线| 日韩av最新在线| 国产精品扒开腿做| 欧美午夜丰满在线18影院| 91久久精品在线| 久久久久久一区二区三区| 久久久亚洲影院你懂的| 亚洲女人天堂色在线7777| 69影院欧美专区视频| 亚洲第一网中文字幕| 久久国产加勒比精品无码| 欧美性猛交xxxx乱大交3| 国产精品久久久亚洲| 国产成人精品久久久| 日韩动漫免费观看电视剧高清| 国语对白做受69| 一个人www欧美| 97在线视频国产| 国产精品99久久久久久白浆小说| 影音先锋欧美精品| 日韩欧美aⅴ综合网站发布| 精品呦交小u女在线| 91久久嫩草影院一区二区| 亚洲精品视频在线播放| 久久国产精品久久久久| 九九热这里只有精品6| 国产视频一区在线| 欧美老妇交乱视频| 最近的2019中文字幕免费一页| 国产精品视频999| 久久影视三级福利片| 欧美亚洲第一页| 国产成人综合久久| 国产精品国产自产拍高清av水多| 国外成人在线直播| 亚洲精品在线不卡| 狠狠躁夜夜躁人人躁婷婷91| 亚洲精品之草原avav久久| 日韩久久午夜影院| 亚洲欧美日韩精品久久亚洲区| 久久精品一偷一偷国产| 国产成人精品一区二区| 精品国产精品自拍| 日韩中文字幕视频在线| 欧美精品在线观看| 欧美xxxx18性欧美| 欧美日韩一区二区精品| 91精品啪aⅴ在线观看国产| 色在人av网站天堂精品| 岛国av一区二区三区| 欧美激情国产精品| 亚洲色图13p| 18久久久久久| 一色桃子一区二区| 乱亲女秽乱长久久久| 日韩欧美一区二区在线| 日韩欧美国产骚| 亚洲欧美日韩一区二区在线| 在线视频欧美日韩| 国产精品男人爽免费视频1| 欧美成人国产va精品日本一级| 国产玖玖精品视频| 136fldh精品导航福利| 疯狂做受xxxx欧美肥白少妇| 91av在线网站|