From cf9d366133ec8044b00ce3c52753cc26e91d49cb Mon Sep 17 00:00:00 2001 From: Rory Healy Date: Thu, 21 Oct 2021 16:10:20 +1100 Subject: [PATCH] Solver algorithm implemented --- .gitignore | 1 + Makefile | 4 +-- lib/my_putchar.o | Bin 0 -> 3664 bytes lib/my_putstr.o | Bin 0 -> 3688 bytes sokoban | Bin 0 -> 170800 bytes solution.txt | 1 + src/ai/ai.c | 56 +++++++++++++++++++++++++++++++++------- src/ai/ai.o | Bin 0 -> 50912 bytes src/ai/hashtable.o | Bin 0 -> 72896 bytes src/ai/priority_queue.c | 5 +++- src/ai/priority_queue.o | Bin 0 -> 18336 bytes src/ai/utils.h | 1 - src/ai/utils.o | Bin 0 -> 37472 bytes src/find_player.o | Bin 0 -> 6568 bytes src/helper.o | Bin 0 -> 4760 bytes src/key_check.o | Bin 0 -> 6312 bytes src/loose_check.o | Bin 0 -> 7232 bytes src/main.o | Bin 0 -> 7104 bytes src/map_check.o | Bin 0 -> 9424 bytes src/map_reading.o | Bin 0 -> 21688 bytes src/movement.o | Bin 0 -> 11400 bytes src/play.o | Bin 0 -> 17240 bytes src/win_check.o | Bin 0 -> 5400 bytes src/zone_check.o | Bin 0 -> 10008 bytes 24 files changed, 55 insertions(+), 13 deletions(-) create mode 100644 .gitignore create mode 100644 lib/my_putchar.o create mode 100644 lib/my_putstr.o create mode 100755 sokoban create mode 100644 solution.txt create mode 100644 src/ai/ai.o create mode 100644 src/ai/hashtable.o create mode 100644 src/ai/priority_queue.o create mode 100644 src/ai/utils.o create mode 100644 src/find_player.o create mode 100644 src/helper.o create mode 100644 src/key_check.o create mode 100644 src/loose_check.o create mode 100644 src/main.o create mode 100644 src/map_check.o create mode 100644 src/map_reading.o create mode 100644 src/movement.o create mode 100644 src/play.o create mode 100644 src/win_check.o create mode 100644 src/zone_check.o diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1d74e21 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vscode/ diff --git a/Makefile b/Makefile index 8a4630a..5b6737a 100644 --- a/Makefile +++ b/Makefile @@ -5,8 +5,8 @@ ## Makefile ## -#CC = gcc -Wall -Wextra -O3 -g -CC = gcc -Wall -Wextra -g +CC = gcc -Wall -Wextra -O3 -g +#CC = gcc -Wall -Wextra -g RM = rm -f diff --git a/lib/my_putchar.o b/lib/my_putchar.o new file mode 100644 index 0000000000000000000000000000000000000000..0a8815e6bf6d0be2f2eaee3c2607f47e9eb619bf GIT binary patch literal 3664 zcmbtXO>7%g5PokR$1YAy($F?hpe#};t%TQhQxe+J)=iZrg@^!61QkN=+TPd}_HML4 zX@ZbIEeC#tM5RjfKsj;Xh{T~1AW?}Qi5o{GB+eiqe#8XV{abj0we9t%=hN! zy?O7=+Aqy7oi(HsOj4W_eT`8ezRvdLiV`bgkJv4KyK~8K*MWp=WHYE4Lot&ovtf`ntj3HqveZzz?S{h0 zD$S5;Oy!X|C8H6CmhXHFTDmS|ZjXZlL_I?s&d60+&d3$xY9}L~lx3JO+Zmo56>?18 zpC8Yq@>BUSxhpfe7v{NNqgg87gLK0}r~HJQpE%N@@h%{?%Q#+8Y;=O*Pi%pomO z*?8pKxUu)<97Gv@?Xra6Wf;!9epw1*;_BQ4WVghr$wwyLyb6^*n&a6Jzni!et1OxX z8RBY(#2$MPBtvPvWhsqo)H5W(2c8lYcuV_opwzWqrfk=-Fhc#Kt;P- z)%7T>w`|{nA`20@?I3JeEtN4X#f~^LhRn%fnKp(WOUvQ0v;pktv~l6xw7dZODrMvb z?WXHAOx)a#=QhoMA~-}=m{9~R&kvPDe;Q)p@m2FodDbkKtZA!c7P?{NIwzWr>-gz&ZK12X)NPIg- zf#Xervf-ZH!kd(W2kEYu3HicPLT--AsgX?fE!bql`Q)inw3s)a%WpqjYGCKVIjH;1W<8z~swebx7E=97%aGzJp4L?GO2Q-qP^H6u+zCJU_TQiu5{MOW5P79_s`=bB^P_)elJpE-_C?qZn)9XAQby-n_~u!5~Fv^n6R zAM+MVzSFU-(Af-y)v!ZbShXM!mO>j&EoxTV?wSW{Jo$cP8 zw(GDxq!bo3JnV78a-q#y(2bzYLfa+1=|&bb;C06jwEV*P*rjA7+9x){N`T zu_`1SV1PK+pW!JG@Jv(~Aby=%7<|(e!FOKe;ZDgo#>f20Jw}H$d<`J9O%i_LG3I~u zp8;PzCdTLdU!js9-4=c^4P5^RwEo}80oRX^zWzDD^q2sNB7v`^pi)fW$t!tQ)8#NVoN1 zY*7AhC_kSw%#U9~J^#yqVN9MUh>EUJ{ztWhtTKNCtOxmjM+Z{BKkUaG`zy?R#K@OQq@dJhJ3(_K;ZM^)rlp8Dr}H2gzTri|&6De9^Q5Pm+EaP=EY3vp?_4 wpxhYe8Ok63e~N#1p|9?bXG*{O=zo#!-$SS*NUtBxX^?-G5`CHQMN#+v8^s4kmH+?% literal 0 HcmV?d00001 diff --git a/lib/my_putstr.o b/lib/my_putstr.o new file mode 100644 index 0000000000000000000000000000000000000000..c706ea4835a5e89515d2f900a1f0aee7b1753742 GIT binary patch literal 3688 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

oU{sSPJVrUSDJ?j8W-0W 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 NiI?93rs7ck{{ZB`OAP=3 literal 0 HcmV?d00001 diff --git a/solution.txt b/solution.txt new file mode 100644 index 0000000..f14df7a --- /dev/null +++ b/solution.txt @@ -0,0 +1 @@ +drdrdrdrrruuuuuulllllddrdrdrDulululldRdRdrdRRllululuurdrdrDululldRuuluurrrrrdddddrddlUUUUUUruLLLLLulDDdrdddrdRRlluluurdrDulldruluulldRuuurrrrrdddddrddlUUUUUUruLLLLLulDDdrdrdddRRlluurDldRuulululldRdRluuuurrrrrdddddrddlUUUUUUruLLLLLulDDdrdrdrddRluulululldRdRluuuurrrrrdddddrddlUUUUUUruLLLLLulDD diff --git a/src/ai/ai.c b/src/ai/ai.c index 9618144..74da426 100644 --- a/src/ai/ai.c +++ b/src/ai/ai.c @@ -59,18 +59,14 @@ char* save_solution( node_t* solution_node ){ * Copy a src into a dst state */ void copy_state(sokoban_t* init_data, state_t* dst, state_t* src){ - dst->map = malloc(sizeof(char *) * init_data->lines); for ( int i = 0; i < init_data->lines; ++i ){ int width = strlen(src->map[i]) + 1; - dst->map[i] = malloc(width); + dst->map[i] = malloc(width); memcpy(dst->map[i], src->map[i], width); } - dst->player_x = src->player_x; - dst->player_y = src->player_y; - } /** @@ -145,7 +141,7 @@ void update_explore_table(node_t* n, unsigned expanded_nodes ){ void free_memory(unsigned expanded_nodes ){ for( unsigned i = 0; i < expanded_nodes; i++){ - free(expanded_nodes_table[ i ]); + free(expanded_nodes_table[i]); } free(expanded_nodes_table); } @@ -184,7 +180,6 @@ void find_solution(sokoban_t* init_data, bool show_solution) unsigned generated_nodes = 0; unsigned expanded_nodes = 0; unsigned duplicated_nodes = 0; - int max_depth = 0; unsigned solution_size = 0; // Choose initial capacity of PRIME NUMBER @@ -216,6 +211,39 @@ void find_solution(sokoban_t* init_data, bool show_solution) * FILL IN THE GRAPH ALGORITHM * */ + while (pq.count > 0) { + n = heap_delete(&pq); + update_explore_table(n, expanded_nodes); + expanded_nodes += 1; + if (winning_condition(init_data, &(n->state))) { + solution = save_solution(n); + solution_size = n->depth; + break; + } + + for (move_t action = left; action <= down; action++) { + node_t *new = malloc(sizeof(*new)); + bool player_moved = applyAction(init_data, n, &new, action); + generated_nodes += 1; + if (!player_moved || simple_corner_deadlock(init_data, &(new->state))) { + free(new->state.map); + free(new); + continue; + } + + flatten_map(init_data, &flat_map, new->state.map); + + if (ht_lookup(&hashTable, flat_map) != NULL) { + duplicated_nodes += 1; + free(new->state.map); + free(new); + continue; + } + + ht_insert(&hashTable, flat_map, &flat_map); + heap_push(&pq, new); + } + } //---------------------------- @@ -224,13 +252,24 @@ void find_solution(sokoban_t* init_data, bool show_solution) ht_destroy(&hashTable); free_memory(expanded_nodes); free(flat_map); + for (int i = 0; i < init_data->lines; i++) { + free((init_data->map)[i]); + free((init_data->map_save)[i]); + } + free(init_data->map); + free(init_data->map_save); + free(init_data->buffer); + emptyPQ(&pq); + // free(pq.heaparr); + // printf("%d\n", pq.count); + //---------------------------- // Stop clock clock_t end = clock(); double cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC; - // Show Soltion + // Show solution if( show_solution && solution != NULL ) play_solution( *init_data, solution); endwin(); @@ -257,7 +296,6 @@ void find_solution(sokoban_t* init_data, bool show_solution) printf("\tExpanded/seconds: %d\n", (int)(expanded_nodes/cpu_time_used) ); printf("\tTime (seconds): %f\n", cpu_time_used ); - } void solve(char const *path, bool show_solution) diff --git a/src/ai/ai.o b/src/ai/ai.o new file mode 100644 index 0000000000000000000000000000000000000000..40028f7500a85c5377c2fc26ab6422e5da40f839 GIT binary patch literal 50912 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 S?iDNlkq+9^{Cq{c{Qn=db(Dhu literal 0 HcmV?d00001 diff --git a/src/ai/priority_queue.c b/src/ai/priority_queue.c index bb28c67..a71c428 100644 --- a/src/ai/priority_queue.c +++ b/src/ai/priority_queue.c @@ -101,7 +101,10 @@ node_t* heap_delete(struct heap* h) void emptyPQ(struct heap* pq) { while(pq->count != 0) { node_t* n = heap_delete(pq); + for (int i = size; i >= 0; i--) { + free(n->state.map[i]); + } + free(n->state.map); free(n); - //printf("<<%d", heap_delete(pq)); } } diff --git a/src/ai/priority_queue.o b/src/ai/priority_queue.o new file mode 100644 index 0000000000000000000000000000000000000000..0302ed6c593400cbe27fa51c3e26377da50d3a14 GIT binary patch literal 18336 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 literal 0 HcmV?d00001 diff --git a/src/ai/utils.h b/src/ai/utils.h index 7acda5f..165c017 100644 --- a/src/ai/utils.h +++ b/src/ai/utils.h @@ -50,4 +50,3 @@ bool winning_condition(sokoban_t *init_data, state_t *state); void play_solution( sokoban_t init_data, char* solution ); void print_map(sokoban_t *init_data, state_t *state); #endif - diff --git a/src/ai/utils.o b/src/ai/utils.o new file mode 100644 index 0000000000000000000000000000000000000000..76f58467cbd6493fe7c8d84daadcd5ef721622cd GIT binary patch literal 37472 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 literal 0 HcmV?d00001 diff --git a/src/find_player.o b/src/find_player.o new file mode 100644 index 0000000000000000000000000000000000000000..37fd3b8d0dee3aa2c40c3a1b38f13e105c94c028 GIT binary patch literal 6568 zcmbVQeQaA-6~Fg6&vEL+&yL+TUCZhYw@tiE9D7Zk zBY%`+8l})7h=QP9CI(ukMhJ;N0P(3(0YWVkbQ@9;6=ItBgCX$`OhTYZfYxbn&VA=N zFEYsfodCBy2@K5r5^3 zAw-L+MnDy|U6zpFEm_*%@8Qxir&NiBi1fEliZ>GCiy z%p9;$;aVAPAQdKKtcu(R3Av$zZD=L}li4X@w68jkysPO@Lf92Ttxtib%M~moY;c9J z65_59u`qIX;FBds7@bO!b~RBY>~Mvc5_Uq46^PmfmoQehJP%|Q@^XE!8^Xu}+=4E! z8G-g0P(6T&v`+)K3pvrD3@qh=ERHKK5%S7?P>T>s(%OU}cv#4UOF~A2DhlBd)^8yu z{Irmhwz15 z@nCc(6g>byzzejk@mRn{rR1aQ*k$XwgVDH(6Ev4twS(A*0(+%9Vb+&!1Tqz0T3yaeQ+2GfX`51g70%m*%a&9_|MFyAsCXVpeBU1E~HiYBbuN+uoNDDw%1 zcau8oRiD5BtYNAJVEDj_0a(LS3&8NP6$7w_sTP3YudEn=HT)npDHHiN2)rqmYyy|j z5b3L2GtOL!5oS3TpO}_c^=Z+!F~K6^^9hcaCKN51=K@Rd1hf5Q<`YwLSwtzDcrMQ7 za?OlJmKnjp)MLfOW%qA48w9>VG$7_TxM!OY{w%eE<~SZmvRpzI zNV-i_ieYBiA9iVp3keHEc{(YMGrQ<{LifBM0QFrH>O0v`vr7XYh9A`RB*%&Jc_Fbu z*29ayC-#FZ<=s#R+|?@rP+6_y1zbI;R8PstPt?cYi&-c+W1~|O*%`Z%%41JdEuSst zvQDa~vNWY=bF+njK1=%Lw@t%;F&Z^nrP(QgmuB=cN%P)E&8WX-`as;2GJSn!i~q10 z>@tm*X#!^WzYh15-&X~5>6#rfeTNR2n}yM0_#~s# zhhx0-=#CDQ%M(I8wr}6=c=yR%-Ko{7P|4o95_`81;C8cNIMLX7LRImo-@p#n2Nw?h z86clIA>?#eu5WJ*T!M#V1L*L=p*{%*Lg6nO#+O%x0(-H+L%%*$!Z_oS|9OXy&{_ZE zKh2DMO@EJlARs=sL0+cwxjkwVT(zoAaMhtM!7Y$FJ$b5{0ERCs#20|# zXw+iqo_QoVG)o^$<;N?+uGG6~{sn?KzD9qhtcBpVm+@OzU>K`iqE?LdCBoMcj$-3A z2mCg|F-|M-Ncfw^@rOzGFj2-IB)MP1&yzf;;W?6zX!sDxAJy=0QvO*D|2g4~hK~{c zjE28S_~$kJNy5LR;a?+pUc--){ep&npYWe(IDQ0i+;T}{U#^q=?=<`#lK-UPA13*4 z8jjC44)^z}`)dsM{d)?9^FZ_Pe$5fSO~Y%1Kd9jZivt?Ybr{$1mq@MZgp{{pN5 zN55u&m*fEr{};)JHGF_RG`v2}zn}0C&Hh=!Piy!z;k?%vhai`vZ*mUS05iOIfXLl z6rauID)u>+Cd&CGmf1?y8HX=F8MEYxg`EMbVQ!IvRs*{Wk#eA|Nx|nG+8StcNFI0U zDQI}6>`HBhX0nT;g-UkP=0$yQir+n~DenhI$`JED14Ma$7~TX7`g`{fb^Qo789I!= z2Jt=jLH&EdSC5I)^87jPp=e@@?{)l6XW;UV>(n}Q<4Xeu{-{Aa%oRtMOT-?a&E{XA z1?|$5nkWvh;QuBy4?oZfqx+v)!GDet<@Xn*yDZlyLD6jeZ*{sJ?2qfmkox+c229Th zJ%9Rt&i|%Zc$MdZ|ukPW%6INa5;+`Moqzf41Wh0?Dw=|F2dv=XG5aAeujSu493*` z)8zjI8xqz1Zvft`{@ql6t}BYz>#{%ZOS8GbOkAM(xgUxFhW}RU{)lOh2p~dyfu7%w YC~5Jg*AH`Q=08ID|7Ouuak~G10hm;R5&!@I literal 0 HcmV?d00001 diff --git a/src/helper.o b/src/helper.o new file mode 100644 index 0000000000000000000000000000000000000000..92fe570ebec977c4c1812c6a1fe30b3db935551a GIT binary patch literal 4760 zcmbtWO>7%Q6rQ#7?=(#sppA;kO8m7@ukEI^rA^cPG=C5!Rg;L`%-Y$+R_)!eyG|1> zt=aHZ;8Lj|D#YIr#07ByL@&SvL8bD(*?G=*vjD@1N-_w>qX@KMC|#4EMw5u1{b2 ztmDSg!sygQmpDDKFn)IC%;L=aTo)n>(P?D@@4Q#AU2`ZM44YMZ%^X^**qiyltJK1> z=MHzl)ExC!YgNY$1M@;TES1T8*tC7e^wwZxS5!QcC>>yIprT!=1ZG%r%+VQ>BCk7s zX=)jyvw9Ba_ znmVG%Xp3~Mn3656Wj7Rw4k;xfoy=pTTJ@038}Cg}erXMV2p`ehW-N6k0Z3|4e?`ze z)W6?b-9-uR;eBA6T5b}nz|tB$g{%s6iS9OG^cj!$^rwdAqbewdH!d1q|E=%-S=dfA{*xqb+3uU$4oV$WM+dxU6b zg%BNF^qqEcF<_h2GMv%;1>n`GM1Go zyTwXv*%6}TRMs5dD#D;rE>t(Il1$fXh|VZ2;-!q%#Ph92TOUnrpGqRBpYDxe)ZC!F z>N?9NE=a|5SIq`QDT^iBSIIl|T7y>BOjpC2>zrJ5T*ogL zNwoc9>Ey<-Bk3cD&Gf37o*y*RD|WEy7E8Y8dbJ>3b1#(L<#cElD%2wBl_0c>=hJJx z7dpkz^V5_COJYT_Vh1HwQ?rtyxT49jKJ}W^HzHRr_l8XdCC?A#b~7cf>STP+-^?sK z>zSfgT|1P`W(PBNfPKqHLgTZ8LPm-L)T1M&m>M5HZthXFXXq?kLP06GdH zv|TU#&^=T@9M^SV+*c0}4>DdpD~yd^V{dnR$D4G#z#otd#wdDKx36cX zwA;R(sBW#>Ry3gO_s8PzQ}~$}{;0w)#c=rV((1+?oFN?N8K(&Xn&DeLYt4>l1r0e2 zhcFCcIE>*L?za5Y?EKj1Y<_-na$#aIzc@NJJCWCVP^461v^%PP`%Xlh8+WTu!|4H( z1bft&?fGuS?W1}`uNZQ%J=ZgCk9vR*AE(XshXE4B?N3CowBJEI+m9$bZa<~j|N~nreLqk!<26#a5T{nKqAx%#P~OnC>~TZ%RMMq9MJ6bF3D;*^8Tpg zqcMCC4NNo~P4)FCQQ&@ocs-~ci0i=kBM~eX)XeywO15M8Z%Qu3a7(QR|4<-~^K>MN z4K>3IXV3J8Vi@Q5?E?+xw-3Eo*q^2!$kcGypOL5#PiZ*p89$-nu)n12Cl${1Jf!gF?t=3jhQ0nea=*h3 zd71b=#Boy@z*e^xRAeIr=(2TI=v z^v$5;Rkvo**8_bMg_|mlQ_8RScGcl}-0y5s0MwGtf#Z!RhW{5B=W}6sFEKd(5eC$J zRb5cNSLhSu!5aahZ%s*0&X^Q*?&>_$IL`c8JuN9We^j^JmJmie^Vv;PBjDefg|DkT>lpdi^n8L ze4+dK@1|e8es2?on7mG6CH**&Z5ZD>JDd398#DfP5G2l_C`9Nlo#OSw_f<3hzt#GG(4C2o`~L?7 C{QaQ- literal 0 HcmV?d00001 diff --git a/src/key_check.o b/src/key_check.o new file mode 100644 index 0000000000000000000000000000000000000000..941ce77a2985229b33ca868e633ce426a7bb67a4 GIT binary patch literal 6312 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 HC;R^gVqS*} literal 0 HcmV?d00001 diff --git a/src/main.o b/src/main.o new file mode 100644 index 0000000000000000000000000000000000000000..10208f841307b5c9fae191449727af378170ca23 GIT binary patch literal 7104 zcmchbU2Ggz6@c&Tc-CvLyI#j_Y$v2_Tbj0ro!zZNNz*i5JJ?Bzsnf)6oLa3lUXQ&? zc4y7(tbd9MCJ_>8TG5KM@PLGbc!56g(6p+A8p#60j}THH0D*XfqJq>aB0>ozoO9=# z_4w`#FBM#A=iKw1bI-kV?$6BZSH>qNVwxtnXyS<2)|i64W4m6I)uPxd_K20LwK3nQ zSDRj??f}2md*_W8kNx|?KVxgz)03Ab62~uI8{IsZ^|~f6{%r2A*mAV@%1LeWM%f#C za~jmm8x1cpwKjrqbk|gt`>VQ|Mb1z z`Vp64#2si82|4y2Sr56yv;@*vtW$~(UnG2?#eJKBLhmptjwfOXsl|L-hXt0H7L$Ht z@f#b7GC&zXOB<)rfl8C4_MKrEo9szTr-B~D?m{~kIm|%-T}ZTnM2#&VySe@_I3!sa z2c<`w?$Q|uaT`~k09#9W8Wdq9&ciju4zaFytFFJ$)2esu+2$R)<3j7x?oIV4_0-UrGp4UX5RseGnsxU09_B;K9bTY>wADnL*GCB#)m9w|>M@ZI8Fbs-g}Hr7Hpd`xzhOld-m|R#ujD6TC+fn6 z@S1irbsJpeNeonLxFrFoIinY(aoEt#7~S^(@C*Y$XS_UQ=>0}F z)U^?#d!KQ)h;?ZC>Z~z{m06<`Mf@qFTgqNzAIdpH)049qqg!_~P)*GmdR$-4^c#tI zpApZ2_Eh|Q{H!1LK*s3DM*3O?#bZVq#anne51ze-7T0?;h~;HwAve{!vz(C^JeiwL zqq6MSiy2hPc6G&eMWb9_+kO~H*Bx%#5q4nAGv)Ev<1?9~h0kOPd2`szXRDZ4h z+m7v4N}yV9sr=~r!H2RB9mr&tGuf%(Om@j?Y&fN|TX*WsMz-m!Rh-4FXDw9i1{fQj zRXUelaqFI4^6G9DrU&nX4W+8pD6<(JpdHai(I*0vvY3U-N-H4 ztGQCWw(?*;pC8Uy4NOeUcDzQQo*x#i)WHx+wG}ZxRA zAhXgtwmDJ8b&)b6DY+vG$^iU2V|6Z~rAI zXvC-fuE6;DXu}9$(eIDo*$6%y!4E}nKCsNmqj`TJ&mWtd8XKLQpPHCBJw81@Jvufy zKJPDkT6g|(r9BRDu}t|w&KSO}{Oguqo*|Cs9A=w&i8yAcH^4t0;Fv4+|6+h+o|wy5 zJkT+=d^IFLe&s}t?`(_2`$#fBOZpuOPvOFZGUN*xA6HkN^m_w5xW@4jhK1wb^i_fL zf`$1U#m9NU!kpjqMt$7k-0yLPI~0fW&v7=1Kdtx|iE}>K|9RpoivLOCYYHb-d|BaR zq+e8c7sa_u992GR5WPm6$MYolUkPxWYu;&ZDV$XCc7Wr&e}m%uBET`u-%0`1{0B#XRuq+J_2XCY{$K`r}^WGDPt>&OKz< zuW&wR4iV=(KTGt_$OW4@1c z-lr!ZznT??%UfKl3{ke$aOl z4@B^S!biyea0LIX!k;AnsR({X;XJ=~1g|Na&*k+9zNv7YuS*g9n+oUo;&ThlI{Y{f zZ!7-1o_`s^-%Zn z9{9&X7WU`y~9vsKK-Mh!kzgb7~-zASUiv)4UgE?S-? z%!Ninm~I^v^emVKQ0=N^q7x9y^_nY$7VU-R@_fZvszYm8w-y#$dv%AoS}*O;E!T3E zZR`Z2`prU6wc^+u6~-Y<`0&AR9br1~g=NC01$<$_7Z>TvPSb>MFZek0HYl`Ro?mjU zn%&C4N2=iS19Q#mhJzKkqDb@&mb*Yv=L+pbyo40B{e9qrYi-Azf?kAQSW(;K`y;Xk z73U)9{C>!0ZqE|^u&&erp5#$a=6i;{K^-ttLp25MP=xG zliJ5fasbu028OWlXL|h>!SQ2C)$yMPrpCmUAJXB+=MOS0s_%2a!un75OZV3I3+Ar} zero@(0#jpR%PdYd6kbQZ*6#Z<7{dB5QvWYeL+l^dvfBR-fQ9w{9QAK1Mnx6hhxTFp z|AzYKb&4__(*Nt!znbUQXhU6AI%JjQ)rj^Zbff#h9xU9B<AEy literal 0 HcmV?d00001 diff --git a/src/map_check.o b/src/map_check.o new file mode 100644 index 0000000000000000000000000000000000000000..b619ee338dfc3d3702bb3096a77694a32df0d2b0 GIT binary patch literal 9424 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 F{{j5sk_i9+ literal 0 HcmV?d00001 diff --git a/src/map_reading.o b/src/map_reading.o new file mode 100644 index 0000000000000000000000000000000000000000..df7832ab7f3f00ce6127814a4673246c7e9327ae GIT binary patch literal 21688 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 literal 0 HcmV?d00001 diff --git a/src/movement.o b/src/movement.o new file mode 100644 index 0000000000000000000000000000000000000000..109e4b4d28a4ea65c33d38c0036105d6c5d884b0 GIT binary patch literal 11400 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 WN)R4OIMSy=`hFU?6Rb$Js{bFQ(NW_7 literal 0 HcmV?d00001 diff --git a/src/play.o b/src/play.o new file mode 100644 index 0000000000000000000000000000000000000000..79e1141f26a0774bc8a94c4e18f5a1bd2d2ac36a GIT binary patch literal 17240 zcmbtb4SZD9mA`K$Z!#odCLut=hZ1p6s3w^JA}UBGCS;<6AP|AAI+@J8BqNiVaXvy| zsUS#Y3@EAoly0HWuKL5SUG=xsYU>9o7OPe3XLYxtb+zhN7q?c|udRE|z30x{++^%_ zdw;*Yd;kA?&bjBF`|<9)_p+reu+(N4OeTY!%L+)cjICW?8MypZivK zhU)nei!Ax`iW<6Ap<&-~E8+AgFRP{@t5B z&Hmh%U#IYOb;8I{D;ODC?eY7EG9GYyvuAApxURrZz|-f?UCrAIfIu=ZbctuspS#g> z2t4rTe&V@{=MQ-9gFFC|hk3rs^90Xt^!%FV`#i5e?%#f-*|*BK(sz+>#hQy(t`Lm_ z`E?$CT^%>@kvkzAgu*WF4-{_XjzD1__kg$Tt}5~P+*JWjC0ti~>fm~b$LoiV`Xm0+ z#1Li6Ky*bQ_lED1$GG*Lo(A`ftHF83+%uZR_^$C??CbQc?p)>1ec{g?^I!G;A*fb{ z`D#A4O^0!GRvc~h^r5;R3Tv?dJ=*#I$+$n*lfTJ8V0R3LxL_raJN{SOcj3Gx4}XUAhEmct7W-&d=Ej9{TweHyIYSqacMf;Gg!ya5}|z7D+3OH_?3>_v5xIWoq=;U zdz{%fn||5!d~5EL+;M84U|kTR#@DGNtZ^*OY93)M)zT ze)MIO7AJOmaODYs@W)O6)-g2kx4GAwK7pCF{V{{rb)0o9`!1}^7_8hRS?3jjTm)8e z?szWd>HDh(m=w4n7}Qoi&H+ysl=peIf}>D?-N0RSwKlT5JO`ncM%G<*BVUj1s(oTe zVJP4G{Lj#HF_hfAKX>%KrND_1dGEVW1PiIbfec&SwsIL8%vh;@_PcS6l>pC}6XV1x z@S>(RJ{E$p8BQ$NY^6La5t&nD2F@R-wnu<( z)+C{3uK<@!`Fj8d1-O*Eb4Y;8#(fKP?h+tawjaQK0(5cT4hzujyb25)5yRssopL+K zmBAk~Pji)H?r^q(fWwIu6*!RS*Z3B!0(KDq5?fy=4nUF14nu*X+B%Fs%MKu3)-Y_3wECycUTsGBIzQ%31gsH+v|R{~8D=xKqb3iOOX z(*$}}py>krTA&jIdQPAd1$thf83Mf^P@O<88V+0{9)Vsq+%JGHvjuup^v^5MzX~*0 zpx1=ne1VP$v{0bejj~t4O0z)k7$p%veu3T-R#r1HD!Yx!VQ8L@N`?JRV;qJ;NWNuE zQby%1W2Q1HZ;Lt_mA6G5jmqyu9gWKGMO_)}ATav*DfSFB<8VI0XV9H+oq%=rz2+=* z+~LHHf_5gG*u41W((Ej&y2+&d#97W)Gpp_oC7H9L?2n-7yiIf2)BMNKsa^97j5!9wtH7x)NGLZg#P9H2T8%SO$(*MS^o zM}SGNwd1f~1$Giv86D;OKu@OU`0ft$zAdm%Pe$74n1vFyVK`nRynxRYEMlq^8LW8- z&J+or18^=Fm}+!_UV(oN_%(vJ4c@EX zYTK32(nU6y%lWQ!t4$;Td@3y22GCidV0fn*E5Yx)(q@p$gPdyNCIE9_1hAt`1(|lNyXAQ)FjPozhW_k!h~Ixn&BrGTBrd zL-88bg01GKEfB-n+%|(%8BHKR1&R>mCf>cN*8*>=9c}@=X(J2?z3JsfXAQP;0vOHv zNk&gB2Rjo=v3iCy%2-_k!>+|$va5`pG=hQ=V{B%DVz6n#p9lUhoh346W8MR@oFL9% z{7y_r%icgMkh=K&6^(Yv;=jm!nyr$>sr;4&Q;H4m-6Fv$v~!oRkBrU(63O2c23sXs zC|s$@0>NC=x`%QnyTR!_aD(#(uVg}0Mahn*z>KVwtPIe|S|upFC}Q;w z(>WMmYI z7iBCCQSS~@E_%;&dv^8nfwCV>BL)Wg}MO;KBvL1@r4; z(Rg;SzBit2?2cyABSZvUSRW8o8zFyuq~-}ZmVZWtxD^YM~#)PNI) zIUX8v46Iw{tai>c?GvHOa5%Xm@LUDj|2bayWu587vSC(>%+BkLj9CH&JA@4hyJNq= z7nrATxQ2_{4XQ;4>}wqpor}%!4#Sq201s#EgKq(tYTE6a{%F>KfMHMUF&)lxZRIed zd##KWA7E)Q%)tzcTO0T@rC1`7wu0e4E4-cslc7j3747ZIuvjFNVZn4?B9-aR_OM{b z@?b0xUJr^eIbv3v1+$>G-r5K%EErE@qWxAP3o0N83PCF#VeJ=o)}7aMW?hrFVP1o` zuD(B$ja!R*t+yxQO#tLT=se14w5eH4G2**O{K3N@2#GxYGqhJP}^;jtuOj*5| zM3Mz#R%pOVK*z!B4XJ3x;(ll2>1c1lM6#X`Ml7EZ*{pdF1{ zEC}6LZ>7>Kp6!P)hEi!@lB_q>Z$Tj*>b3eUFasO~IUNRr5WoJ=;2^(lggA#&iC7Gm zEygfyWrBQc(5*Ch$h|@kPDHFQJQM5>tw-z7gJ^%h6=5-q0>6y#9UTNe`4Hi_K=86j z$kO0;qNfMiVGv*PYeOcH4fn;svz{mnaDoLll1wlfiD8hst=>VFj&8DG79{!n2txo< z3=KjfnLZxJlm(MWw9%4C#Mp-Z#DK-1W2jY+V(9+@iP4^N7)+2SeSFmiO>5l@@|8=F=#W3bYgR#EEQ1E+?A!12c| zkn?9vOI?+_Z0)YDu&b}#mF#d0w!5|(?XI2hw+H_A!rwuo)790^>)Xe!w_V}tYH{_o zxRNcd!4@#!0|P!V-~$6bFwpTA4D`FY)|a^|+gwgxIeP+pI}CrA_(LY}@p@Z}tM)p3 zi>q#TNsDXtF4O1oe%s-5E!o$(lAVwC=n6X?+{Q?D@iJyq zjh(@>nK6=m^jjq^WoP5ZkjA;jA0LmX6UTIOl&8XiDc(gW8vK#(C~5c|4>A*!ILPOs zrvi`jUQZ1`jK#MW;V&q{<1di0?DQ1jQ$_gAMflyoW549|kPlJ6Q$+rIMfh8b@OKyC ze_Dips0jaf5&mi5t6=8JpJOtArHK6Ritz6i;g6Gj$as?WKL<3{xZuyVv3Pt-Iu`FP z!cQ*3&nUv5UW7lR2!C!7UjCqK2%Oi%;4&94-ce^rd1h!2EN}4zg3FgKUDdWaxZ2ke zXbUnrniS3|qmEeWNxyLH8+Ay)+k4@FSva?<_kMARgDW0a>8FMKL7|){@&{S^%|Pc8 zl%P8>oto${K&K|UljjelBMxTygJk}!AP$%~QRGmpA`9%75+1Y_b5CcSil%J zb^erLU?5?Jb4mJHMZ7LQS&=_Qkw00HSN&{OuqqH2!7c<->H@?qk%ikS6~Y@p%5gB<1ndIVL=RV3PbQio;Gp=lQ!S74#0mj3h+KbhK>{Jn%v*7!>)4oww<8LK9cWL}<)ZYg+{#ufMRO4@@em$%4r;|T& zJ;}H&Bl$mQ@+T4hna1Bt?aK3pv@=ZnB=T4C=a8L~HU2!Z+obVwKUt#j@NAqXxo=7P z^3~NhHTg@0IE!jLewv4AgT_xH|95Eoe&TP?c>G`v(+@O$CHZ-$#{Y)w$hUsde|esJ zN|V1xm}jqQ{4BEnj>gM<=VOf@Pwm=CPqsTia`HSQc`xxZG z(D->2x3wBC-||`-zk=k`8gHk0CC@X`|1U}IdQHBX{M@hcPZR%78sA9v@7MTQG%inS ze1`m#=OyWnJZJn~lix$_exdR2lO6GyZebrjM)52qzoh+Nkp4uCcaXe1k4gC#$-Z2d zlK+_G{hFQmWWQ767ZcyD@t2VO%^LqB>aX}Pz0j|2YInaT4_`*{bi2mOj~4DF9@X*p zg-j1?@@0g7rO3~e!jQkD$tTI5Hxzm564&}~O`i%e_v8~EdGJ`S2g}^ z;*Tl3oSWFhhYF9yX6o;sG=2f`pAnB{k$QsGMJXATy!@167V#K=RDGW8%+dH?5#ONM zxq>EKi^j|EZbBOWL$VXsczHg!M&spucb~#zmuQ)=+Y}y64^e-QXuSM@<2j9gpX5K& z_)m#<(2qJ9xBnr&TH{?5hi_=S+)vKb_*Rl%rSU6>@6vcVUi}(>Ey)jSJbvhn>2{5u zOM&~D!ef_YJRc`suE(X+-(MEtpV#!>|{+PyJPxIl;BK&`7y!;*hpGEjjG`^PX ze_n*Q;i82k`zxRCIEwJ)8h^e}XYL}r_%gg;|27&I@sapwewJqE8QLG_6ycjRek;kJ zQG{Qt@k_}cUlG1TE!oQ;Nn@Ik*MR>X$@%2SrFV6|A zA-%C5K97JrlM;EKET!O+gocbYm|+e4bA^WPbec7!5(rSdsR3S@aG{9Ro$U=q<2?xw z<>gQ}e3UUD5q!TiLNb&J#e3oV7!sC9vBf{|p=xM~HNZQ3{xweneDGv7z$=oR`WTBQbAu!w$|Hg5U58Es``5}-QOMeT#EQ5sWOHEQw=66G-EUR+2lD^7eS(kkTI6OLQ zVPc0!zYgluB>OM9SD}D5b^Rwuf2Y=gB|e*v0Q{1yNJ literal 0 HcmV?d00001 diff --git a/src/win_check.o b/src/win_check.o new file mode 100644 index 0000000000000000000000000000000000000000..413161b4b4e8d541e0710f2ceccb0a230c249e1b GIT binary patch literal 5400 zcmbtYZ)_Y_5udkrYhQf!-PukWn?&?Poiq`>vyDTV1UGe^Cb6qilQuC;gy^xiUf*4F zw`c9{8M~rwln4-5s+#%(0<}uj5AdZQ5CS2gN{s}i2q6R_2q7UP_=H4-QX%oTQkZ$~ z&3f~4kr0e>J2StTH*em&zs^f1E2k_WfJwk{*wz>YxRBqL=cG6XyWu|gYyPAETDbat zX7llh0~P!fzj))t*~(^RVr;?v$MoM8H+SB;d<>%E;^yE7(>MM+uyFN;xIAk?l)F4D zCc3v4uKp?|X58kBP4^Vx)Ki419$)h}6E zv5aD(PuXl@skGhnBd{`3OJ^=2W+@L_$rib#Gaea~m!$&9Fmu+x@W(JA6*{|v+#u6- zR>2w^c#&jf8InptDY^b<&@!f!yj1oor684}Qik&s`9S9LO&_cgX_-=%QK=kK%1)^q z!5jmOx&wb;?MlCjY=C5umx+?dB@(Z_hk>)o`jG>&o}>WCs(urJp(cpoETzemW8vdk z7chai=#(yoEZc%Nnpo) z2@fn(Sv)$i+AH!;t;nDHgaX%;fwvWmwkrf)&b-G{k0oW>B*vg#UN^eat zwxn%YWxF;;Mh1DV2hn(~u$56(-6CeVxN*aqomnt-ojW% z_C5kBsN+|Nf9G&=Bgugq^S0qkXU251^QO!XCY7 z?_acMz)D+vs1Zk8tLeVF-H(34xA#dXwRXiGQ9hOgaQ&sNC+KsbZ~P)2l0w8eL(K`j z>Z%hpIB{5QIU8P3U1wnf@O-O=&YA~ZKWx^0Z@K6;oB&!Kzg~$oYd@pFa zs5*h$cx3&^;nLwl#ZtXkIx|x&tvKO^?>2&t-|2>>u8-qiE=5kQ<%MVrBgef|S`9jp z=SH2N6h`QXEw#aIIbnm%&5n--cO{{N=P%Qty`4LaOO|M|(P?{=K_}RlT=v!`-A;S; z6H`-DGm}n8m27){6ei@U8SvJd5!AXXD>%|t)AvFZRu&LfVLWlT*phQmo$qv70H;r! zI95EcRO|XtR~M)>-IeO}K@H%7lSJ2R0e?3Bu%@(JZxDt{Rnkt)#q&>tSTBe@gZ-IT zaDnedoPI=d|1IPSUl_<`9^XFBl+pOohDyT+w+&dTsh%$n%7wDKn^NiqzRQp@&Ifi# zsq2r`n5Wbg80##gAin0@5AKq4UF@X;zaDFGyvq3$zlq2~N5l*M= z+oT}znacS0XhM;8DHi)TG(N6zQsbiz<%0=-`J~Z0-who9VU06q{27fOPsE`->G?&( z*9iNwUQy;a&v$j6=M4Ngtvd$(miG4z+|~H=2L4Npf7!s7H2$)Ie_iWa2G0BN4FkWf zbwt``o?uYBYsqupb9%=lO z2CiY4)i|-_`Z;I#bA6so;B;#6`mPx`$FC=F_9fd!0;f2kZt#MEw>6IMJ4wVSPu>r& z8U8#UZy5MHsyTeii1TTUf7ihI-1$i&4z2$uwf?hv;J-HTZ)p9u_rSR(G>?2IP)dAu zQM2T{tdSAP#ETMDzDa*5hZ}9YgONvp;tiGpujP~@Z#{zYvJ*K_u7x3#CA#d@y7g+) zU+JJt%1*5ocx$Y+I_@2wPT=@;yhgP%Yl&EN&9WI2fHGdwbTdQQ#}`2v??!wP;0r

sy%uTfnIoVKS&`u{Pi7uAsK&(Y?z!1K>I&j;&!P@waCjseYoA^%nc z;B%Jt4fR87hY0^bk+dJbgeT{m46oCt2a#`*9zum;{;%y1V_P#O#pnM2Xc!F@rqQ?8 z_~n6zwxYi5X#BLl&GFA8X2wJaUeb%V-!K}g{Nu&MsQs68LG~L)Lxs3+xj(~>a9-{}#PTK?|8?ElI=+7D8(k!~p#f6e?~KufRu&+7bn zoznc#TgA-(WyC0^S*H(m|GzOhWR*GH!@b)7N-gLN literal 0 HcmV?d00001 diff --git a/src/zone_check.o b/src/zone_check.o new file mode 100644 index 0000000000000000000000000000000000000000..4059b88d75a2e6775f47b794333dcdfe4d8e03c9 GIT binary patch literal 10008 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 h9NokVvt%W%v#P>fp(D?MrTjoKk|2M6uvxfix literal 0 HcmV?d00001