diff --git a/src/column.c b/src/column.c index d476ec7..5b93cc2 100644 --- a/src/column.c +++ b/src/column.c @@ -15,14 +15,18 @@ * orange = 5 * * cyan = 6 * * ******************/ -int tile_current[3] = {1, 2, 3}; -int tile_next[3] = {5, 5, 5}; -int colcnt[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // number of empty spaces in each column + +int tile_current[3]; +int tile_next[3]; +int tile_initial[3]; +int colcnt[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // number of empty spaces in each column //////////////////////////////// GAME BOARD ARRAY ////////////////////////// +// central to game + int grid [2][18][8] = { { - {0, 0, 0, 0, 0, 0, 0, 0}, // colours + {0, 0, 0, 0, 0, 0, 0, 0}, // colours {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, @@ -42,7 +46,7 @@ int grid [2][18][8] = { {0, 0, 0, 0, 0, 0, 0, 0}, }, { - {0, 0, 0, 0, 0, 0, 0, 0}, // matches + {0, 0, 0, 0, 0, 0, 0, 0}, // matches {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, @@ -64,6 +68,8 @@ int grid [2][18][8] = { }; ///////////////////////////// COUNT COLUMNS //////////////////////////////// +// count available rows in each column + int count_col(void) { for (int i = 0; i < 8; i++) { colcnt[i] = 0; @@ -71,18 +77,19 @@ colcnt[i] = 0; for (int i = 0; i < 8; i++) { for (int j = 0; j < 18; j++) { - if (grid[0][j][i] == 0) { colcnt[i]++;} // count empty spaces in each column + if (grid[0][j][i] == 0) { colcnt[i]++;} // count empty rows in each column } } } //////////////////////////////// NEW COLUMN ////////////////////////// // randomly choose from remaining available columns to drop next brick into + int new_column(void) { - int avl; // general counter - int actual_col = 0; // actual absolute column in game panel - int totcol_avail = 0; // keep track of available columns - int randc; // random column number + int avl; // general counter + int actual_col = -1; // actual absolute column in game panel + int totcol_avail = 0; // keep track of available columns + int randc; // random column number //totcol_avail = 0; count_col(); @@ -90,16 +97,15 @@ int new_column(void) { if (colcnt[i] > 3) {totcol_avail++;} // count total available columns } if (totcol_avail == 0) { - printf("game over\n"); - restart = true; - } else { // no more columns available + game_end = 2; // game over + } else { // no more columns available randc = randombytes_uniform(totcol_avail) + 0; // choose random number from available columns avl = -1; for (int i = 0; randc != avl; i++) { // translate random num from avail column to actual column if (colcnt[i] > 3) { avl++; } - actual_col = i; // might need to move this down to next brace + actual_col = i; // might need to move this down to next brace } } return actual_col; // return the random column @@ -107,6 +113,7 @@ int new_column(void) { //////////////////////////////// DISPLAY COLUMN ////////////////////////// // display brick in relevant row/column of board array + int disp_column(int row, int col) { for (int i = -1; i < 3; i++) { grid[0][row + i][col] = tile_current[i]; @@ -115,18 +122,34 @@ int new_column(void) { } //////////////////////////////// NEW BRICK ////////////////////////// -// generate random 3 tile bricks for current and preview - int new_brick(void) { +// generate random 3 tile bricks for initial, current and preview + + int next_brick(void) { for (int i = 0; i < 3; i++) { - tile_current[i] = randombytes_uniform(6) + 1; // brick in play - tile_next[i] = randombytes_uniform(6) + 1; // next brick preview + tile_next[i] = randombytes_uniform(6) + 1; // next brick preview + } + return 0; +} + + int current_brick(void) { + for (int i = 0; i < 3; i++) { + tile_current[i] = tile_next[i]; // brick in play (current brick) + } + next_brick(); + return 0; +} + + int initial_brick(void) { + for (int i = 0; i < 3; i++) { + tile_current[i] = randombytes_uniform(6) + 1; // initial brick } return 0; } //////////////////////////////// ROTATE COLUMN ////////////////////////// // rotate (cycle) tiles in brick by 1 -int rotate_col(void) { + + int rotate_col(void) { int temp = tile_current[0]; tile_current[0] = tile_current[1]; tile_current[1] = tile_current[2]; @@ -136,12 +159,14 @@ int rotate_col(void) { //////////////////////////////// MOVE HORIZONTALLY ////////////////////////// // move brick left & right using cursor keys + int move_horiz(void) { return 0; } //////////////////////////////// MOVE VERTICALLY ////////////////////////// // move brick down one place at a time + int move_down(void) { return 0; } @@ -162,6 +187,7 @@ int reset(void) { } // reset row/column - row = col = 0; + row = -1; + col = 0; // col = new_column(); return 0; }