国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用C語言實現(xiàn)2048項目

C語言編程學(xué)習(xí)基地 ? 來源:C語言編程學(xué)習(xí)基地 ? 作者:C語言編程學(xué)習(xí)基地 ? 2021-11-21 16:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)——《2048項目》文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下!

游戲介紹:

《2048》一款益智小游戲,游戲的規(guī)則十分簡單,是一款簡單易上手的數(shù)字小游戲。游戲的規(guī)則很簡單,你需要控制所有方塊向同一個方向運(yùn)動,兩個相同數(shù)字方塊撞在一起之后合并成為他們的和,每次操作之后會隨機(jī)生成一個2或者4,最終得到一個“2048”的方塊就算勝利了!

玩法簡單,容易上手!所以這也成為了我們編程學(xué)習(xí)者C語言練習(xí)的一個非常好的小項目,如果你沒有玩過的話那么可以先去玩一下的,會玩的話對于項目邏輯的理解也是非常有幫助的!接下來就讓我們一起來看看吧!

插件:圖形庫插件easyX,涉及圖片素材可以自行百度找也可以關(guān)注文末領(lǐng)取;

源代碼示例:

#include#include#include#include#include//需要安裝之后,才有這個頭文件#define MAX_GRID 4    //每行格子數(shù)#define GRID_WIDTH 100  //格子寬度#define INTERVAL 15    //間隔#define WIN_SIZE (5*INTERVAL+MAX_GRID*GRID_WIDTH)//窗口大小enum Color //枚舉格子顏色{  zero = RGB(205, 193, 180), //0的顏色  twoTo1 = RGB(238, 228, 218), //2的顏色  twoTo2 = RGB(237, 224, 200), //4的顏色  twoTo3 = RGB(242, 177, 121), //8的顏色  twoTo4 = RGB(245, 149, 99), //16的顏色  twoTo5 = RGB(246, 124, 95), //32的顏色  twoTo6 = RGB(246, 94, 59), //64的顏色  twoTo7 = RGB(242, 177, 121), //128的顏色  twoTo8 = RGB(237, 204, 97), //256的顏色  twoTo9 = RGB(255, 0, 128), //512的顏色  twoTo10 = RGB(145, 0, 72), //1024的顏色  twoTo11 = RGB(242, 17, 158), //2048的顏色  back = RGB(187, 173, 160), //背景顏色};Color arr[13] = { zero, twoTo1, twoTo2, twoTo3, twoTo4, twoTo5, twoTo6, twoTo7, twoTo8, twoTo9, twoTo10, twoTo11, back };//數(shù)據(jù) 二維數(shù)組int map[MAX_GRID][MAX_GRID];int createNum(){  int num = 0;  if (rand() % 10 == 0)  {    num = 4;  }  else  {    num = 2;  }  return num;}void gameInit(){  srand((unsigned)time(NULL));  //隨機(jī)在空白的位置產(chǎn)生兩個整數(shù)  for (int i = 0; i < 5; )  {    //隨機(jī)數(shù) rand() 隨機(jī)獲得一個整數(shù)   0~上萬    int r = rand() % MAX_GRID; //0~3    int c = rand() % MAX_GRID; //0~3    if (map[r][c] == 0)    {      map[r][c] = createNum();      i++;    }      }
}void gameDraw(){  //繪制界面,設(shè)置背景顏色 187,173,160 三原色 set background color  setbkcolor(RGB(187, 173, 160));  //設(shè)置顏色之后需要,清屏(原本的顏色是黑色的,設(shè)置的顏色,被覆蓋了)  cleardevice();//清楚繪圖設(shè)備
  for (int i = 0; i < MAX_GRID; i++)//->y  {    for (int k = 0; k < MAX_GRID; k++)//->x    {      //00 01 02 03       //10 11 12 13      //求出每一個格子的x,y      int x = k*GRID_WIDTH + INTERVAL*(k + 1);      int y = i*GRID_WIDTH + INTERVAL*(i + 1);      //4->2      //32->5      //2^n=map[i][k];  ->log2map[i][k]=n;      int index = (int)log2((float)map[i][k]);      setfillcolor(arr[index]);      //畫矩形:空心矩形,填充矩形,實心矩形,圓角矩形      //solidrectangle(x, y, x + GRID_WIDTH, y + GRID_WIDTH);      solidroundrect(x, y, x + GRID_WIDTH, y + GRID_WIDTH, 15, 15);
      if (map[i][k] != 0)      {        //繪制數(shù)字        //printf("%d", map[i][k]);//輸出到控制臺窗口        //設(shè)置文字大小        settextstyle(50, 0, "黑體");        settextcolor(RGB(163, 73, 164));        setbkmode(TRANSPARENT);//設(shè)置文字背景為透明        //把數(shù)字轉(zhuǎn)成字符串 格式化字符串        char str[10] = "";        sprintf(str, "%d", map[i][k]);        //為了文字居中在格子中間        int textx = textwidth(str) / 2;        int texty = textheight(str) / 2;        int win = GRID_WIDTH / 2;    //格子寬度一半        outtextxy(x + win - textx, y + win - texty, str);      }    }  }}void moveup(){  for (int i = 0; i < MAX_GRID; i++)  {    int temp = 0;    for (int begin = 1; begin < MAX_GRID; begin++)    {      if (map[begin][0] != 0)      {        if (map[temp][i] == 0)        {          map[temp][i] = map[begin][i];          map[begin][i] = 0;        }        else if (map[temp][i] == map[begin][i])        {          map[temp][i] += map[begin][i];          map[begin][i] = 0;          temp++;        }        else        {          map[temp+1][i] = map[begin][i];          if (temp + 1 != begin)          {            map[begin][i] = 0;          }          temp++;        }      }    }  }}void moveDown(){  for (int i = 0; i < MAX_GRID; i++)  {    int temp = MAX_GRID-1;    for (int begin = MAX_GRID-2; begin >=0; begin--)    {      if (map[begin][0] != 0)      {        if (map[temp][i] == 0)        {          map[temp][i] = map[begin][i];          map[begin][i] = 0;        }        else if (map[temp][i] == map[begin][i])        {          map[temp][i] += map[begin][i];          map[begin][i] = 0;          temp--;        }        else        {          map[temp - 1][i] = map[begin][i];          if (temp - 1 != begin)          {            map[begin][i] = 0;          }          temp--;        }      }    }  }}//獲取鍵盤按鍵 _getch(),它不需要按回車確認(rèn)輸入void keyControl(){  switch (_getch())  {  case 'w':  case 'W':  case 72:    moveup();    break;  case 's':  case 'S':  case 80:    moveDown();    break;  case 'a':  case 'A':  case 75:    break;  case 'd':  case 'D':  case 77:    break;  }  printf("key
");}int main(){  //不要控制臺窗口,我要圖形窗口 easyx  initgraph(WIN_SIZE,WIN_SIZE,SHOWCONSOLE);//第一個參數(shù)是寬度,二個高度  gameInit();
  while (1)  {    gameDraw();    keyControl();  }  return 0;}

未完成的數(shù)字部分代碼,大家也可以自己先去想想試試,每一次的思考就是你進(jìn)步的過程!

如果學(xué)習(xí)的過程中有什么問題,以及本項目有什么不懂的地方,都可以來找我交流,我來幫你!

那么今天的分享就到這里了,后續(xù)會更新更多精彩項目或者知識內(nèi)容的,大家要好好學(xué)C語言C++喲~

責(zé)任編輯:haq
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7644

    瀏覽量

    145575
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4968

    瀏覽量

    73960

原文標(biāo)題:C語言項目實戰(zhàn):《2048》零基礎(chǔ)項目!208 行源代碼示例

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    講解C語言代碼的實現(xiàn)過程

    重點講解C語言代碼的實現(xiàn)過程,算法的C語言實現(xiàn)過程具有一般性,通過PID算法的C
    發(fā)表于 01-21 07:58

    C語言實現(xiàn)萬年歷

    C語言實現(xiàn)萬年歷程序的代碼如下:#include int year(int y) { if ((y%4==0) (y%100!=0) || y%400==0) return 366
    發(fā)表于 01-16 08:02

    為什么單片機(jī)還在用C語言編程?

    的缺陷 高級語言存在的目的是可以實現(xiàn)更為優(yōu)化的算法,更多的是為了方便的執(zhí)行方案,但是,高級語言對程序存儲空間的占用要比匯編和C語言多很多。
    發(fā)表于 11-28 07:37

    VSCode + ESP-IDF環(huán)境下給ESP32-S3項目添加頭文件

    VSCode + ESP-IDF環(huán)境下給ESP32-S3項目添加頭文件
    的頭像 發(fā)表于 11-28 07:27 ?2301次閱讀

    請問如何用C語言列舉當(dāng)前所有網(wǎng)口?

    何用C語言列舉當(dāng)前所有網(wǎng)口?
    發(fā)表于 11-25 07:23

    海微科技智能倉庫2.0項目正式啟動

    11月4日,海微智能倉庫2.0項目啟動會在海微智造舉行。項目通過數(shù)字化倉庫頂層設(shè)計與自動化技術(shù)的深度融合,實現(xiàn)了倉庫從 “人力密集”到“智能無人”的跨越。
    的頭像 發(fā)表于 11-07 15:15 ?403次閱讀

    運(yùn)行自己編寫的C語言項目的E203軟件仿真環(huán)境的搭建

    、mywork.verilog等新的文件,并將mywork.verilog文件復(fù)制到E203項目目錄下的riscv-toolsriscv-testsisagenerated目錄下。 4、進(jìn)入E203項目目錄
    發(fā)表于 10-20 06:44

    rt-thread studio中創(chuàng)建不了gd32項目是怎么回事?

    為什么在rt-thread studio中創(chuàng)建一個gd32項目時候,他打開的那個選型芯片型號是,安裝好了,沒有確認(rèn)鍵啊,只有退出sdk管理器,然后就卡在那里了,創(chuàng)建不了gd32的項目
    發(fā)表于 09-15 06:56

    湃睿科技助力金源自動化PLM2.0項目圓滿驗收

    近日,惠州金源智能機(jī)器人有限公司(曾用名:惠州金源精密自動化設(shè)備有限公司,億緯鋰能全資子公司)PLM2.0項目順利通過驗收。這一里程碑式的成果,標(biāo)志著金源自動化在數(shù)字化研發(fā)領(lǐng)域完成了從“數(shù)據(jù)整合”到“全流程協(xié)同”的跨越式升級,為企業(yè)智能化轉(zhuǎn)型注入強(qiáng)勁動力。
    的頭像 發(fā)表于 08-19 16:13 ?823次閱讀
    湃睿科技助力金源自動化PLM2.0<b class='flag-5'>項目</b>圓滿驗收

    STM32項目分享:礦井環(huán)境監(jiān)測系統(tǒng)

    01—項目簡介1.功能詳解STM32礦井環(huán)境監(jiān)測系統(tǒng)功能如下:STM32F103C8T6單片機(jī)作為主控制器DS18B20測量環(huán)境溫度
    的頭像 發(fā)表于 08-16 10:03 ?937次閱讀
    STM32<b class='flag-5'>項目</b>分享:礦井環(huán)境監(jiān)測系統(tǒng)

    STM32項目分享:智能語音臺燈(機(jī)智云)

    01—項目簡介1.功能詳解STM32智能語音臺燈(機(jī)智云)功能如下:STM32F103C8T6單片機(jī)作為主控單元按鍵切換模式,支持自
    的頭像 發(fā)表于 07-24 18:03 ?1563次閱讀
    STM32<b class='flag-5'>項目</b>分享:智能語音臺燈(機(jī)智云)

    NRF24L01項目資料(2.4G通信)實例項目下載

    NRF24L01項目資料(2.4G通信)實例項目,推薦下載!
    發(fā)表于 06-03 20:46

    STM32項目分享:智能鞋柜

    01—項目簡介1.功能詳解STM32智能鞋柜功能如下:DHT11檢測鞋柜溫濕度,溫度低于閾值開啟加熱,濕度高于閾值開啟加熱和通風(fēng);P
    的頭像 發(fā)表于 05-27 18:04 ?982次閱讀
    STM32<b class='flag-5'>項目</b>分享:智能鞋柜

    單片機(jī)C語言實例(350+例)

    350+單片機(jī)C語言實例! 純分享帖,需要者可點擊附件免費獲取完整資料~~~【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請第一時間告知,刪除內(nèi)容!
    發(fā)表于 05-22 21:47

    STM32項目分享:STM32智能語音臺燈

    項目簡介1.功能詳解STM32智能語音臺燈功能如下:1.STM32F103C8T6單片機(jī)系統(tǒng)板作為主控單元2.按鍵切換模式,支
    的頭像 發(fā)表于 03-15 10:02 ?3032次閱讀
    STM32<b class='flag-5'>項目</b>分享:STM32智能語音臺燈