當前位置:
首頁 > 知識 > 用C語言編寫C語言的源代碼以及word文檔

用C語言編寫C語言的源代碼以及word文檔

都在學習C語言,用C語言寫項目的人很多,而2048這個經典的遊戲,也有很多人嘗試寫過。不難,但是裡面包含了演算法的內容,很多人都覺得這個是難點,那今天我就分享一下,如何用C語言來寫一個經典的休閑益智遊戲——2048吧。(我只截取了兩段關鍵函數,這兩段是最重要的,也是核心部分,想要一起學習C++的可以加企鵝裙六四三三九二二二零,裙內有各種資料滿足大家,歡迎加裙)

具體代碼如下:

void summer(int &a,int &b,int &c,int &d){

//一個數組 改變值然後賦值回去

//參數實現部分 四個數字 最終結果 0在後面

//第一步 排除0

int i, j;

int harr[4] = { a, b, c, d };

//排掉0

int arr[4] = { 0 };

for (i = 0, j = 0; i

if (harr[i] != 0){

arr[j++] = harr[i];

}

}

for (int k = 0; k

//合併

for (i = 0; i

if (arr[i] == arr[i + 1]){

arr[i] *= 2;

for (j = i + 1; j

arr[j] = arr[j + 1];

}

arr[j] = 0;

}

}

}

a = arr[0];

b = arr[1];

c = arr[2];

d = arr[3];

}

//內部實現過程 一次遊戲部分

//遊戲如何進行 往上往下如何進行--------------------------------------------------------

switch (getch()){

case 'A':

case 'a':

//往左

//分兩個步驟 1.處理掉所有的0 冒泡排掉所有0

//2.合併相同項

for (j = 0; j

summer(map[0][j], map[1][j], map[2][j], map[3][j]);

}

break;

case 'W':

case 'w':

//往上

for (i = 0; i

summer(map[i][0], map[i][1], map[i][2], map[i][3]);

}

break;

case 'D':

case 'd':

//往右

for (j = 0; j

summer(map[3][j], map[2][j], map[1][j], map[0][j]);

}

break;

case 'S':

case 's':

//往下

for (i = 0; i

summer(map[i][3], map[i][2], map[i][1], map[i][0]);

}

break;

default:break;

}

前面那個void summer是封裝的函數,用來處理鍵盤的消息,用switch來判斷你所點擊的是哪一個鍵,來判斷上下左右方向。這兩個是整個遊戲最重要的部分,希望你們能掌握。

想要一起學習C++的可以加企鵝裙六四三三九二二二零,裙內有各種資料滿足大家,歡迎加裙

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 C加加 的精彩文章:

C語言學習:C語言中指針函數與函數指針的詳解
帶你走進C語言程序的世界
你會用C語言寫一個沒有main函數的程序嗎!
明白函數這三者的關係,就能讀懂c語言的大部分了
C語言模擬ATM自動櫃員機界面

TAG:C加加 |