From 7d85aec6ec56c96e2772ae7887cad0e79d11dda6 Mon Sep 17 00:00:00 2001 From: enne2 Date: Mon, 22 Jun 2026 19:30:44 +0200 Subject: [PATCH] Implement random wall reopening to generate alternative paths and cycles --- engine.c | 15 +++++++++++++++ hello_iso_gb.png | Bin 1252 -> 1270 bytes 2 files changed, 15 insertions(+) diff --git a/engine.c b/engine.c index fc1361b..94027a5 100644 --- a/engine.c +++ b/engine.c @@ -96,6 +96,21 @@ static void generate_maze(void) { break; } } + + // Reopen some walls to create alternative paths/loops + for (uint8_t y = 1; y < MAP_SIZE - 1; y++) { + for (uint8_t x = 1; x < MAP_SIZE - 1; x++) { + if (maze[y][x] == 0) { + // If it connects two paths horizontally or vertically, open it with a 15% probability + if ((maze[y][x - 1] == 1 && maze[y][x + 1] == 1) || + (maze[y - 1][x] == 1 && maze[y + 1][x] == 1)) { + if ((rand() % 100) < 15) { + maze[y][x] = 1; + } + } + } + } + } } static void draw_map(uint8_t center_x, uint8_t center_y) { diff --git a/hello_iso_gb.png b/hello_iso_gb.png index 3cb56e39f4a4454ceaaedb2cf9ea2e68b445fd94..b5dbb3058a5fbc7a32015b8450b77b3c1647a65b 100644 GIT binary patch delta 1012 zcmV~guhd_Ej0V}$sM5iqb8-sAE3j?K*M^YiP_#UFcndwco& z;rH|JMTlPrFcV%l+WAP=Dh$#egAl(=A7C8c*6`ln-*OpftGm^vSkE}!;8%rA^~QEe-q8A80~LRxzEL4XB$S)nL;GM3Z+r8 zq!eCwd0!h5?Zhz>;0CoJ=E6%o8@9syV(RanEkpurP%~c`@_1@T&{B|R3y}bKSeC`E z*K0Do+-TP#H8pgW5D9Q69}VL$?11proZ)Q%LkHN?@~1dNOUxr46=ZHP#E6CrFkXx2 ze|k6(sSw@XAmi|2J?#HhLj{;S@Ub3FM7XV`X_lG@*TReSu>ZA&2rzZv!-L%Wh)^08 zORuDq!W(J-OS%rQ^v<(z@n?K9zIMV?QX!@S%!N1l{-<;qVD7-zzVobfLV7q6VTfUX zYvG+`|3h5`m^)B=-|`rqke;47`aEJPf4mv?-+Br#bzo`^eEh1x7QLJV+p+&8sqics zQPp#a^7VjzkW-^T%{$Lp#FsSnNw8p>j@bXBF6IA&d<4w>ke`|x>HGb@X#`w50X>B1 zYWLseMmt;CZ}mQR7oaO0P?vgxc<$>;k5zi?9@I>;l!7how|ZZ@4KTEIBG%RZf6E_X zM6`y9=q<-qWrzS>ZHT!Ouy#{k+9vgh3ayQZEyq-4r~uv8o9w+WWtApl!i-EOulOY#KN+(Xt%O^v8eTxjnxRFVgHlvEfs;q6%>r9OFQaGC(!*4Ic|0zA`t zJhjsW=xUxw_)B56&bS^=?X&@ge@fFVKQRqNi1nrj&~3e0pJ6?o+Ef9$wGd}okEb?e zfUb7F@XYJ+)TR#5q9sW)uE$fGK0r6?dOS7xdO)?GSdTc;dOWr119Yhn_$7O6kug10WzFK=T20000*Zf2rT<2hgkg{r>jx?RJwr zmYy*J?hwb9`yAF0-~m4BG5YOyF|(KYLG*}I@Hq$&QalOSX<3%HkDt${?6LHWYrq|N z5^^2_gcR3+8~ADW`Fti%!Qt(w!!=+959@lp{`?s~>rI`432_}GU_l(7^Z4QsFOKl* z>+9$5#F)kif0&R9FAU1e?D2S*nc3xXdAmIvDPx5Aju9}h7T)9W_=(NT?DhKIb@Asu zK0e;QKm2+Avk37U0cOGrM>`+s_6mda`yj+`(+3#Gw>7-a&(GcWO@v$n{&n!fQ7}H0 z9vul?cuEiNXT}hx9|2>z>p;sq3E46N#^J?g43Pjcf5M68RE+jtP`TUUud@v!=u9CJ zV1?4CSW*fvJiV`th&FJH1h_$Mh`I1m&xWlqznJ>o(LyA^9ctzaLmp4<2wDnqv=9mK zfMr?idc7vY%Z+w>q^5>O36TH~^3gC3!%hfq%?NJ;=sLibmOsTIT4EmYtRQoXA$rth zfbm*9f7il+NQLN*1{sGJYhnAh>MFq8j*qo)Ai~F5nr5kqa4o!83)^3-ivUwQKHSNz zj|invvGhtxDZHMxzoh8^OYb}j7k|bV<7)>@B^6>Sz+8B}Z+}XY0p@mm?K{s(2c(4q z5r!BBxE9_h+aGEwz}${H`j*G=fVA|?(dQ9Uf8our{nk=|sU1_Z>58tryuxU&<;?`YNsc zW`-K-?ddW=ce~weS(fAhsJVu$m6{q+AGpxbeW)Z4@GPk?YQj6RL`r?|Mlei(ZtH8L zdjcG3J)YWd0lJze68=(Htr6GbsSO)of2cIg@-L==2(jK20lKXh>ocs!Q=2M4w-(|| z>+#g44A9li7mmChPi^V|En1Q^<9a-`=>v4LuE$f8uLo?!tn2aA7y&b8S&yeifE7kw zkEcd}8;rOfPmOE94N}*MsoS~6t4Dx4#32&iegt>`;T^{{Af)*Jf+0nKkRm`xk=HpE Z)E~!guV5d0L2v*7002ovPDHLkV1l(g@y7rF