From 4fc006fd27291ba15154bc86434cba57ff7ebf41 Mon Sep 17 00:00:00 2001 From: Alexandre Date: Sat, 24 Aug 2024 11:23:08 +0200 Subject: [PATCH] added some templates to lower the chance of failure --- bin/back | Bin 100528 -> 100568 bytes src/display.c | 24 ++++---- src/display.h | 2 +- src/generation.c | 19 +++++-- src/main.c | 4 +- templates.txt | 144 +++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 172 insertions(+), 21 deletions(-) diff --git a/bin/back b/bin/back index 82d7bebd9d8fe784650c0f07ac3122dd58ea4bb0..0cc0393925c06cf0f5f65f9e43ded5ea1a326efa 100755 GIT binary patch delta 15464 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 PyRu9*UThk*k_G(_VGN0h delta 15277 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 diff --git a/src/display.c b/src/display.c index ebd8ec2..a265f5a 100644 --- a/src/display.c +++ b/src/display.c @@ -165,36 +165,36 @@ void drawChunkToRenderer(SDL_Renderer* renderer, chunk* ch, int xmin, int xmax, } } -void drawHashToRenderer(SDL_Renderer* renderer, int chx, int chy, int xmin, int xmax, int ymin, int ymax, int dist) { - if(dist < render_distance) { +void drawHashToRenderer(SDL_Renderer* renderer, int chx, int chy, int xmin, int xmax, int ymin, int ymax, int distx, int disty) { + if(distx < render_distance && disty < render_distance) { chunk* todraw = gridGet(map, chx, chy) ; if(todraw == NULL) { - fprintf(stderr, "NO\n"); + fprintf(stderr, "NO (%d, %d)\n", chx, chy); exit(1); }; drawChunkToRenderer(renderer, todraw, xmin, xmax, ymin, ymax); - if(dist != render_distance -1 && !gridMem(map, chx+1, chy)) { + if(distx != render_distance -1 && !gridMem(map, chx+1, chy)) { generate_chunk_all(chx+1, chy); }; - if(dist != render_distance -1 && !gridMem(map, chx-1, chy)) { + if(distx != render_distance -1 && !gridMem(map, chx-1, chy)) { generate_chunk_all(chx-1, chy); }; - if(dist != render_distance -1 && !gridMem(map, chx, chy+1)) { + if(disty != render_distance -1 && !gridMem(map, chx, chy+1)) { generate_chunk_all(chx, chy+1); }; - if(dist != render_distance -1 && !gridMem(map, chx, chy-1)) { + if(disty != render_distance -1 && !gridMem(map, chx, chy-1)) { generate_chunk_all(chx, chy-1); }; - drawHashToRenderer(renderer, chx+1, chy, xmin, xmax, ymin, ymax, dist+1); - drawHashToRenderer(renderer, chx-1, chy, xmin, xmax, ymin, ymax, dist+1); - drawHashToRenderer(renderer, chx, chy+1, xmin, xmax, ymin, ymax, dist+1); - drawHashToRenderer(renderer, chx, chy-1, xmin, xmax, ymin, ymax, dist+1); + drawHashToRenderer(renderer, chx+1, chy, xmin, xmax, ymin, ymax, distx+1, disty); + drawHashToRenderer(renderer, chx-1, chy, xmin, xmax, ymin, ymax, distx+1, disty); + drawHashToRenderer(renderer, chx, chy+1, xmin, xmax, ymin, ymax, distx, disty+1); + drawHashToRenderer(renderer, chx, chy-1, xmin, xmax, ymin, ymax, distx, disty+1); } } void drawMapToRenderer(SDL_Renderer* renderer, int xmin, int xmax, int ymin, int ymax) { - drawHashToRenderer(renderer, player_cx, player_cy, xmin, xmax, ymin, ymax, 0); + drawHashToRenderer(renderer, player_cx, player_cy, xmin, xmax, ymin, ymax, 0, 0); placeRectToRenderer(renderer, __width__ /2 - 5, __height__ /2 + 5, 10, 10, 255, 255, 32, SDL_ALPHA_OPAQUE); } \ No newline at end of file diff --git a/src/display.h b/src/display.h index c116bec..12da5c4 100644 --- a/src/display.h +++ b/src/display.h @@ -23,7 +23,7 @@ void drawStringToRenderer(SDL_Renderer* renderer, imgs data, char* s, int X, int void drawChunkToRenderer(SDL_Renderer* renderer, chunk* ch, int xmin, int xmax, int ymin, int ymax); -void drawHashToRenderer(SDL_Renderer* renderer, int chx, int chy, int xmin, int xmax, int ymin, int ymax, int dist); +void drawHashToRenderer(SDL_Renderer* renderer, int chx, int chy, int xmin, int xmax, int ymin, int ymax, int distx, int disty); void drawMapToRenderer(SDL_Renderer* renderer, int xmin, int xmax, int ymin, int ymax); diff --git a/src/generation.c b/src/generation.c index 0c83a2c..013da52 100644 --- a/src/generation.c +++ b/src/generation.c @@ -32,11 +32,11 @@ int player_y = 4; int player_cx = 0; int player_cy = 0; -int zoom = 75 ; +int zoom = 50 ; int draw_par = 1; -int __width__ = 1200 ; -int __height__ = 800 ; +int __width__ = 1000 ; +int __height__ = 1000 ; imgs digits ; imgs letters ; @@ -180,7 +180,7 @@ bool is_compat_with_spins_uno(int cx, int cy, int idx) { void generate_chunk_all(int cx, int cy) { int i = 1 + (rand()%(4*n_configs)); - int idx = 0 ; + int idx = 1 ; int turn = 0 ; int k = 0 ; while(i > 0) { @@ -201,7 +201,10 @@ void generate_chunk_all(int cx, int cy) { } } else { if(k == 3) { - idx = (idx+1)%n_configs; + idx += 1; + if(idx == n_configs) { + idx = 1; + }; turn += 1; k = 0 ; } else { @@ -226,7 +229,7 @@ void initialize(SDL_Renderer* renderer) { }; full.id = -1 ; - generate_chunk(0, 0, 1); + generate_chunk(0, 0, 2); } void destroy() { @@ -257,6 +260,10 @@ void parse_one(FILE* ptr, FILE* ptr2, int index) { terminate_line(ptr); terminate_line(ptr2); + + printf("-----| Template %d (line %d) |-----\n", index, 9*index); + print_template(index); + printf("\n"); } void parse_configs(char* filename, int n_conf) { diff --git a/src/main.c b/src/main.c index cbb7b68..f688285 100644 --- a/src/main.c +++ b/src/main.c @@ -29,7 +29,7 @@ int main(int argc, char** argv) { SDL_Window* win = SDL_CreateWindow("Game", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, - 1200, 800, 0); + 1000, 1000, 0); Uint32 render_flags = SDL_RENDERER_ACCELERATED; SDL_Renderer* rend = SDL_CreateRenderer(win, -1, render_flags); @@ -43,7 +43,7 @@ int main(int argc, char** argv) { /* -------------------------------------------------------- */ //one_debug(); - parse_configs("templates.txt", 32); + parse_configs("templates.txt", 48); initialize(rend); diff --git a/templates.txt b/templates.txt index b035cf6..c25b563 100644 --- a/templates.txt +++ b/templates.txt @@ -1,3 +1,21 @@ +1 1 1 1 1 1 1 1 +1 0 0 0 0 0 0 1 +1 0 0 0 0 0 0 1 +1 0 0 0 0 0 0 1 +1 0 0 0 0 0 0 1 +1 0 0 0 0 0 0 1 +1 0 0 0 0 0 0 1 +1 1 1 1 1 1 1 1 + +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 + 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 @@ -277,14 +295,140 @@ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 0 1 1 1 1 0 1 +1 0 0 0 0 0 0 0 +1 1 1 1 1 0 1 1 +0 0 0 1 1 0 1 1 +0 0 0 1 1 0 1 1 +1 1 1 1 1 0 1 1 +1 1 1 1 1 0 0 0 +1 1 1 1 1 1 1 1 + +1 0 1 1 1 1 0 1 +1 0 0 0 0 0 0 0 +1 1 1 1 1 0 1 1 +0 0 1 1 1 0 1 1 +0 0 1 1 1 0 1 1 +1 0 1 1 1 0 1 1 +1 0 1 1 1 0 0 0 +1 0 1 1 1 1 0 1 + +1 0 1 1 1 1 0 1 +0 0 0 0 0 0 0 1 +1 1 1 1 1 1 0 1 +1 1 1 1 1 1 0 0 +1 1 1 1 1 1 0 0 +1 1 1 1 1 1 0 1 +0 0 0 0 0 0 0 1 +1 0 1 1 1 1 0 1 + +1 1 1 0 0 1 1 1 +1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + +1 1 1 0 0 1 1 1 +1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 +1 0 0 0 0 0 0 1 +1 0 1 1 1 1 0 1 + +1 1 1 0 0 1 1 1 +1 1 1 0 0 0 0 0 +1 1 1 0 0 1 1 1 +1 1 1 0 0 1 1 1 +1 1 1 0 0 1 1 1 +1 1 1 0 0 1 1 1 +1 1 1 0 0 0 0 0 +1 1 1 1 1 1 1 1 + +1 0 1 1 1 1 0 1 +1 0 0 0 0 0 0 1 +1 1 1 1 1 1 1 1 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 + +1 0 1 1 1 1 0 1 +1 0 0 0 0 0 0 1 +1 1 1 0 0 1 1 1 +1 1 1 0 0 0 0 0 +1 1 1 0 0 0 0 0 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 + +1 1 1 1 1 1 1 1 +0 0 0 0 0 0 0 1 +1 1 1 1 1 1 0 1 +1 1 1 1 1 1 0 1 +1 1 1 1 1 1 0 1 +1 1 1 1 1 1 0 1 +0 0 0 0 0 0 0 1 +1 1 1 1 1 1 1 1 + +1 1 1 1 1 1 1 1 +0 0 0 0 0 0 0 1 +1 1 1 1 1 1 0 1 +1 1 1 1 1 1 0 1 +1 1 1 1 1 1 0 1 +1 1 1 1 1 1 0 1 +0 0 1 1 1 1 0 1 +1 0 1 1 1 1 0 1 + +1 0 1 1 1 1 0 1 +1 0 0 0 0 0 0 1 +1 1 1 1 1 1 1 1 +0 0 0 0 0 1 1 1 +0 0 0 0 0 1 1 1 +1 1 1 0 0 1 1 1 +1 1 1 0 0 1 1 1 +1 1 1 0 0 1 1 1 + +1 0 1 1 1 1 0 1 +1 0 0 0 0 0 0 1 +1 1 1 1 1 1 1 1 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +1 1 1 0 0 1 1 1 +1 1 1 0 0 1 1 1 +1 1 1 0 0 1 1 1 + +1 0 1 1 1 1 0 1 +1 0 0 0 0 0 0 1 +1 1 1 1 1 1 1 1 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 + +1 1 1 1 1 1 1 1 +0 0 0 0 0 0 0 0 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 +0 0 1 1 1 1 0 0 +1 0 1 1 1 1 0 1 + +1 1 1 1 1 1 1 1 +0 0 0 0 0 1 1 1 +1 1 1 0 0 1 1 1 +1 1 1 0 0 0 0 0 +1 1 1 0 0 0 0 0 +1 1 1 0 0 1 1 1 +0 0 0 0 0 1 1 1 +1 1 1 1 1 1 1 1 $