C語言實現的2048小遊戲

2021-08-10 16:24:48 字數 2583 閱讀 1926

給大一新生寫的乙個小遊戲。

缺點:函式名稱和功能略微不對應,函式功能寫得比較亂,時間記錄有誤差,可擴充套件性弱。

優點:通過幾個配置陣列,將單位方塊移動的函式縮短到30行以內。

#include #include #include #include #include //座標常量 

const int squaresize = 4;

const int locationx[squaresize] = ;

const int locationy[squaresize] = ;

const int locationtime[2] = ;

const int directions[2][3] = , };

//左 右 上 下

//0 1 2 3

const int directionxy[4][2] = , , , };

//矩陣內容

int square[squaresize][squaresize];

//時間相關全域性變數

int t_hour = 0;

int t_min = 0;

int t_sec = 0;

int t_ms = 0;

//得分相關全域性變數

int score = 0;

//步數相關全域性變數

int step = 0;

//存活全域性變數

int alive = 1;

//函式宣告

void gotoxy(int x, int y);

void sleep(int n);

void gotoxy(int x, int y);

void move(int direction);

void play();

int judge(int x, int y, int direction);

void printsquare();

void init();

void randsquare();

void printscore();

//列印當前時間

void printtime()

//睡眠函式 不是很準確 推薦用系統時間換算

void sleep(int n)

if (t_sec >= 60)

if (t_min >= 60)

gotoxy(locationtime[0], locationtime[1]);

printtime();

}//游標移動函式

void gotoxy(int x, int y)

//左 右 上 下

//0 1 2 3

//遊戲單元 移動函式

void move(int direction)

, };

//向左移動 i = directions[0][0]; i != directions[0][1] ; i += directions[0][2];

//向右移動 i = directions[1][0]; i != directions[1][1] ; i += directions[1][2];

//向上移動 i = 1; i != 4 ; i++

//向下移動 i = 2; i != -1; i--

int mydirection = direction % 2;

for(int k = 0;k < 3;k++)

}else}}

} sleep(80);

} //生成乙個新的方塊

randsquare();

step += 1;

printscore();

}int judge(int x, int y, int direction)

square[tox][toy] += square[x][y];

square[x][y] = 0;

gotoxy(locationx[tox],locationy[toy]);

printf("%4d", square[tox][toy]);

gotoxy(locationx[x],locationy[y]);

printf("%4d", square[x][y]);

return 1;

} else }

//遊戲函式

//左 右 上 下

//0 1 2 3

void play()

switch (ch)

sleep(20);

gotoxy(15, 20); }}

void printscore()

//列印棋盤

void printsquare()

//初始化函式

void init()

} //隨機生成乙個2或者4

randsquare();

}//隨機生成乙個方塊

void randsquare()

}} }

else

if (legal == 0)

gotoxy(15, 20);

}int main()

C語言實現2048小遊戲

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

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

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

C 實現2048小遊戲

1 define crt secure no warnings 去掉編譯器內部擴增問題 2 include3 include4 include5 include 6 include7 include8 include 9 include10 include11 include12 using nam...