ππ» ΠΠΈΡΠ΅ΠΌ ΠΈΠ³ΡΡ Pac-Man Π½Π° Python Π² 300 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π»Π΅Π³Π΅Π½Π΄Π°ΡΠ½ΡΡ ΠΈΠ³ΡΡ Pac-Man Π½Π° Python, ΡΠΌΠ΅ΡΡΠΈΠ² Π΅Π΅ Π² 300 ΡΡΡΠΎΡΠ΅ΠΊ ΠΊΠΎΠ΄Π°.
Pac-Man β ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ Β«Pac-ManΒ» ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡ ΡΠΏΠΎΠ½ΡΠΊΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° Β«pakuΒ», ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΡΠΊΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΊΡΡΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°. Π‘ΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ Π’ΠΎΡΡ ΠΠ²Π°ΡΠ°Π½ΠΈ Π²Π΄ΠΎΡ Π½ΠΎΠ²ΠΈΠ»Π° ΡΠΏΠΎΠ½ΡΠΊΠ°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΡΠΈΡΠ°Π΅Ρ Π΄Π΅ΡΠ΅ΠΉ ΠΎΡ ΠΌΠΎΠ½ΡΡΡΠΎΠ², ΠΏΠΎΠ΅Π΄Π°Ρ ΠΈΡ . ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΈΠ³ΡΡ ΠΎΠ½ ΠΎΠΏΠΈΡΠ°Π»ΡΡ Π½Π° ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΠΈΠ· Π»Π΅Π³Π΅Π½Π΄Ρ, Π° Π³Π»Π°Π³ΠΎΠ» Β«ΡΡΠ΅ΡΡΡΒ» ΡΡΠ°Π» ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ Π²ΡΠ΅Π³ΠΎ.
(ΠΠ°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²Π·ΡΡΡ ΠΎΡΡΡΠ΄Π°.)
ΠΠΎΠ½ΡΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΡΡΡΠ΅Ρ ΠΏΡΠΈΠ·ΡΠ°ΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΡΠ°ΠΊΡΡΡ ΠΈΠ³ΡΠΎΠΊΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Β«Π²ΠΎΠ»Π½Π°ΠΌΠΈΒ», ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ Π·Π°Ρ Π²Π°ΡΡΠΈΠΊΠ°ΠΌ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΈΠ·ΡΠ°ΠΊ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π»ΠΈΡΠ½ΠΎΡΡΡ. Π ΠΈΡΡΠΎΡΠΈΠΈ Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΉ ΡΠΈΠ»Ρ Β«ΠΊΠΎΠΊΠΎΡΠΎΒ», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»Π° ΡΡΡΠ΅ΡΡΠ²Π°ΠΌ ΠΏΠΎΠ΅Π΄Π°ΡΡ ΠΌΠΎΠ½ΡΡΡΠΎΠ². Π ΠΈΠ³ΡΠ΅ ΡΡΠ° ΡΠ½Π΅ΡΠ³ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ββββΠ² Π²ΠΈΠ΄Π΅ ΠΏΠ΅ΡΠ΅Π½ΡΡ Ρ ΡΡΠΈΠ»Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄Π°Π΅Ρ Pac-Man ΠΊΡΠ°ΡΠΊΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΠΎΠ΅Π΄Π°ΡΡ ΠΌΠΎΠ½ΡΡΡΠΎΠ².
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅Π΄Ρ Π²Π°Ρ ΡΠ΅ΡΠ΅Π· Π±Π°Π·ΠΎΠ²ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ, Π·Π°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΈΠ³ΡΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΡΡΠ΅Π½Ρ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°, Pac-Man ΠΈ ΠΏΡΠΈΠ·ΡΠ°ΠΊΠΎΠ², ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠΌ ΠΏΠΎΠΈΡΠΊ ΠΏΡΡΠΈ Π² Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ΅, Π·Π°Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΈΠ·ΡΠ°ΠΊΠ°ΠΌ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΠ΅Π»ΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΠΈΠ³ΡΠΎΠΊΠ° ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠΌ Π΅Π΄Ρ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ΅ΡΠ΅Π½ΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ Π»Π°Π±ΠΈΡΠΈΠ½ΡΡ.
>> basic_settings
ΠΠΎΠ»ΡΡΠΈΠ²ΡΠ°ΡΡΡ ΠΈΠ³ΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 300 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡ Π·Π΄Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠ°ΡΡΠΈ. ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΠΌΠΎΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ GitHub. ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ. ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ pygame, numpy ΠΈ tcod. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈΡ Π²ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° pip. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ IDE, ΡΠ°ΠΊΡΡ ββΠΊΠ°ΠΊ PyCharm (Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π΅Π΅), ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ ΠΏΠΎ ΠΈΠ³ΡΠ΅ Space Invaders (Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ»ΠΎ Π²ΡΠ΅Π³ΠΎ 100 ΡΡΡΠΎΠΊ). ΠΠ΄Π΅ΡΡ Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠΊΠ½Π°, Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΈΠ³ΡΡ, ΡΠ°ΡΡΠΎΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅ΠΉ Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΈΠ³ΡΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΈΠ³ΡΠΎΠΊΠ°. Π€ΡΠ½ΠΊΡΠΈΡ tick
ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΈΠ³ΡΠΎΠ²ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΡ
Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³. ΠΠ°ΡΠ΅ΠΌ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡ ΠΈΠ³ΡΠΎΠ²ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ Π²Π²ΠΎΠ΄Π°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ΅Π»ΡΠΊΠΈ ΠΌΡΡΡΡ ΠΈ Π²Π²ΠΎΠ΄ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΠ»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ _handle_events
.
>> parent_game_object
ΠΠ°ΡΠ΅ΠΌ Ρ ΡΠΎΠ·Π΄Π°Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ GameObject
, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ Π±ΡΠ΄ΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. Π ΠΈΠ³ΡΠ΅ Ρ Π½Π°Ρ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΡΡΠ΅Π½Ρ (Wall), Pac-Man (Hero), ΠΏΡΠΈΠ²ΠΈΠ΄Π΅Π½ΠΈΡ (Ghost) ΠΈ ΠΏΠ΅ΡΠ΅Π½ΡΡ (Cookie). ΠΠ»Ρ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ
Π²ΡΡΠ΅ ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½ΡΡ
ΠΈΠ³ΡΠΎΠ²ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΠΎΠ·ΠΆΠ΅ Ρ ΡΠΎΠ·Π΄Π°ΠΌ ΠΊΠ»Π°ΡΡ MovableObject
, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ° GameObject
Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ Π·Π°Π΄Π°Ρ Π΅Π³ΠΎ ΡΠ²Π΅Ρ, ΡΠΎΡΠΌΡ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° _surface
, ΡΠ°ΠΊ ΡΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΌ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΠΈ. ΠΠ»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ draw
, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ GameRenderer
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° is_circle
ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π»ΠΈΠ±ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΊΡΡΠ³Π°, Π»ΠΈΠ±ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° (Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΡΠΎ ΡΠ»Π΅Π³ΠΊΠ° Π·Π°ΠΊΡΡΠ³Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ³Π»Π°ΠΌΠΈ Π΄Π»Ρ ΡΡΠ΅Π½ ΠΈ ΠΊΡΡΠ³ Π΄Π»Ρ Pac-Man ΠΈ ΠΏΠ΅ΡΠ΅Π½ΡΡ).
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡ ΡΡΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ. ΠΠ»Ρ ΡΡΠ΅Π½ Π²ΡΠ±ΠΈΡΠ°Ρ ΡΠΈΠ½ΠΈΠΉ ΡΠ²Π΅Ρ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌΡ Pac-Man (ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ²Π΅ΡΠ° β Blue 255, ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ 0).
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π»Ρ ΡΡΠ΅Π½. ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠ»Π΅Π΄ΠΈΡΠ΅ Π·Π° ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΊΠ»Π°ΡΡΡ Wall
ΠΈ GameObject
Π±ΡΠ»ΠΈ Π²ΡΡΠ΅ ΠΊΠ»Π°ΡΡΠ° GameRenderer
, ΡΡΠΎΠ±Ρ ΠΊΠ»Π°ΡΡ ΠΈΡ
Β«Π²ΠΈΠ΄Π΅Π»Β». Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ.
>> the_game_controller_class
Π― ΡΠΎΡ
ΡΠ°Π½Ρ Π»Π°Π±ΠΈΡΠΈΠ½Ρ Π² ΡΠΈΠΌΠ²ΠΎΠ»Π°Ρ
ASCII Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ PacmanGameController
. Π― Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° β 28x31 ΡΠ°ΠΉΠ». ΠΠΎΠ·ΠΆΠ΅ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ·ΡΠ°ΠΊΠΈ ΡΠΌΠΎΠ³ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΠ΅Π· Π»Π°Π±ΠΈΡΠΈΠ½Ρ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΉΡΠΈ ΠΈΠ³ΡΠΎΠΊΠ°. Π‘Π½Π°ΡΠ°Π»Π° Ρ ΠΏΡΠΎΡΠΈΡΠ°Ρ Π»Π°Π±ΠΈΡΠΈΠ½Ρ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡ Π΅Π³ΠΎ Π² ΠΌΠ°ΡΡΠΈΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ ΠΈ Π½ΡΠ»Π΅ΠΉ, Π³Π΄Π΅ ΡΡΠ΅Π½Π° ΡΠ°Π²Π½Π° Π½ΡΠ»Ρ, Π° ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΡΠ°Π²Π½ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅. ΠΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»ΡΠΆΠ°Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ. ΠΠΎΠ»Ρ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π΅ Π±ΡΠ΄ΡΡ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠ°ΡΡΠΈΠ² reachable_spaces
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°ΡΡΠΈ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°. ΠΠΎ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎΠ·ΠΆΠ΅, ΡΠ½Π°ΡΠ°Π»Π° Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π»Π°Π±ΠΈΡΠΈΠ½Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ASCII Ρ ΠΌΠΎΠ΅Π³ΠΎ GitHub. Π ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» X
Π΄Π»Ρ ΡΡΠ΅Π½Ρ, P
Π΄Π»Ρ Pac-Man ΠΈ G
Π΄Π»Ρ ΠΏΡΠΈΠ·ΡΠ°ΠΊΠ°.
>> rendering_the_maze
ΠΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Π½Π°ΡΠΈΡ
ΠΊΠ»Π°ΡΡΠΎΠ² PacmanGameController
, ΠΏΡΠΎΠΉΡΠΈΡΡ ΠΏΠΎ 2D-ΠΌΠ°ΡΡΠΈΠ²Ρ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ ΡΡΠ΅Π½ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π² ΡΡΠΈΡ
ΠΌΠ΅ΡΡΠ°Ρ
ΠΎΠ±ΡΠ΅ΠΊΡ Wall
(Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ add_wall
, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π·Π΄Π΅ΡΡ, Π΅ΡΠ΅ ΡΠ°Π· Π²Π·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΌΠΎΠ΅ΠΌ GitHub). Π― ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» ΡΠ°ΡΡΠΎΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ 120 ΠΊΠ°Π΄ΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ.
>> letβs_add_ghosts!
Π ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ Pac-Man Π±ΡΠ»ΠΎ ΡΠ΅ΡΡΡΠ΅ ΠΏΡΠΈΠ·ΡΠ°ΠΊΠ° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΠ»ΠΈΠ½ΠΊΠΈ, ΠΠΈΠ½ΠΊΠΈ, ΠΠ½ΠΊΠΈ ΠΈ ΠΠ»Π°ΠΉΠ΄, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΎ ΡΠ²ΠΎΠΈΠΌ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΎΠΌ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠΌΠΈ. ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΈΠ³ΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΡΠΏΠΎΠ½ΡΠΊΠΎΠΉ ΡΠΊΠ°Π·ΠΊΠ΅ (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π·Π΄Π΅ΡΡ ΠΈ Π·Π΄Π΅ΡΡ), Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ Π½Π° ΡΠΏΠΎΠ½ΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ ΠΈΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΠΈΠ½ΠΊΠΈ ΡΠΏΠΎΠ½ΡΠΊΠΎΠ΅ ΠΈΠΌΡ ΠΠΎΡ, Ρ ΠΠ»ΠΈΠ½ΠΊΠΈ β Π’Π΅Π½Ρ). ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΡ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ Π²Π΄Π°Π²Π°ΡΡΡΡ Π² ΡΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΈΠ·ΡΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΊΠ», ΠΊΠ°ΠΊ ΠΈ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅, ΡΠΎ Π΅ΡΡΡ ΡΠ΅ΠΆΠΈΠΌΡ Β«ΠΏΡΠ΅ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅Β», Β«ΡΠ°ΡΡΠ΅ΠΈΠ²Π°Π½ΠΈΠ΅Β» ΠΈ Β«ΠΈΡΠΏΡΠ³Β». ΠΡ ΠΎΠΏΠΈΡΠ΅ΠΌ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΡΡΠΈ ΡΠ΅ΠΆΠΈΠΌΡ ΠΠ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ.
ΠΠ»Π°ΡΡ-ΠΏΡΠΈΠ·ΡΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΡΠΌ, ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π² Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° MovableObject
(ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΌΠΎΠΉ GitHub, ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΡ Π΄Π»Ρ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅ΡΡΡΠ΅Ρ
Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ
, ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΠΌΠ°ΡΡΡΡΡΡ ΠΈ ββΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΠΎ ΡΡΠ΅Π½Π°ΠΌΠΈ).
Π― Π΄ΠΎΠ±Π°Π²Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ RGB Π΄Π»Ρ ΡΠ²Π΅ΡΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠ·ΡΠ°ΠΊΠ° Π² ΠΊΠ»Π°ΡΡ PacmanGameController
ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΡ ΡΠ΅ΡΡΡΠ΅ ΡΠ²Π΅ΡΠ½ΡΡ
ΠΏΡΠΈΠ·ΡΠ°ΠΊΠ° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π― ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, x=16 y=16 ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ΅Π½ΡΡΡ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°, ΠΈ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠ΅ΠΉΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Π° Π΄Π°Π΅Ρ ΠΌΠ½Π΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½Π° ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΡ ΠΈΠ³ΡΡ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ
).
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ΅ΡΡΡΠ΅ ΠΏΡΠΈΠ·ΡΠ°ΠΊΠ° Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ΅ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΈΠ³ΡΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΈΡ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ.
>> maze_pathfinding
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΡΡΠΏΠ°Π΅Ρ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΡΠ°ΠΌΠ°Ρ ΡΠ»ΠΎΠΆΠ½Π°Ρ ΡΠ°ΡΡΡ. ΠΠΎΠΈΡΠΊ ΠΏΡΡΠΈ Π² Π΄Π²ΡΠΌΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠ»ΠΈ Π³ΡΠ°ΡΠ΅ β ΡΠ»ΠΎΠΆΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π·Π°Π½ΡΠ»Π° Π±Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ°ΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ A*. ΠΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ tcod
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π²Π½Π°ΡΠ°Π»Π΅.
Π§ΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΏΡΠΈΠ·ΡΠ°ΠΊΠΎΠ², Ρ ΡΠΎΠ·Π΄Π°ΠΌ ΠΊΠ»Π°ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Pathfinder
. Π ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡ ΠΌΠ°ΡΡΠΈΠ² numpy
ΡΠΎ ΡΡΠΎΠΈΠΌΠΎΡΡΡΡ ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ (ΠΌΠ°ΡΡΠΈΠ² Π΅Π΄ΠΈΠ½ΠΈΡ ΠΈ Π½ΡΠ»Π΅ΠΉ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠ°Π½Π΅Π΅) ΠΈ ΡΠΎΠ·Π΄Π°ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ° pf
, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΎΡΠ° A*. ΠΠ°ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ get_path
ΡΠ°ΡΡΡΠΈΡΠ°Π΅Ρ ΠΈ Π²Π΅ΡΠ½Π΅Ρ ΠΏΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΡΠΈΠΈ ΡΠ°Π³ΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ Π² Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ΅ (ΠΎΡΠΊΡΠ΄Π°, ΠΊΡΠ΄Π°).
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π΄ΠΎΠ±Π°Π²Π»Ρ ΡΠ°Π·Π΄Π΅Π» ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΡΡΠΈ. Π― Π²ΡΠ±ΠΈΡΠ°Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ [1,1]
ΠΈ ΠΏΡΠ½ΠΊΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΡΡΡΠ° [24,24]
. ΠΡΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄.
Π ΠΈΠ³ΡΠ΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΡΡΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
>> randomized_ghost_movement
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠ»Π°ΡΡΠ΅ PacmanGameController
Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° reachable_spaces
. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΈΠ·ΡΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ ΠΌΠ΅ΡΡΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈΠ·ΡΠ°ΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΏΡΡΡ ΠΎΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ΅ Π΄ΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΡΠΎΠΊ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΡΠ°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΠ³ΠΎΠ½Ρ ΠΈ Π±Π΅Π³ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠ³ΡΠΎΠΊΠ°.
Π ΠΊΠ»Π°ΡΡΠ΅ Ghost
ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π΄Π»Ρ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΠΏΡΡΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ reached_target
Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ°Π΄Ρ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π΄ΠΎΡΡΠΈΠ³ Π»ΠΈ ΡΠΆΠ΅ ΠΏΡΠΈΠ·ΡΠ°ΠΊ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅Π»ΠΈ. ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π² ΠΊΠ°ΠΊΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ ΠΏΡΡΠΈ ΡΠ΅ΡΠ΅Π· Π»Π°Π±ΠΈΡΠΈΠ½Ρ, ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π²Π΅ΡΡ
, Π²Π½ΠΈΠ·, Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π²ΠΏΡΠ°Π²ΠΎ (Π»ΠΎΠ³ΠΈΠΊΠ° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ MovableObject
).
ΠΡΠΈΠ·ΡΠ°ΠΊΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π² ΠΏΠΎΠ·ΠΈΡΠΈΡΡ
, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΡΡ
Π±ΡΠΊΠ²ΠΎΠΉ G
Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ΅ ASCII, ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΈΡΠΊΠ°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΏΡΡΡ. Π― Π·Π°ΠΏΠ΅Ρ Π² ΠΊΠ»Π΅ΡΠΊΠ΅ ΡΡΠ΅Ρ
ΠΏΡΠΈΠ·ΡΠ°ΠΊΠΎΠ² β ΠΊΠ°ΠΊ ΠΈ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ Pacman, ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π²ΡΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ β ΠΈ ΠΎΠ΄ΠΈΠ½ Π±ΡΠΎΠ΄ΠΈΡ ΠΏΠΎ Π»Π°Π±ΠΈΡΠΈΠ½ΡΡ:
>> player_controls
Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ»Π΅Π΅ΡΠ°, Ρ ΡΠΎΠ·Π΄Π°ΠΌ ΠΊΠ»Π°ΡΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Hero
. ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΈΠ³ΡΠΎΠΊΠΎΠΌ, ΡΠ°ΠΊ ΠΈ ΠΏΡΠΈΠ·ΡΠ°ΠΊΠ°ΠΌΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ MovableObject
, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΠ³ΡΠΎΠΊΠ°. Π ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ Pacman ΠΈΠ³ΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π² ΡΠ΅ΡΡΡΠ΅Ρ
Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ
, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ
ΠΊΠ»Π°Π²ΠΈΡΠ°ΠΌΠΈ ΡΠΎ ΡΡΡΠ΅Π»ΠΊΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΊΠ»Π°Π²ΠΈΡΠ° ΡΠΎ ΡΡΡΠ΅Π»ΠΊΠΎΠΉ Π½Π΅ Π½Π°ΠΆΠ°ΡΠ°, ΠΈΠ³ΡΠΎΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ. ΠΡΠ»ΠΈ ΠΊΠ»Π°Π²ΠΈΡΠ° Π½Π°ΠΆΠ°ΡΠ° Π² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠ³ΡΠΎΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ, ΡΡΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌ Ρ
ΠΎΠ΄Π΅. Π― Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Ρ ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΠ°ΠΊΠΌΠ°Π½Π° ΡΠ΅Π»Π΅ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ° Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ β Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡ, Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΠΈΠ³ΡΠΎΠΊ Π²Π½Π΅ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ Π·ΠΎΠ½Ρ Ρ Π»Π΅Π²ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΡΠ°Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Ρ Π΅Π³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΡ ΡΡΠΎΡΠΎΠ½Ρ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. Π Pacman ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π΅Π³ΠΎ Π²Π΄Π²ΠΎΠ΅ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΠ½ ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ pygame.rect
).
Π― ΡΠΎΠ·Π΄Π°Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Hero
Π² ΠΊΠΎΠ½ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°Π΄Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ [1,1]
β unified_size
β ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π’Π°ΠΊΠΆΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²Ρ
ΠΎΠ΄Π½ΡΡ
ΡΠΎΠ±ΡΡΠΈΠΉ Π² ΠΊΠ»Π°ΡΡ GameRenderer
, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠ³ΡΠΎΠ²ΡΠΌ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ΅ΠΌ.
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ³ΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠ³ΡΠΎΠΊΠΎΠΌ β Pacman!
>> adding_cookies
ΠΡΠΎ Π±ΡΠ» Π±Ρ Π½Π΅ ΠΠ°ΠΊΠΌΠ°Π½ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π½ΡΡ Π² Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ΅. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΡΠ°, Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ cookie Π΄Π°ΠΆΠ΅ ΠΌΠ΅Π½ΡΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΠΈΠ·ΡΠ°ΠΊΠΎΠ² ΠΈ ΠΠ°ΠΊΠΌΠ°Π½Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΡΡΠ΅ΠΉ Π½Π°Π³ΡΠ°Π΄ΠΎΠΉ Π΄Π»Ρ ΠΈΠ³ΡΠΎΠΊΠΎΠ² ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ ΠΈΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° Π² ΡΡΠΎΠ²Π½ΡΡ . Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ³ΡΠ°Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π³Π΅ΠΉΠΌΠ΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ Ρ ΠΎΡΠ΅Ρ ΠΏΠΎΠΎΡΡΡΡΡ Π² ΠΈΠ³ΡΠΎΠΊΠ΅, ΠΎΠ±ΡΡΠ½ΠΎ Π²ΠΎΠ·Π½Π°Π³ΡΠ°ΠΆΠ΄Π°Π΅ΡΡΡ. ΠΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Elden Ring, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ, ΠΊΡΠΎ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ³ΠΎΠ»ΠΎΠΊ ΠΌΠΈΡΠ°, ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΠΎΠ·Π½Π°Π³ΡΠ°ΠΆΠ΄Π΅Π½ΠΈΠ΅. Π§Π΅ΠΌ ΠΎΠΏΠ°ΡΠ½Π΅Π΅ ΠΈ ΠΎΡΠ΄Π°Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π°Π³ΡΠ°Π΄Π°. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ³ΡΡ, ΠΊΠ°ΠΊ Assassin's Creed, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ³ΡΡ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅, Π° Π½Π΅ ΠΈΠ³ΡΠ°Π΅ΡΠ΅.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² cookie Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΌΡΠΌ ΠΏΡΠΎΡΡΡΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌ ΡΡΠΎΠΊΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΎΡΡΠ°Π²ΠΈΠ» Π΅Π³ΠΎ Π½Π° ΠΊΠΎΠ½Π΅Ρ, ΠΊΠ°ΠΊ Π²ΠΈΡΠ΅Π½ΠΊΡ Π½Π° ΡΠΎΡΡΠ΅. Π― ΡΠΎΠ·Π΄Π°ΠΌ ΠΊΠ»Π°ΡΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Cookie
. ΠΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅ΡΡΡΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Ρ, ΠΆΠ΅Π»ΡΡΠΉ ΡΠ²Π΅Ρ ΠΈ ΠΊΡΡΠ³Π»ΡΡ ΡΠΎΡΠΌΡ. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΡΠΎΠ·Π΄Π°ΠΌ ΠΊΡΠΊΠΈ Π½Π° Π²ΡΠ΅Ρ
ΡΠ°ΠΉΠ»Π°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π²Π½Π°ΡΠ°Π»Π΅ ΡΠΎΡ
ΡΠ°Π½ΠΈΠ»ΠΈ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ cookie_spaces
(ΡΠΎΡ ΠΆΠ΅, ΡΡΠΎ ΠΈ reachable_spaces
). Π― Π΄ΠΎΠ±Π°Π²Π»Ρ Π² ΠΏΠ»Π΅Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ handle_cookie_pickup
, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡ, Π½Π΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ Π»ΠΈ ΠΏΠ»Π΅Π΅Ρ Ρ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ cookie. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, Ρ ΡΠ΄Π°Π»Ρ ΡΠ°ΠΉΠ» cookie ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΈ ΠΎΠ½ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ.
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π°ΡΠΈΡ ΡΡΠ°ΡΠ°Π½ΠΈΠΉ:
ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΡΠ°ΠΊΡ Π½Π°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ β Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΈΠ³ΡΠ΅ ΠΠ°ΠΊΠΌΠ°Π½ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Π΄Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠ΅ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π½ΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΠ·ΡΠ°ΠΊΠ°ΠΌ Π»Π΅Π³ΡΠ΅ Π΅Π³ΠΎ ΠΏΠΎΠΉΠΌΠ°ΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈΠ³ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅ Π΅ΡΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΠΈΠ³ΡΠΎΠ²ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΡ, ΠΈ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ Π½Π° ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡ Π΄Π»Ρ ΠΏΡΠΈΠ·ΡΠ°ΠΊΠΎΠ², ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΊΠΎΠ², Π·Π²ΡΠΊΠΈ, Π°Π½ΠΈΠΌΠ°ΡΠΈΡ, ΡΠ΅ΠΊΡΡΡΡΡ, Π±ΠΎΠ½ΡΡΡ, ΡΡΡΠ΅ΠΊΡΡ Π΄ΡΠΎΠΆΠ°Π½ΠΈΡ ΡΠΊΡΠ°Π½Π°, ΠΆΠΈΠ·Π½ΠΈ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΡ.