Files
zhichun-project/CTF/backend/__pycache__/mypolicy.cpython-312.pyc
T

51 lines
9.7 KiB
Plaintext
Raw Normal View History

Ë
2©OiÈãóêUddlZddlZddlmZmZddlZddlZed¬«Zej«Z dZ
dZ ia Gdd«Z
dae
ed <d
Zd Zd Zd
Zedk(rej*e««yy)éN)ÚGameMapÚrun_game_serverg$@)Úshow_gap_in_msecéÿÿÿÿédcó$eZdZdZdZdZdZy)ÚMapcótj|_tj|_dg|j|jzz|_t |j|jz«Dcgc]}gŒc}|_d|_ycc}w)Nr)ÚworldÚwidthÚheightÚgridÚrangeÚedgeÚ
in_my_team)ÚselfÚ_s ú8/Users/liuhaiyan/zhichun-project/CTF/backend/mypolicy.pyÚ__init__z Map.__init__sjÜ—kkˆŒ
Ü—l‘lˆŒ ØC˜4Ÿ:™:¨¯ © Ñ4ˆŒ Ü!& t§z¡z°D·K±KÑ'?Ô!@ÓAÑ!@˜ARÐ!@ÑAˆŒ ؈ùòBsÁ1 B
có,||jdzz|zS))r )rÚys rÚconvert_pos_to_indexzMap.convert_pos_to_indexsØD—JJ˜q! AÑcót|j|jz«Dcgc]}gŒc}|_dg|j|jzz|_t
j }|D]-}|d|d}}|j||«}d|j|<Œ/t
j||f«|_ t
jddd¬«} | D]-}
|
d|
d}}|j||«}d|j|<Œ/t
jddd¬«} |j||«} | D]-}
|
d|
d}}|j||«}d |j|<Œ/t|j«D]}t|j«D}|j||«}|j|d
vrŒ'd D\}}||z||z}}d|cxkr|jksŒ&nŒ)d|cxkr|jksŒ?nŒB|j||«}|jr6|j|d vs|| k(sŒw|j|j|«Œ–|j|d
vs|| k(sŒ­|j|j|«ŒÌŒ÷Œycc}w)NrÚposXÚposYrÚmineÚinPrisonÚhasFlagé)rr#))rr)rr)rr)rr)rr#r$)rr$) rr r
rrr ÚwallsrÚ
is_on_leftrÚ list_playersÚappend)rÚposxÚposyrr%ÚwallrrÚidxÚenemy_players_with_flagsÚenemyÚ ally_playersÚmy_posÚallyÚdxÚdyÚnxÚnyÚn_idxs rÚupdatez
Map.updatesaÜ!& t§z¡z°D·K±KÑ'?Ô!@ÓAÑ!@˜ARÐ!@ÑŒ ØC˜4Ÿ:™:¨¯ © ÑŒ Ü ˆÛˆDؘ‘<  f¡ˆqˆAØ×+¨A¨qÓ1ˆC؈DI‰IcŠNðô ×*¨D°¨;ÓŒÜ#(×#5Ñ#5¸5È5ÐZ^Ð#5Ó#_Ð Û-ˆEؘ‘= %¨¡-ˆqˆAØ×+¨A¨qÓ1ˆC؈DI‰IcŠNð×)¨t¸eÈTÐ Ø×)¨$°ÓÛ ˆDؘ‘<  f¡ˆqˆAØ×+¨A¨qÓ1ˆC؈DI‰IcŠNðt—{{×#ˆ˜4Ÿ:™:Ö&Ø×°1Ó5Ø—99˜S> Û@FB˜Ø ™V Q¨¡V˜˜BÔ§¡Ö°RÔ0E¸$¿+¹+Ö0EØ $× 9Ñ 9¸"¸bÓ A˜ØŸ?š?Ø $§ ¡ ¨%Ñ 0¸ Ñ AÀeÈvÃoØ $§ ¡ ¨#¡× 5Ñ 5°eÕ <à $§ ¡ ¨%Ñ 0¸Ñ >À5ÈFÃ?Ø $§ ¡ ¨#¡× 5Ñ 5°eÕ <ñAò $ùò'Bs¥ Jcóª|j||«d|cxkr|jkrnyd|cxkr|jksyyd|cxkr|jkrnyd|cxkr|jksyy|j||«}|j||«}|j|jz}t d«g|z}dg|z} d||<t j |g«}
|
r`|
j«} | |k(rnJ|j| D]5} || t d«k(sŒ|| dz|| <| | | <|
j| «Œ7|
rŒ`||t d«k(ryg}
|}||
j|«| |}|Œ|
j«t|
«dkry|
d}||jdzz}||jdzz}tj||f||f«S)u]
Compute the shortest path from the start position to the end position
using BFS (equivalent to Dijkstra with unit edge weight) on the pre‑built
adjacency list `self.edge`. Returns the first move direction via
`world.get_direction`. If no path exists or inputs are invalid, returns an
empty string.
rÚÚinfNrr#)r7r r
rÚfloatÚ collectionsÚdequeÚpopleftrr(ÚreverseÚlenr Ú
get_direction)rÚ
posx_startÚ
posy_startÚposx_endÚposy_endÚsrc_idxÚdst_idxÚdistÚprevÚqueueÚpathÚcurÚnext_idxÚnext_xÚnext_ys rÚ guideancez
Map.guideance<ð
J˜zÔ, $§*¡*Ôð23°jÔ1NÀ4Ç;Á;Ò1NØð2OØØ§
¡
Ôð01°HÔ/J¸t¿{¹{Ò/JØð0KØØ×+¨J¸
ÓØ×+¨H¸ÓØ J‰J˜ŸÑ Üe“ ˆ~ Ñ؈v˜‰zˆØˆˆW‰
Ü×! 7 )ÓáØ