ptit refacto
This commit is contained in:
parent
c8d35ae529
commit
4cf532da40
41
main.c
41
main.c
|
@ -20,17 +20,10 @@ typedef enum GameState {
|
||||||
|
|
||||||
GameState game_state = PLAYING;
|
GameState game_state = PLAYING;
|
||||||
|
|
||||||
#if 1
|
|
||||||
int game_cap = 30*16;
|
int game_cap = 30*16;
|
||||||
char game[30][16] = {0};
|
char game[30][16] = {0};
|
||||||
char discover[30][16] = {0};
|
char discover[30][16] = {0};
|
||||||
char zero[30][16] = {0};
|
char zero[30][16] = {0};
|
||||||
#else
|
|
||||||
int game_cap = 30*16;
|
|
||||||
char game[16][30] = {0};
|
|
||||||
char discover[16][30] = {0};
|
|
||||||
char zero[16][30] = {0};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// I confused myself with game type, mode and diff, but it all mean the same
|
// I confused myself with game type, mode and diff, but it all mean the same
|
||||||
// TODO: refactor it
|
// TODO: refactor it
|
||||||
|
@ -136,7 +129,7 @@ int count_bomb(int x, int y)
|
||||||
if (x+i < 0 || x+i >= game_size.x)
|
if (x+i < 0 || x+i >= game_size.x)
|
||||||
continue;
|
continue;
|
||||||
for (int j=-1; j<=1; j++) {
|
for (int j=-1; j<=1; j++) {
|
||||||
if (y+j < 0 || y+j >= game_size.y)
|
if (y+j < 0 || y+j > game_size.y)
|
||||||
continue;
|
continue;
|
||||||
if (i == 0 && j == 0)
|
if (i == 0 && j == 0)
|
||||||
continue;
|
continue;
|
||||||
|
@ -196,23 +189,6 @@ void fill_game(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void discover_empty_cell(int x, int y)
|
|
||||||
{
|
|
||||||
int count = 0;
|
|
||||||
for (int i=-1; i<=1; i++) {
|
|
||||||
if (x+i < 0 || x+i >= game_size.x)
|
|
||||||
continue;
|
|
||||||
for (int j=-1; j<=1; j++) {
|
|
||||||
if (y+j < 0 || y+j >= game_size.y)
|
|
||||||
continue;
|
|
||||||
if (game[y+j][x+i] == '0' && discover[y+j][x+i])
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (count > 0)
|
|
||||||
discover[y][x] = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void zero_click(int x, int y)
|
void zero_click(int x, int y)
|
||||||
{
|
{
|
||||||
if (x < 0 || x >= game_size.x ||
|
if (x < 0 || x >= game_size.x ||
|
||||||
|
@ -332,7 +308,6 @@ int main(void)
|
||||||
.r = 0x8E, .g = 0x8E, .b = 0x8E, .a = 255
|
.r = 0x8E, .g = 0x8E, .b = 0x8E, .a = 255
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
if (IsKeyPressed(KEY_A)) {
|
if (IsKeyPressed(KEY_A)) {
|
||||||
CloseWindow();
|
CloseWindow();
|
||||||
exit(0);
|
exit(0);
|
||||||
|
@ -429,8 +404,8 @@ int main(void)
|
||||||
WHITE
|
WHITE
|
||||||
);
|
);
|
||||||
|
|
||||||
for (int x=0; x<game_size.x; x++) {
|
for (int y=0; y<game_size.y; y++) {
|
||||||
for (int y=0; y<game_size.y; y++) {
|
for (int x=0; x<game_size.x; x++) {
|
||||||
Texture *tex;
|
Texture *tex;
|
||||||
if (discover[y][x]) {
|
if (discover[y][x]) {
|
||||||
switch (game[y][x]) {
|
switch (game[y][x]) {
|
||||||
|
@ -461,14 +436,12 @@ int main(void)
|
||||||
|
|
||||||
int mouse_x = GetMouseX();
|
int mouse_x = GetMouseX();
|
||||||
int mouse_y = GetMouseY();
|
int mouse_y = GetMouseY();
|
||||||
int grid_x = (int) grid.x;
|
|
||||||
int grid_y = (int) grid.y;
|
|
||||||
int mouse_in_grid = 0;
|
int mouse_in_grid = 0;
|
||||||
int mouse_in_menu = 0;
|
int mouse_in_menu = 0;
|
||||||
|
|
||||||
if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) {
|
if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) {
|
||||||
if (grid_x < mouse_x && mouse_x < grid_x + grid.width &&
|
if (grid.x < mouse_x && mouse_x < grid.x + grid.width &&
|
||||||
grid_y < mouse_y && mouse_y < grid_y + grid.height)
|
grid.y < mouse_y && mouse_y < grid.y + grid.height)
|
||||||
{
|
{
|
||||||
mouse_in_grid = 1;
|
mouse_in_grid = 1;
|
||||||
} else if (0 < mouse_x && mouse_x < menu.width &&
|
} else if (0 < mouse_x && mouse_x < menu.width &&
|
||||||
|
@ -479,8 +452,8 @@ int main(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mouse_in_grid && game_state == PLAYING) {
|
if (mouse_in_grid && game_state == PLAYING) {
|
||||||
mouse_x = ((float)(mouse_x - grid_x) / grid.width) * game_size.x;
|
mouse_x = ((mouse_x - grid.x) / grid.width) * game_size.x;
|
||||||
mouse_y = ((float)(mouse_y - grid_y) / grid.height) * game_size.y;
|
mouse_y = ((mouse_y - grid.y) / grid.height) * game_size.y;
|
||||||
|
|
||||||
discover[mouse_y][mouse_x] = 1;
|
discover[mouse_y][mouse_x] = 1;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue