c語言實現簡易2048遊戲

2021-08-21 15:46:52 字數 2281 閱讀 8625

我寫的2048每次只能隨機生成乙個新的2,不能生成4以及其他的數,沒有計分系統,只能記錄步數。由於是基於控制台的遊戲,所以操作起來比較麻煩。

演算法思想:每次進行wsad操作的時候都先在各行各列檢查可以合併的項,並且合併之,合併完之後在進行緊湊處理。

假如各行各列已經沒有可以合併的相鄰的項了,那麼遊戲就結束了。

#include "stdafx.h"

#include#include#include#include//列印函式,列印出遊戲介面

//如果是0的話就為空,否則列印出數值

void print(int a[4][4],int count)

printf("\n");

for (int i = 0; i < 4; i++)

if (a[i][j] == 0)

else

} printf("\n");

for (int h = 0; h < 4; h++)

printf("\n");

} printf("請使用wsad進行遊戲\n");

printf("當前得分為:%d\n", count);

}//為一開始生成隨機的兩個座標

void start(int a[4][4])

//printf("x=%d,y=%d\n", x, y);

a[x][y] = 2;

return;

}//每一回合過後都隨機生成乙個新的2

void fresh(int a[4][4])

//printf("x=%d,y=%d\n", x, y);

a[x][y] = 2;

return;

}//判斷是否遊戲結束

//遊戲結束的標誌就是無論從那個方向都沒有可以合成的格仔了

//演算法就是先從行判斷,然後從列判斷

//如果遊戲結束了就返回0,否則返回1

int is_die(int a[4][4])

if (a[j][i] == a[j + 1][i])

} }//走到這一步就說明遊戲結束了

return 0;

}int can(int a[4][4])

//主函式,通過輸入來進行移動

//進行操作的時候分四種情況

//演算法為:先檢查有沒有可以合併的格仔,如果有就合併,然後再緊湊

void run(int a[4][4])

else }}

}}} //這裡要進行緊湊操作,逐行掃瞄

for (int j = 0; j < 4; j++) }}

}} break;

case 's':

//下移操作,與上移操作行檢查順序相反,其他都一樣

for (int j = 0; j < 4; j++)

else }}

}}} //進行緊湊處理

for (int j = 0; j < 4; j++) }}

}} break;

case 'a':

//左移操作

for (int i = 0; i < 4; i++)

else }}

}}} //進行緊湊處理

for (int i = 0; i < 4; i++) }}

}} break;

case 'd':

//右移操作

for (int i = 0; i < 4; i++)

else }}

}}} //進行緊湊處理

for (int i = 0; i < 4; i++) }}

}} default:

break; }}

int main()

; int count=0;//記錄遊戲步數

start(a);

print(a,count);

run(a);

count++;

system("cls");

fresh(a);

print(a, count);

sleep(50);

while (1)

else

} return 0;

}

執行結果:

c語言小遊戲 精簡 C語言實現簡易2048小遊戲

一直很喜歡玩這個小遊戲,簡單的遊戲中包含運氣與思考與策略,喜歡這種簡約又不失內涵的遊戲風格。於是萌生了用c語言實現一下的想法。博主分析的都很到位,很多演算法技巧都值得借鑑,c語言實現2048的主要思想已經在那個部落格中詳細的分析了,但是我覺得在博主的 中還是有很多很好的思想是值得我借鑑學習的。比如這...

C語言實現2048小遊戲

參考 100 行 擼了乙個 2048 的小遊戲 規則就是 2084 遊戲的規則 j 左 k 下 l 右 i 上 相同數字移動過程中會合併 這裡我把按鍵修改成了方向鍵,並加了些注釋幫助理解 include include include define game size 4 static void l...

C語言實現的2048小遊戲

給大一新生寫的乙個小遊戲。缺點 函式名稱和功能略微不對應,函式功能寫得比較亂,時間記錄有誤差,可擴充套件性弱。優點 通過幾個配置陣列,將單位方塊移動的函式縮短到30行以內。include include include include include 座標常量 const int squaresiz...