#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...