From 329743fb32a3dfda95dfba5fb878da8c0e4304da Mon Sep 17 00:00:00 2001 From: Shadow15510 Date: Wed, 2 Jun 2021 22:10:19 +0200 Subject: [PATCH] =?UTF-8?q?Fully=20fonctionnal=20game=20(thanks=20Sensei~?= =?UTF-8?q?=20=E2=99=A5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plague.g1a | Bin 88716 -> 64524 bytes src/data.c | 2 +- src/display_engine.c | 18 ++++++++---------- src/epidemic_engine.c | 36 +++++++++++++++++++++++++----------- src/epidemic_engine.h | 3 +++ 5 files changed, 37 insertions(+), 22 deletions(-) diff --git a/Plague.g1a b/Plague.g1a index 8fd3ccbdd441a91c7f9699cf1a3bc7c442cc36de..4f8012206f9ef302efccdd8063876c51f11e7681 100644 GIT binary patch delta 9269 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 delta 14625 zcmc&b3s@9Kn$gQ(ym0?tJw4Mi@>ERP zuc)g3{i^Dk?zZ`cuKE25{zs4f?nFz|8@r7I{|)~Vei-=S?Tx>+_$TNjDdA-HVL>O9 zH_O+AWT9@^(+0Cg7omg@p{!=08+v-*euLTF41g9Qm2D$rqS;^;0Y3X0VC#ugZiHUX zX=vU$LbvzjXh3 zmDR8={U1`dQbOG`K$#z*llurwN+INbcYvP;XFb*U_qtzi3Wg&lBIFat}AkvaDdH=-6gvFo_ z=NuRIw4!Hn51~7OcIQfHpnK;YXh4Iy=4=C9S7CmZP!G_j?*>>k%WzK+Lo?)B_ooD@ zO0^2C2)BDEX7!^rM~@!;JMbu%P#=(}c*XoYzcQiFT@Y~;Iyr?Ij8d@V(}@OGENXJw zDV`J4XA*bf35^;JEX_EjuBfi>_hMqMeyM&cK;6j}ViH~@`^kRsNc+2gCKpTRul%yK z;FR=>-8IjAwC~L?isv=|skm})MBq-r+EC(S*>@@X^8%^4$p33yNq}y8mZv_b;H4*Y z>sY*R?VNMDU+F&2?M?n;Zo21X_cbrYzjY<0HzmvS@|-L4P>m+0K-yS>>VuZRVYSMDXZNI&U>iiha!Y9ll?N+|{N2ZRO^Lg5dM z%LH6tLD5&bKj!sLi}$^}=G?L`^IA>*LN*I9{i1H#74q4%UhgpZ@`SL+bkDGef+ldm z^xQzYA>9z~dx@O8?}|BW>Lu^bLVzmr@>EW<6KO6HmFk?|m2gfoiPNMb&GDPW-Qx4- zurEB4LjGh}%_A~0jwwi?>zXH}@%?>2bwUHyv5Lvl9@UZ9yl4)A`b%kv+1>xI=X~ND*DcD6+!LG*YkJR={}iqW ziOq!>8@^ANywh8u&VNW;s|%tbx|$6_(V~st&zZjaZ>1S0`koU`{O=`_f>n+3w#mjR zZwYQeF%bPOb}HyqF{FlN1Xt>${1o{}aJJ4P2ex+H?sGEPt#{Mgp~^S z$3QNkLLpWVr>G?0NQ0IM<0eA0Aclnm<{91M9wBXJFCqVd%0n|+BR&+jQg%AxAH=ZJ zY+K|z(8*C#w+Ldmfmx%rU>7p&fVicabxvC*PQE4^qdyhgrb6XKoRu$6-ypb!8wj1+ z$yUa`5FH)|IzU(0HrPEAm7O%EUd=7QpoWrb*^Ss$zRTMP4NpOGg*3v-*3H-+83q2KcVq*_;q5MoNXSs5|l^&rPVi6~AHa z<78&;h7YN$fit)u{qd^G=@!0!w=zT7(Ze&0Dz@>?lVC~i~)vdp=W z;_5c`^xRPFnw43{+yI!#XXd^o#%-x4Qb8sJ43^%~CguF_atqAyHVsSXWivEbqB(mB z&AlkMB?Sp?**6H?c1`|Zp0DVJ%P=v6b^)eDowEW(a0{1A}x(~BO{o0JGaFmDpNXdAn@*OQZ0is(DjB`F=UAf7=IdIxBKz-}$u z=P8vmD`9|ow&taJEQQ6bju^Ha%Fh3eGNuVj`6ufj*NEPcxy9biz2F&yc){zOSNuC)c&%>DgZonz+gCW-R00Vtp2g+jIpus|d1O%yh-^>- z0_M;nKRBXw0||Ii6a}q{%5g`?! zVtEEjsc03q5Z0}9Rh0?is!rBcx!&W^d|aZC?@nfZtkta!jDYoX7qkut z(=BMQwkl)Tg~!W9=n|{4v8%5tg-*UuRVv_)OV@nr@pzeH9AJ%W3&pAqxnk`B!57!m z>K?5q+5E(MF|^{8vZFfVKy5dwmiIr^Dg+>J#VO>q$>65Q8P6P5ajvqN{@LRWl{XYt zFtqF0&ALg_awDM&dq6&TzCMFU%R^ZH#($qEm0p9fUY=F+Yaw(aL}p_(v=(R`(7K`Z zz=lye;F2-c8o)vkOY&V*=OW*qzpYeUdp4Rx1%{)G*~lkls7 z|H7c_KsW4BxF_H-Xn7K}OlT{iVJgnT&m;phKWK39DVqfiXv%W&0E9OVNW2kfW1uxa zI}hzNv}4fPfR3<^+EDTN3f5g49aLEC*o+ISG~+bcym`GS-giN+-};$odg;RU2QH^H zk>|m;hHY}yb|29bZsCOPNCUuixxPN#8F2Q+9U}ayTE~iaWP5}_QT`n43yNV!oTs;T z6uKdHhgB|ad{q?T40O3^yKnLt2!Q!e7BS;y4TeWqEdIgtd05~z7qPDSMQiH8Q$nPY z29D011$TgY1qXj=PCto8bU_A3&w%XBz`aem=!`wY07I#y9?&^7`!u218sS;ZM33l# zVz^0^*_a$1O@ss`p0xw$+$#RFQz}TYSf)*<(|b5dDu89Mq}WcT4(O6uRY@(TxAZKlcqQ6*XFq^%If2_=S)9Bp3XY>x3x;_Tv@{nO(&cJl7R$@5GyzHtLvQmusMd#J12RR~and|ZRgKO77*gS*zhNr<;6K{ejBw=0UZSc^CZ zcj>6g?B(PIq+}*yhVg(4T^)xz2JfK$WSkCM}uESd$g-hu3J@Z~QPm+`UlMAeWq~wK$X}ZcH39 zYim4Om1YmVi!~#{Gxr!#hEf9dypJR$V~<(YY!9kEw|rTv6{Jey&U5?KY;e;sM3}5m z1a?GMR8`vkZsgmXw8z_dEpvww)F|AMaau!vt!nU1P=@e((o7|g9^GgnvWcvwH24BP=+SI=1#6_>D9)`Ommm(O zOVJ~-;Md*Zxz9auWjOU(T$XlnH)E*8L!lPyy$c>zC0*< z6t5zC!MFqqgFlp>5#S5%l#%n<0#q=9k}>PBmF&D(LkS+tV=yMrDV&254JB}#;68R& zQ8`{ph@M!igYn(B*7lhe>zq1QL0prI0))BJ4K*K(e<)gjKR9Z^g9~YG4`5bGz3jJM0~+C0xM#fWZZ{wny8YADm*W>c&P7etN6E+H%6}eKu}v z)^MgpqjCk+slx55H82%-2mK6xqC3d0ZPQGSxwwMF+ z?n&O96*(+b-PDBP?n)LF*%HK}wOTpc_D3O7Cbk<;{J6S}qP5Ch$2L27XT!}IltCqQ z6`;&{!VV{Bk;tIVRb~~Y_S|J={$+TjhFE19-yUvdw{0A*W;rx+f8;@z9vqwIuX0d2 zoV**DBOoZRwLQ{)3JLXa$hF__58KgbO{s%oe5_IAwYJZ&s~Oaa6QM|`y|jk#+Gj28 zAuE7Fix|H#SO}-T7-)WWOCcbNT|=vZt)Ndk( zwo45YC!CzEB~*i~g^hlUHo+p}k8`280z}(Z^N-;p{aCU6wxlD`x#AT*2|7RC?2k)- zH{=g7R}nZ@#LSHu3^y1|pcr_QxK z+x>c=@?dXYiWWZBv0`8BDDBHaa@PO0$xjm|Ri*7W^S&e%FxGx-wv=ce(T3myGq(EB zB*)`o%iZKFWH{RuJD<=ajWYiGJ1Eal)r6nJp8~DF8u-aEmbo^F|CEh5#?c#fL^6I@NE5?^h#)F5OS1*Y?1R zyCA&JdFU=m`Q1C!4SFBBLx0~MDW~X@(ZyGQRoLK9Vt^~g7QoiHiuNrqb~36j?ZR>AQ-0QOK&{BJ1#D|ubD@%O_VU&g8zei8`Z?Rni`r;*=; zGdKKWyOcM&lF7*WIUfF#&7k-w7XB;br-0YW=K_gjN@DpOpXP#BY?Vxzte)fZ0go5@ zh;pVtgO4{&Wvqkat6)Bef2L~I!|}C%M;d$q?YJaU12Z4@*GZ;kR?Yi1mUbNNwE_|9 z!D2_9_-JMd=z}lPIsTLljx>0w_I5HW$9Dk?;|0~sdmrc_o~CZr&GGn+B+5n_lwpgv zsju|}s=r}FsZWIPzFkEmZ#|grid.height; j ++) { - if (current_game->grid.data[i + j * current_game->grid.width] == 1 && world[i][j] != 0) dpixel(i, j, C_BLACK); + if (current_game->grid.data[i + j * current_game->grid.width] == 1 && world[j][i] != 0) dpixel(i, j, C_BLACK); } } @@ -45,9 +45,9 @@ void display_foreground(const int background, const struct game *current_game) // Disease propagation for (int i = 0; i < current_game->grid.width; i ++) { - for (int j = 0; j < 50; j ++) + for (int j = 0; j < 48; j ++) { - if (current_game->grid.data[i + j * current_game->grid.width] == 1 && world[i][j] != 0) dpixel(i, j, C_BLACK); + if (current_game->grid.data[i + j * current_game->grid.width] == 1 && world[j][i] != 0) dpixel(i, j, C_BLACK); } } @@ -88,11 +88,9 @@ void display_foreground(const int background, const struct game *current_game) case 6: for (int i = 0; i < 4; i ++) { - // length = 63 * current_game->humans[i] / (current_game->grid.width * current_game->grid.height); - // dline(61, i*8 + 31, 61 + length, i*8 + 31, C_BLACK); - // dline(61, i*8 + 32, 61 + length, i*8 + 32, C_BLACK); - dprint(61, i*8 + 31, C_BLACK, "%d", current_game->humans[i]); - + length = 63 * current_game->humans[i] / (current_game->grid.width * current_game->grid.height); + dline(61, i*8 + 31, 61 + length, i*8 + 31, C_BLACK); + dline(61, i*8 + 32, 61 + length, i*8 + 32, C_BLACK); } break; } diff --git a/src/epidemic_engine.c b/src/epidemic_engine.c index d15b50b..51ca43a 100644 --- a/src/epidemic_engine.c +++ b/src/epidemic_engine.c @@ -1,4 +1,5 @@ #include + #include "epidemic_engine.h" @@ -11,12 +12,12 @@ int grid_get(const struct grid epidemic_grid, const int i, const int j) bool can_become_infected(const struct grid epidemic_grid, const int mutations_selected[3], const int i, const int j) { - extern const unsigned int world[64][128]; + extern const uint8_t world[64][128]; // In case of water, low or high temperature - /*if (world[j][i] == 0 && mutations_selected[2] != 3) return false; + if (world[j][i] == 0 && mutations_selected[2] != 3) return false; if (world[j][i] == 1 && mutations_selected[1] != 0 && mutations_selected[1] != 4) return false; - if (world[j][i] == 3 && mutations_selected[1] != 1 && mutations_selected[1] != 4) return false;*/ + if (world[j][i] == 3 && mutations_selected[1] != 1 && mutations_selected[1] != 4) return false; // Test cases around return grid_get(epidemic_grid, i - 1, j) == 1 || grid_get(epidemic_grid, i + 1, j) == 1 || grid_get(epidemic_grid, i, j - 1) == 1 || grid_get(epidemic_grid, i, j + 1) == 1; @@ -25,7 +26,7 @@ bool can_become_infected(const struct grid epidemic_grid, const int mutations_se bool bernoulli(const int p) { - return (rand() % 101) <= p; + return (rand() % 101) < p; } @@ -33,15 +34,17 @@ void epidemic_simulation(struct game *current_game) { srand(15510); + // Create a copy of the epidemic grid + uint8_t *current_grid = calloc(current_game->grid.width * current_game->grid.height, sizeof(uint8_t)); + init_tab(current_game->grid.width * current_game->grid.height, current_grid, current_game->grid.data); + int healed_rate = 100 * (current_game->research / current_game->limit); + // Make the epidemic grid evolove for (int i = 0; i < current_game->grid.width; i ++) { for (int j = 0; j < current_game->grid.height; j ++) { - current_game->grid.data[i + j * current_game->grid.width] = 1; - - /* switch (current_game->grid.data[i + j * current_game->grid.width]) { // Healthy @@ -50,7 +53,7 @@ void epidemic_simulation(struct game *current_game) // Become infected if (can_become_infected(current_game->grid, current_game->mutations_selected, i, j) && bernoulli(current_game->contagion)) { - current_game->grid.data[i + j * current_game->grid.width] = 1; + current_grid[i + j * current_game->grid.width] = 1; current_game->humans[0] --; current_game->humans[1] ++; } @@ -62,7 +65,7 @@ void epidemic_simulation(struct game *current_game) // Become healed if (bernoulli(healed_rate)) { - current_game->grid.data[i + j * current_game->grid.width] = 2; + current_grid[i + j * current_game->grid.width] = 2; current_game->humans[1] --; current_game->humans[2] ++; } @@ -70,13 +73,24 @@ void epidemic_simulation(struct game *current_game) // Become dead else if (bernoulli(current_game->lethality)) { - current_game->grid.data[i + j * current_game->grid.width] = 3; + current_grid[i + j * current_game->grid.width] = 3; current_game->humans[1] --; current_game->humans[3] ++; } break; - }*/ + } } } + init_tab(current_game->grid.width * current_game->grid.height, current_game->grid.data, current_grid); + free(current_grid); } + + +void init_tab(int x, uint8_t dest[x], uint8_t src[x]) +{ + for (int i = 0; i < x; i++) + { + dest[i] = src[i]; + } +} \ No newline at end of file diff --git a/src/epidemic_engine.h b/src/epidemic_engine.h index a2cdd80..6ad86d3 100644 --- a/src/epidemic_engine.h +++ b/src/epidemic_engine.h @@ -15,4 +15,7 @@ bool bernoulli(const int p); // epidemic_simulation : simulate the propagation of the virus void epidemic_simulation(struct game *current_game); +// init_tab : copy src into dest (for int) +void init_tab(int x, uint8_t dest[x], uint8_t src[x]); + #endif /* _EPIDEMIC_ENGINE_H */ \ No newline at end of file