用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語言寫一個沒有main函數的程序嗎!
※明白函數這三者的關係,就能讀懂c語言的大部分了
※C語言模擬ATM自動櫃員機界面
TAG:C加加 |