From 4165228828d834cc78bbf675946bb99ec8eb4a8f Mon Sep 17 00:00:00 2001 From: ThomasBallantine Date: Tue, 19 Aug 2025 22:04:38 +0100 Subject: [PATCH] east --- 2015_day_3/day_3 | Bin 0 -> 16544 bytes 2015_day_3/day_3.c | 66 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100755 2015_day_3/day_3 diff --git a/2015_day_3/day_3 b/2015_day_3/day_3 new file mode 100755 index 0000000000000000000000000000000000000000..dc1402edb7a9dbc6b5b08ddcaa349650234b1dd0 GIT binary patch literal 16544 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 literal 0 HcmV?d00001 diff --git a/2015_day_3/day_3.c b/2015_day_3/day_3.c index 033f88b..e1b4bcb 100644 --- a/2015_day_3/day_3.c +++ b/2015_day_3/day_3.c @@ -128,6 +128,67 @@ void movesouth(Housearray* f, char direction){ f->houses[grid_y][grid_x]++; } +void moveeast(Housearray* f, char direction){ + int old_rows = f->rows·in·array; + int old_cols = f-> columns·in·array; + //update x coordinate + f->x·coord++; + //check if expansion needed + if (f->x·coord < 0){ + //Expand east + int new_rows = old_rows; + int new_cols = old_cols + 1; + //creates an array of pointers to point to my rows of integers + int** new_grid;// = (int**)malloc(new_rows * sizeof(int*)); + for (int i = 0; i< old_rows; ++i){ + int *new_row = malloc((new_cols) * sizeof(int));//allocating the new row + new_row[0] = 0;//initialising the leftmost element + memcpy(&new_row[1], f->houses[i], new_cols * sizeof(int));//copying the rest of the elements over + new_grid[i] = new_row; + //new_grid[i] = f->houses[i]; + } + free(f->houses); + f->houses = new_grid; + f->rows·in·array = new_rows; + f->columns·in·array = new_cols; + + } + //updating the visit count + int grid_x = f->x·coord - f->x_coord_origin; + int grid_y = f->y·coord - f->y_coord_origin; + f->houses[grid_y][grid_x]++; +} + +void movewest(Housearray* f, char direction){ + int old_rows = f->rows·in·array; + int old_cols = f-> columns·in·array; + //update y coordinate + f->y·coord++; + //check if expansion needed + if (f->y·coord - f->y_coord_origin >= f->rows·in·array){ + //Expand south + int new_rows = old_rows +1; + int new_cols = old_cols; + //creates an array of pointers to point to my rows of integers + int** new_grid = (int**)malloc(new_rows * sizeof(int*)); + for (int i = 0; i< old_rows; ++i){ + new_grid[i] = f->houses[i]; + } + new_grid[new_rows - 1] = (int*)calloc(new_cols, sizeof(int));//Initialising the new row to empty + free(f->houses); + f->houses = new_grid; + f->rows·in·array = new_rows; + f->columns·in·array = new_cols; + + } + //updating the visit count + int grid_x = f->x·coord - f->x_coord_origin; + int grid_y = f->y·coord - f->y_coord_origin; + f->houses[grid_y][grid_x]++; +} + + + int main(){ Housearray* my_house_array = inithousearray(); @@ -156,9 +217,14 @@ int main(){ }else if (ch == down){ printf("\nDOWN"); movesouth(my_house_array, ch); + }else if (ch == left){ + printf("\nEAST"); + moveeast(my_house_array, ch); } + printf("\n%d ycoordinate\n",my_house_array->y·coord); printf("\n%d rows in array\n",my_house_array->rows·in·array); + printf("\n%d cols in array\n",my_house_array->columns·in·array); }