2048字元版C語言實現

2021-10-19 18:21:47 字數 3848 閱讀 4562

#include

"game.h"

intmain()

lcd.h

#ifndef __lcd_h_

#define __lcd_h_

void

show_arry

(int

(*p)[4

],int col)

;#endif

lcd.c

#include

"lcd.h"

#include

void

show_arry

(int

(*p)[4

],int row)

printf

(" |\n");

}printf

("*******************\n");

}

input.h

#ifndef __input_h_

#define __input_h_

enum key

;enum key input()

;#endif

input.c

#include

"input.h"

#include

"stdio.h"

enum key input()

}}

game.h

#ifndef __game_h_

#define __game_h_

void

game_init()

;void

game_exec()

;int

game_finish()

;void

left_matrix

(int

(*arry_2048)[4

]);void

right_matrix

(int

(*arry_2048)[4

]);void

up_matrix

(int

(*arry_2048)[4

]);void

down_matrix

(int

(*arry_2048)[4

]);int

zero_num

(int

(*arry_2048)[4

]);int

write_digit()

;void

change_hori

(int

(*arry_2048)[4

]);void

change_transpose

(int

(*arry_2048)[4

]);void

judge

(int key_value)

;int

matrix_equal

(int

(*arry_2048)[4

]);#endif

game.c

#include

"game.h"

#include

#include

#include

"lcd.h"

#include

"input.h"

#include

//定義生成的數

int rand_data[5]

=;//定義乙個四階二維陣列用來顯示

int arry[4]

[4]=

;int test_arry[4]

[4]=

;int count =0;

void

game_init()

//2.在剛才的任意位置生成乙個2或者4的數

int index1 =

rand()

%2; arry[row1]

[col1]

= rand_data[index1]

;int index2 =

rand()

%2; arry[row2]

[col2]

= rand_data[index2]

;//3.顯示生成的數

show_arry

(arry,4)

;}void

game_exec()

if(game_finish()

)}}//結束遊戲

intgame_finish()

}//下一步左移(右移)和上移(下移)沒有位置可以填充

left_matrix

(b);

int num1 =

zero_num

(b);

up_matrix

(b);

int num2 =

zero_num

(b);

if(num1 ==

0&& num2 ==0)

return0;

}//左移

void

left_matrix

(int

(*arry_2048)[4

])}if

(flag)

//將第1個不為0的數賦給改行的j位置

arry_2048[i]

[j]= arry_2048[i]

[t];

arry_2048[i]

[t]=0;

}//該數值位的數一定不為0

t = j +1;

//忽略0且不越界

while

(t !=

4&& arry_2048[i]

[t]==0)

t++;if

(t ==4)

if( arry_2048[i]

[j]== arry_2048[i]

[t])}}

}//右移

void

right_matrix

(int

(*arry_2048)[4

])//上移

void

up_matrix

(int

(*arry_2048)[4

])//下移

void

down_matrix

(int

(*arry_2048)[4

])//填充隨機數

intwrite_digit()

if(count == pos)}}

}int

zero_num

(int

(*arry_2048)[4

])}}

return count;

}//矩陣左右轉換

void

change_hori

(int

(*arry_2048)[4

])}}

//矩陣轉置

void

change_transpose

(int

(*arry_2048)[4

])}for

(int i =

0; i <

4; i++)}

}//判斷是否相等

c語言 字元版 簡易2048

花了兩個多小時,用最蠢的方法寫的 最簡陋版 還不確定這麼寫邏輯對不對 include include include include include using namespace std int map 5 5 int score int move int a,int b,int c,int d ...

c語言實現簡易2048遊戲

我寫的2048每次只能隨機生成乙個新的2,不能生成4以及其他的數,沒有計分系統,只能記錄步數。由於是基於控制台的遊戲,所以操作起來比較麻煩。演算法思想 每次進行wsad操作的時候都先在各行各列檢查可以合併的項,並且合併之,合併完之後在進行緊湊處理。假如各行各列已經沒有可以合併的相鄰的項了,那麼遊戲就...

C語言實現2048小遊戲

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