Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½Π°
ΠΡΠΎΡΡΡΠ΅ ΡΡΠ΅ΠΉΡ-ΠΌΠ°ΡΠΈΠ½Ρ Π½Π° ΡΠ»ΡΠΆΠ±Π΅ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ Π½Π° ΠΌΠΈΠ½ΡΡΠΊΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π΅Π³ΠΎ Π·ΠΎΠ²ΡΡ ΠΠ°ΡΡ ΠΈ Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠ΅Π½ΡΡΠΊΡ Π½Π° ΡΠ°ΠΉΡ/Π΄Π΅ΡΠΊΡΠΎΠΏ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅/ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ Π°ΠΏΠΏ. ΠΠ½Π°Π΅ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΅Π·ΠΆΠ°ΡΡ ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·, ΠΊΠ°ΠΊ ΠΌΠ΅Π½Ρ Ρ ΠΎΠΊΠ½Π° Windows ΠΈΠ»ΠΈ ΠΌΠ΅Π½Ρ Ρ ΡΠ±Π»ΠΎΡΠΊΠΎΠΌ Ρ OS X. ΠΠΎΡ ΡΠ°ΠΊΠΎΠ΅.
ΠΠ°ΡΠΈΠ½Π°Π΅Ρ ΠΎΠ½ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ ΠΎΠΊΠΎΡΠΊΠ°, ΡΠ΅ΡΡΠΈΡΡΠ΅Ρ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ, Π²ΡΡΡΠ°Π²Π»ΡΠ΅Ρ ease out 100% ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ. ΠΠΎ Π²ΡΠΊΠΎΡΠ΅ ΠΎΠ½ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅Π½ΡΡΠΊΠΎΠΉ, Ρ ΠΎΡΠΎΡΠΎ Π±Ρ Π·Π½Π°ΡΡ Π·Π°ΠΊΡΡΡΠΎ ΠΎΠ½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΡ-ΡΠΎ Ρ Π²Π°ΠΌΠΈ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΎΠΏΡΡΠ½ΡΠ΅, Π²ΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π°Π³. ΠΠ΅ Π²ΠΎΠΏΡΠΎΡ, ΡΠ»Π°Π³ Π΅ΡΡΡ.
ΠΡΠΎΠ΄Π΅, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎ, Π΅ΡΠ»ΠΈ Π±ΡΡΡΡΠΎ ΠΊΠ»ΠΈΠΊΠ°ΡΡ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅, ΠΌΠ΅Π½Ρ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΌΠΎΡΠ³Π°ΡΡ, ΠΎΡΠΊΡΡΠ²Π°ΡΡΡ ΠΈ Π·Π°ΠΊΡΡΠ²Π°ΡΡΡ Π½Π΅ ΡΡΠΏΠ΅Π² Π΄ΠΎΠ°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠ°ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ»Π°Π³ animating. Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠ΄ Ρ Π½Π°Ρ ΡΠ°ΠΊΠΎΠΉ:
Π§Π΅ΡΠ΅Π· ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΠ°ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΈ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎ. ΠΠ΅ Π²ΠΎΠΏΡΠΎΡ! ΠΡ-ΡΠΎ Ρ Π²Π°ΠΌΠΈ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΎΠΏΡΡΠ½ΡΠ΅, Π²ΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎβ¦ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΠ©Π ΠΠΠΠ Π€ΠΠΠ! Π, Π²ΡΠ΅Π³ΠΎ-ΡΠΎ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΡ Π΄Π½Π΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΠ΄ ΠΌΠ΅Π½Ρ ΡΠΆΠ΅ ΠΏΠ΅ΡΡΡΠΈΡ Π΄Π²ΡΡΡΡΠΎΡΠ½ΡΠΌΠΈ IF-Π°ΠΌΠΈ ΡΠΈΠΏΠ° Π²ΠΎΡ ΡΠ°ΠΊΠΎΠ³ΠΎ:
ΠΠ°ΡΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡΡΡ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌΠΈ: ΠΊΠ°ΠΊ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΡΡΠΎ animating == true ΠΈ enabled == false; ΠΏΠΎΡΠ΅ΠΌΡ Ρ Π½Π΅Π³ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠ΅ Π³Π»ΡΡΠΈΡ; ΠΊΠ°ΠΊ ΡΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΠΎΠΉΠΌΠ΅ΡΡ Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ΅Π½Ρ. ΠΠ³Π°! Π‘ΠΎΡΡΠΎΡΠ½ΠΈΡ. Π Π½ΠΈΡ Π΄Π°Π»ΡΡΠ΅ ΠΈ ΠΏΠΎΠΉΠ΄Π΅Ρ ΡΠ΅ΡΡ.
ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ, ΡΡΠΎ ΠΠ°ΡΡ.
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅
ΠΠ°ΡΡ ΡΠΆΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΡΠ»Π°Π³ΠΎΠ² Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΌΡΡΠ»Π°, Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΠ°ΡΠΎΠΉ ΡΠ»ΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: Disabled, Idle, Animating, Opened. ΠΡΠ΅ ΠΌΡ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΎΠΏΡΡΠ½ΡΠ΅, ΡΡΠ°Π·Ρ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ ΠΏΡΠΎ state machines. ΠΠΎ, Π΄Π»Ρ ΠΠ°ΡΠΈ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎ ΡΡΠΎ ΠΈ Π·Π°ΡΠ΅ΠΌ. ΠΡΠΎΡΡΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ, Π±Π΅Π· Π²ΡΡΠΊΠΈΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ².
Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠ°Ρ ΠΌΠ΅Π½ΡΡΠΊΠ°. ΠΠ±ΡΠ΅ΠΊΡ Π²ΡΠ΅Π³Π΄Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΠΎΠ΄Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΈ ΡΠ΅Π°Π³ΠΈΡΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ. ΠΠ±ΡΡΠ½ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΡΠΎΠ±ΡΡΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΠΎΡ ΡΠ°ΠΊΠΈΠΌΠΈ ΡΡ Π΅ΠΌΠ°ΠΌΠΈ (ΠΊΡΡΠΆΠΎΡΠΊΠ°ΠΌΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ):
ΠΠ· ΡΡ Π΅ΠΌΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Inactive Π² Active ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΠ°ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΡΠΎΠ±ΡΡΠΈΡ Begin, Π° ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Paused ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΠ°ΡΡΡ ΠΊΠ°ΠΊ ΠΈ Π² Active, ΡΠ°ΠΊ ΠΈ Π² Inactive. Π’Π°ΠΊΡΡ ΠΏΡΠΎΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΠ²ΡΠΎΠΌΠ°ΡΒ» ΠΈΠ»ΠΈ Β«Finite State MachineΒ», ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠ³Π°Π΅Ρ ΠΎΠ±ΡΡΠ½ΡΡ Π»ΡΠ΄Π΅ΠΉ.
ΠΠΎ Π·Π°Π²Π΅ΡΡ ΠΠΠ, ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΊΡΡΡΡ Π²Π½ΡΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ ΡΠ½Π°ΡΡΠΆΠΈ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ 20 ΡΠ°Π·Π½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ, Π½ΠΎ Π²Π½Π΅ΡΠ½Π΅Π΅ API Π½Π° Π²ΠΎΠΏΡΠΎΡ Β«ΡΠΎ ΠΊΠ°ΠΊ Π΄Π΅Π»Π°?Β» ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Β«Π½ΠΈΡΠΎ ΡΠ°ΠΊΒ» Π½Π° 19 ΠΈΠ· Π½ΠΈΡ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° 1 ΡΡΠ³Π°Π΅ΡΡΡ ΠΌΠ°ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΡΡ*Π»ΠΈ Π²ΡΠ΅ ΠΏΠΎΠ»ΠΈΠΌΠ΅ΡΡ.
Π‘Π»Π΅Π΄ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½, ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΡΠ°ΠΊ, ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΡΠ½ΠΎ ΡΡΠΎ ΠΈ ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎΡ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Π²Π΄ΡΡΠ³ ΠΏΠΎΠΏΡΡΠ°Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ΅ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΄ΡΡΠ³ ΠΏΠΎΡΠΌΠ΅Π»ΠΈ ΠΏΡΠΈΠΉΡΠΈ Π² Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π»ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π½Π΅ Π±ΠΎΡΡΡΡΡ, ΡΡΠΎ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ»ΠΎΠΌΠ°Π΅ΡΡΡ.
Π‘Π°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ Π² ΠΌΠΈΡΠ΅ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½Π°
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΠ°ΡΡ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° C# ΠΈ Π΅ΠΌΡ Π½ΡΠΆΠ½Π° ΠΏΡΠΎΡΡΠ°Ρ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½Π° Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ½ ΠΏΠΈΡΠ΅Ρ ΡΡΠΎ-ΡΠΎ ΡΠΈΠΏΠ° ΡΠ°ΠΊΠΎΠ³ΠΎ:
Π Π²ΠΎΡ ΡΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ:
ΠΠΎ, ΠΌΡ-ΡΠΎ Ρ Π²Π°ΠΌΠΈ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΎΠΏΡΡΠ½ΡΠ΅, Π²ΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ setState Π² ΠΈΡΠΎΠ³Π΅ ΡΠ°Π·ΡΠ°ΡΡΠ΅ΡΡΡ Π½Π° ΠΏΠ°ΡΡ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΡΡΡΠ°Π½ΠΈΡ, ΡΡΠΎ (ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΠ΅Π±Π½ΠΈΠΊΠ°Ρ ) Π½Π΅ Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΎ.
State Pattern
ΠΠΎΠ³ΡΠ³Π»ΠΈΠ² ΠΏΠ°ΡΡ ΡΠ°ΡΠΎΠ², ΠΠ°ΡΡ ΡΠ΅ΡΠ°Π΅Ρ, ΡΡΠΎ State Pattern ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ. Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, ΡΡΠΎ ΡΡΠ°ΡΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΡΠ΅Π²Π½ΡΡΡΡΡ ΠΊΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² Π·Π°ΠΏΠΈΡ Π½Π΅Ρ Π² ΡΠ²ΠΎΠΉ Π°ΠΏΠΏ, ΡΠ°ΠΊ ΡΡΠΎ, ΡΠ΅ΡΠ°Π΅Ρ ΠΠ°ΡΡ, ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΡΡΠΎ Π΄Π΅Π»ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ State Pattern ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IState:
Π ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΡΡ. Π ΡΠ΅ΠΎΡΠΈΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΡΠ°ΡΠΈΠ²ΠΎ ΠΈ 100% ΠΏΠΎ ΡΡΠ΅Π±Π½ΠΈΠΊΡ.
ΠΠΎ, Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½Π΅ΡΡΠ°ΡΡΠ½ΠΎΠΉ ΠΌΠ΅Π»ΠΊΠΎΠΉ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½Ρ Π½ΡΠΆΠ½ΠΎ Π³ΠΎΡΠΎΠ΄ΠΈΡΡ ΡΠΉΠΌΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΡΠΎ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ Π½Π΅Π±ΡΡΡΡΠΎ. ΠΠΎ-Π²ΡΠΎΡΡΡ , ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π½Π°ΡΠ½ΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΠΎΠ±ΡΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ. ΠΠ΄Π΅ ΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡ? Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅? Π ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΡ-ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΊ Π½ΠΈΠΌ Π΄ΠΎΡΡΡΠΏ? Π ΠΊΠ°ΠΊ ΠΌΠ½Π΅ ΡΡΡ Π·Π° 15 ΠΌΠΈΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π΄Π΅Π΄Π»Π°ΠΉΠ½ΠΎΠΌ Π²ΠΏΠΈΠ»ΠΈΡΡ Π±ΡΡΡΡΠΎ ΠΌΠ΅Π»ΠΊΠΈΠΉ Ρ Π°ΠΊ Π² ΠΎΠ±Ρ ΠΎΠ΄ ΠΏΡΠ°Π²ΠΈΠ»? Π ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΎΡΠΌΠΎΠ·ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠ°
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ Π·Π°Π΄Π°Ρ. Π Ruby, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ Π²ΠΎΠΎΠ±ΡΠ΅ Π΅ΡΡΡ ΡΠ΅Π»ΡΠΉ DSL (ΠΈ Π½Π΅ ΠΎΠ΄ΠΈΠ½) Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ². Π Π² C# ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· Reflection. ΠΠΎΡ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ°ΠΊ:
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π²ΡΡΠ΅, ΠΠ°ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ Ρ Π½Π΅Π΅ ΡΠΎΠΆΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΠΈΠ½ΡΡΠΎΠ², ΡΠ΅ΠΌ ΠΏΠ»ΡΡΠΎΠ²:
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ
Π ΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ, ΠΠ°ΡΡ ΡΠΆΠ΅ Π²ΠΎΠ²ΡΡ ΡΡΠ°Π» Π²Π½ΠΈΠΊΠ°ΡΡ Π² ΡΠ΅ΠΎΡΠΈΡ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½ ΠΈ ΡΠ΅ΡΠΈΠ», ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ Π±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· API ΠΈΠ»ΠΈ (ΠΎ ΠΠΎΠΆΠ΅) ΡΠ΅ΡΠ΅Π· XML, ΡΡΠΎ Π² ΡΠ΅ΠΎΡΠΈΠΈ Π·Π²ΡΡΠΈΡ ΠΊΡΡΡΠΎ. ΠΡ-ΡΠΎ Ρ Π²Π°ΠΌΠΈ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΎΠΏΡΡΠ½ΡΠ΅, Π²ΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ Π²ΡΠ΅Ρ Ρ Π½ΠΈΡ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΡΠ°Π»ΡΠ½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ.
ΠΠ°ΡΡ ΡΠ΅ΡΠΈΠ», ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΅Π³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π±ΡΡΡΡΠΎ ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½Ρ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΡΠ΅ Π²ΠΎΠΊΡΡΠ³ Π±ΡΠ΄ΡΡ Π²Π΅ΡΠ΅Π»Ρ ΠΈ ΠΆΠΈΠ·Π½Π΅ΡΠ°Π΄ΠΎΡΡΠ½Ρ.
Π― ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ , Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π½Π°ΠΏΠΈΡΠ°Π» ΡΠ°ΠΌ. Π Π²ΡΠ΅Π³Π΄Π° Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ° ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ΄Π°, ΡΠ΅ΠΌ Π² ΠΏΡΠΎΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΡΠ΅ ΠΎΠ½ΠΈ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΡΠ΅ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΡΠ°ΡΡΡΡ Π΄Π΅Π»Π°ΡΡ ΡΡΠ°Π·Ρ ΡΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊ ΠΆΠ΅ ΡΡΡ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΡΡΡΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ stateless:
ΠΠΎ, ΠΏΡΠΎΠ±ΠΈΠ²ΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΡΠΎ: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ², ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½ ΠΈ ΡΡΠ±-ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½ ΠΈ Π²ΡΡΡΠ΅ΡΠΊΠ°Ρ Π·Π°ΡΠΈΡΠ° ΠΎΡ Π΄ΡΡΠ°ΠΊΠ°.
XML β ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ Π·Π»ΠΎ. ΠΡΠΎ-ΡΠΎ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ². Π‘ΡΠ°Π΄ΠΎ Π»Π΅ΠΌΠΌΠΈΠ½Π³ΠΎΠ² java ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠ»ΠΈΠ»ΠΎΡΡ Π½Π° Π½Π΅Π³ΠΎ. Π ΡΠ΅ΠΏΠ΅ΡΡ Π½ΠΈΠΊΡΠΎ ΡΠΆΠ΅ ΠΈ Π½Π΅ Π·Π½Π°Π΅Ρ Π·Π°ΡΠ΅ΠΌ Π²ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ XML, Π½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π±ΠΈΡΡ Π²ΡΠ΅Ρ , ΠΊΡΠΎ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΡ Π½Π΅Π³ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ.
ΠΠ°ΡΡ ΡΠΎΠΆΠ΅ Π·Π°Π³ΠΎΡΠ΅Π»ΡΡ ΠΈΠ΄Π΅Π΅ΠΉ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΅ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² XML ΠΈ ΠΠ ΠΠΠ‘ΠΠ’Π¬ ΠΠ Π‘Π’Π ΠΠ§ΠΠ ΠΠΠΠ! Π ΠΈΡΠΎΠ³Π΅ Π² Π΅Π³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π»Π΅ΠΆΠ°Ρ XML ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ:
ΠΠ»Π°ΡΡ! Π Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ, ΠΌΡ-ΡΠΎ Ρ Π²Π°ΠΌΠΈ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΎΠΏΡΡΠ½ΡΠ΅, Π²ΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ ΡΡΠ»ΠΎ. ΠΠ°ΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΠ» ΠΊΡΡΠΎΠΊ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΠΊΡΡΠΎΠΊ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ XML, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ΅ Π΅ΡΠ΅ Π² ΠΏΠ°ΡΡ ΡΠ°Π· ΡΡΠ»ΠΎΠΆΠ½ΠΈΠ». Π ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉ ΡΡΠΎ ΠΎΡΠ΄Π΅Π±Π°ΠΆΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΈ ΡΠ°Π·Π±ΡΠΎΡΠ°Π½ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ.
Π‘ΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅
Π ΡΡΡ ΠΠ°ΡΠ΅ Π²ΡΠ΅ ΡΡΠΎ Π½Π°Π΄ΠΎΠ΅Π»ΠΎ ΠΈ ΠΎΠ½ Π²Π΅ΡΠ½ΡΠ»ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊ ΡΠ°ΠΌΠΎΠΌΡ ΠΏΡΠΎΡΡΠΎΠΌΡ Π² ΠΌΠΈΡΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΡ. ΠΠ½ Π΅Π³ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°Π» ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π» ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ Π² Π½Π΅ΠΌ ΠΊΠΎΠ΄.
UPDATE: ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠ΄Π΅ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ Ρ Π²Π°ΡΠ°Π»ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ.
Π£ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ β ΡΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΈΠ· Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠΎ Π΅ΡΡΡ ΠΎΠ½ΠΈ Π²ΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ Π²ΡΠ΅Π³Π΄Π° Π²ΠΌΠ΅ΡΡΠ΅, Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΠΈΠ½ΠΈΡΡΡΡ Π΅ΡΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠΎΠ΄. ΠΡΠΈ ΡΠΌΠ΅Π½Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Ρ A Π½Π° B ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ A, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Ρ A Π½Π° B, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄ Π²Ρ ΠΎΠ΄Π° Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ B.
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ A Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ stateA, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ Π½ΡΠΆΠ½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈ Π²ΡΠ·ΠΎΠ²Π΅Ρ setState(A). Π‘Π°ΠΌΠΎΠΌΡ Π²ΡΠ·ΡΠ²Π°ΡΡ setState(A) ΠΊΡΠ°ΠΉΠ½Π΅ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ.
UPDATE: Π setState() ΠΏΠΈΡΠ΅ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π° Π² stateB() Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ A ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Π² B. ΠΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.
ΠΡΠΎΡΡΠΎΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½. ΠΠ½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΎΠ΅ ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ»ΡΡΡ:
ΠΠ°ΠΊ ΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΡ , ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΠ΅ΡΠ²Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π½ΠΎ ΠΏΠΎΡΠΎΠΌ Ρ Π½Π΅Π³ΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΌΡΡΠ», ΠΈΠ»ΠΈ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΎΠ½ Π³Π΄Π΅-ΡΠΎ Π΄ΡΠ±Π»ΠΈΡΡΠ΅ΡΡΡ. Π’ΠΎΠ³Π΄Π° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π² Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ. ΠΠΈΠΊΡΠΎ Π½Π°ΠΌ Π½Π΅ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ. ΠΡΠ΅-ΡΠ°ΠΊΠΈ ΠΊΠΎΠ΄ Π½Π΅ Π²ΡΡΠ΅ΡΠ°Π½ ΠΈΠ· ΠΊΠ°ΠΌΠ½Ρ, ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ (ΠΎ ΡΠΆΠ°Ρ!) ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ Ρ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
UPDATE: Π° setState() Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ΅ΡΡΠ΅ΡΠΎΠΌ Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ° ΡΡΠΎΠΌ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΠ°ΡΠΈ Π² ΠΌΠΈΡΠ΅ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½. Π Π²Π΅Π΄Ρ Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ Π΅ΡΠ΅ ΡΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ. ΠΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠΏΠΈΠΊΠ° Π±Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ»ΡΠΆΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½Ρ.
Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½Ρ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ, ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ½Π΅Ρ Π²Π°Ρ Π½Π° ΡΡΠΎΡΠΎΠ½Ρ Π΄ΠΎΠ±ΡΠ°; Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠ±Π΅ΡΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ, ΠΎΠ½Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π΅ΠΆΠΈΠΌ Π²Π·Π³Π»ΡΠ΄ΠΎΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Ρ Π²Π°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ.
Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π·Π°Π΄ΡΠΌΠ°ΡΡΡΡ Π³Π΄Π΅ ΠΈ ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ, ΠΈ ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΊΠΎΠΌΡ-ΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ.
ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ: ΡΠ΅ΠΎΡΠΈΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ β ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΡΠ΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ° Π² ΠΈΠ³ΡΠ°Ρ , ΠΏΠΎΠ»ΡΡΠ°Ρ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±Π΅Π· Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΠ³ΠΎ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅ΠΎΡΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΡΠ΅ΠΊΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ.
ΠΡ ΡΠΆΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΡΠ΅ΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ ΠΏΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ°. ΠΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ ΡΠΈΡΠ°Π»ΠΈ ΡΡΡ ΡΠ΅ΡΠΈΡ, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ Π°Π²ΡΠΎΡΠ° Π₯ΠΎΡΡ Π² ΡΡΠ°ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ActionScript 3 ΠΈ Flash, Π²Ρ Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ Π½Π° ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ Π΄Π»Ρ Π²Π°Ρ ΡΠ·ΡΠΊΠ΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ?
ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ (ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡΠΎΡΡΡ FSM β Finite-state machine) ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° Π³ΠΈΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ. Π ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΌΠ°ΡΠΈΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΠΎΠ½Π΅ΡΠ½ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΠ Π² ΠΈΠ³ΡΠ°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Β«ΠΌΠΎΠ·Π³Π°Β» Π²ΡΠ°Π³Π°: ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ (Π½Π°ΠΏΠ°ΡΡΡ, ΡΠΊΠ»ΠΎΠ½ΠΈΡΡΡΡ ΠΈ Ρ. Π΄.).
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠ°
ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ Π³ΡΠ°ΡΠ°, Π²Π΅ΡΡΠΈΠ½Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ, Π° ΡΠ΅Π±ΡΠ° β ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ΅Π±ΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΠΊΡ, ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π²ΡΡΠ΅ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°Ρ ΡΠΌΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Β«wanderΒ» Π½Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Β«attackΒ» ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΈΠ³ΡΠΎΠΊ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ΄ΠΎΠΌ.
ΠΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈ ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ²
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΡΡΠ°Π²ΡΡ, Π½Π΅ΡΡΡΠ΅Π³ΠΎ Π»ΠΈΡΡΡΡ Π² ΠΌΡΡΠ°Π²Π΅ΠΉΠ½ΠΈΠΊ:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ° ΠΌΡΡΠ°Π²ΡΡ
ΠΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Β«find leafΒ», ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΌΡΡΠ°Π²Π΅ΠΉ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ Π»ΠΈΡΡ. ΠΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, ΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΌΠ΅Π½ΠΈΡΡΡ Π½Π° Β«go homeΒ». ΠΡΠΎ ΠΆΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ, ΠΏΠΎΠΊΠ° Π½Π°Ρ ΠΌΡΡΠ°Π²Π΅ΠΉ Π½Π΅ Π΄ΠΎΠ±Π΅ΡΠ΅ΡΡΡ Π΄ΠΎ ΠΌΡΡΠ°Π²Π΅ΠΉΠ½ΠΈΠΊΠ°. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π½ΠΎΠ²Ρ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° Β«find leafΒ».
27β29 Π΄Π΅ΠΊΠ°Π±ΡΡ, ΠΠ½Π»Π°ΠΉΠ½, ΠΠ΅cΠΏΠ»Π°ΡΠ½ΠΎ
ΠΡΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Β«find leafΒ» Π°ΠΊΡΠΈΠ²Π½ΠΎ, Π½ΠΎ ΠΊΡΡΡΠΎΡ ΠΌΡΡΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ΄ΠΎΠΌ Ρ ΠΌΡΡΠ°Π²ΡΠ΅ΠΌ, ΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° Β«run awayΒ». ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡΡΠ°Π²Π΅ΠΉ Π±ΡΠ΄Π΅Ρ Π² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΡ ΠΊΡΡΡΠΎΡΠ° ΠΌΡΡΠΈ, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π½ΠΎΠ²Ρ ΡΠΌΠ΅Π½ΠΈΡΡΡ Π½Π° Β«find leafΒ».
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΡΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π΄ΠΎΠΌΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ· Π΄ΠΎΠΌΠ° ΠΌΡΡΠ°Π²Π΅ΠΉ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π±ΠΎΡΡΡΡΡ ΠΊΡΡΡΠΎΡΠ° ΠΌΡΡΠΈ. ΠΠΎΡΠ΅ΠΌΡ? Π ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ° ΠΌΡΡΠ°Π²ΡΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρ Β«run awayΒ» ΠΈ Β«go homeΒ»
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ°
ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ FSM. ΠΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ. Π’Π°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ activeState Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
ΠΡΡΠΊΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠΈΡΠ΅ΠΌ ΡΠ°ΠΊΠ°Ρ, ΡΡΠΎ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ°Π΄ΡΠ° ΠΈΠ³ΡΡ. ΠΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, Π² activeState Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
ΠΠ΅ΡΠΎΠ΄ update() ΠΊΠ»Π°ΡΡΠ° FSM Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ°Π΄Ρ ΠΈΠ³ΡΡ. Π ΠΎΠ½, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ.
ΠΠ΅ΡΠΎΠ΄ setState() Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ°Ρ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠ°, Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡ ΠΊΠ»Π°ΡΡΡ FSM β ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π½Π°Ρ ΠΊΠ»Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ°
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΠ ΠΌΡΡΠ°Π²ΡΡ. ΠΡΡΠ΅ ΠΌΡ ΡΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π»ΠΈ Π½Π°Π±ΠΎΡ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅ΠΌ ΠΈΡ Π΅ΡΠ΅ ΡΠ°Π·, Π½ΠΎ Π² ΡΡΠΎΡ ΡΠ°Π· ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ Π½Π° ΠΊΠΎΠ΄Π΅.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ° ΠΌΡΡΠ°Π²ΡΡ, ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΠΊΠΎΠ΄Π΅
ΠΠ°Ρ ΠΌΡΡΠ°Π²Π΅ΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΊΠ»Π°ΡΡΠΎΠΌ Ant, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΅ΡΡΡ ΠΏΠΎΠ»Π΅ brain. ΠΡΠΎ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° FSM.
ΠΠ»Π°ΡΡ Ant ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° velocity ΠΈ position. ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠ΅ΡΠ° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΠΉΠ»Π΅ΡΠ°. Π€ΡΠ½ΠΊΡΠΈΡ update() Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ°Π΄ΡΠ° ΠΈΠ³ΡΡ.
ΠΠ»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΌΡ ΠΎΠΏΡΡΡΠΈΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° moveBasedOnVelocity(). ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΏΠΎΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π½Π° ΡΠ΅ΠΌΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅ΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ Understanding Steering Behaviors.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π½Π°ΡΠΈΠ½Π°Ρ Ρ findLeaf() β ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π° ΠΏΠΎΠΈΡΠΊ Π»ΠΈΡΡΡΠ΅Π².
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ goHome() β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΡΡΠ°Π²Π΅ΠΉ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΡΡ Π΄ΠΎΠΌΠΎΠΉ.
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ runAway() β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠΈ ΠΎΡ ΠΊΡΡΡΠΎΡΠ° ΠΌΡΡΠΈ.
Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ FSM: Π°Π²ΡΠΎΠΌΠ°Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΡΠ΅ΠΊΠ΅
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅, ΡΡΠΎ ΠΌΡΡΠ°Π²ΡΡ Π½Π° ΠΏΡΡΠΈ Π΄ΠΎΠΌΠΎΠΉ ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ±Π΅Π³Π°ΡΡ ΠΎΡ ΠΊΡΡΡΠΎΡΠ° ΠΌΡΡΠΈ. ΠΠΎΡ ΡΠ°ΠΊ Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ FSM:
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ° ΠΌΡΡΠ°Π²ΡΡ
ΠΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎΠ΅. ΠΠ΅Ρ, ΡΠ°ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π°ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠΎ Β«run awayΒ». ΠΡΠ»ΠΈ ΠΊΡΡΡΠΎΡ ΠΌΡΡΠΈ ΠΎΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΎΡ ΠΌΡΡΠ°Π²ΡΡ, ΡΡΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°ΡΡ: ΠΈΠ΄ΡΠΈ Π΄ΠΎΠΌΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ°ΡΡ Π»ΠΈΡΡ?
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΡΠ΅ΠΊΠ΅. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ FSM, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π²ΡΡΠ΅, Π΄Π°Π½Π½ΡΠΉ Π²ΠΈΠ΄ FSM ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ΅ΠΊ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ. Π Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ΅ΠΊΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ/ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈΠ· ΡΡΠ΅ΠΊΠ°.
ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΡΠ΅ΠΊΠ΅
Π Π²ΠΎΡ ΠΈ Π½Π°Π³Π»ΡΠ΄Π½Π°Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΡΠ΅ΠΊΠ΅:
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ Π² FSM, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π½Π° ΡΡΠ΅ΠΊΠ΅
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ FSM, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΡΠ΅ΠΊΠ΅
Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ. ΠΡΠ»ΠΈΡΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ activeState Π½Π°ΠΌ ΡΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ, Ρ.ΠΊ. Π²Π΅ΡΡΠΈΠ½Π° ΡΡΠ΅ΠΊΠ° ΡΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ setState() Π±ΡΠ» Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° pushState() (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² Π²Π΅ΡΡΠΈΠ½Ρ ΡΡΠ΅ΠΊΠ°) ΠΈ popState() (ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° Π²Π΅ΡΡΠΈΠ½Π΅ ΡΡΠ΅ΠΊΠ°).
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ FSM, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΡΠ΅ΠΊΠ΅
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ΅ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π΅ΡΠ΅Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° ΡΠ²ΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² Π½Π΅ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ attack() ΡΠ°ΠΌΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΡΡΡ ΡΠ΅Π±Ρ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²ΡΠ°Π³ Π±ΡΠ» ΡΠΆΠ΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½.
ΠΡΠ²ΠΎΠ΄
ΠΠΎΠ½Π΅ΡΠ½ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡ, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ° Π² ΠΈΠ³ΡΠ°Ρ . ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ Π³ΡΠ°ΡΠ°, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ° Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ-ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ, Π½ΠΎ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΡΠ½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ. ΠΠ°ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠ»Π΅ΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ FSM.
Π’Π΅ΠΎΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡ
ΠΡΠΎ Π΄ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π° ΡΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈΠΌΠ΅ΡΡΠ°Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΆΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΡΠ΅ΠΌΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΠΠ£, ΠΏΠΎΡΡΠΎΡΠ½Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ, ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠΌΠΈ ΡΠ΄ΡΠ°ΠΌΠΈ Π² ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΠΏΡΠΎΡΡΠΎΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ, ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΠ°ΡΒΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ Π»Π΅Π³ΠΊΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ»ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ ΠΊΠ°ΠΊ, ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΠ Π² ΠΈΠ³ΡΠ°Ρ ΠΈ ΡΠ΄.
Π£ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ² ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ², ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠ°, ΡΡΠ°ΡΡΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ Π·Π°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
Π’Π°Π±Π»ΠΈΡΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² β Π Π½Π΅ΠΉ Ρ ΡΠ°Π½ΡΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°. ΠΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ².
ΠΠ΄Π΅ΡΡ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ 0 Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ 1 ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΠ°ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ‘a’, ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ 1 Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ 2, Π΅ΡΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» ‘b’.
Π’Π΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ β ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π°Π²ΡΠΎΠΌΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π‘ΡΠ°ΡΡΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ β ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΡΠΊΡΠ΄Π° ΠΠ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ.
ΠΠ°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ β ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ Π² ΠΊΠΎΡΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π² ΠΈΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠ²Π΅ΡΠ³Π°Π΅Ρ.
ΠΠ΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡ (deterministic finite automaton)
ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΠΠ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄Π½ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡΡ.
ΠΠ΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ β Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΡΠΎ Π΅ΡΡΡ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ 1 Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π²Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ.
ΠΠ΅Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡ (nondeterministic finite automaton)
ΠΠΠ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΠΠ, ΠΏΡΠΎΡΡΠΎ Π² Π½Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ Π°Ρ, Π² Π²ΠΈΠ΄Π΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ², Π½Π΅Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· ΡΡΡΡΠΊΡΡΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ (ΡΠΏΡΠΈΠ»ΠΎΠ½ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ) β ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Π΅ΡΡΠ°ΡΡ Π±Π΅Π· ΡΡΠ΅Π½ΠΈΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°.
ΠΠ΅Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ β Π½ΠΎΠ»Ρ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΡ .
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ β Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΠΠ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΡ .
ΠΠ°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ Π΄Π²ΠΎΠΉΠ½ΡΠΌ ΠΊΡΡΠ³ΠΎΠΌ.
Π ΡΡΠ°ΡΡΠΎΠ²ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Ρ Π½Π°Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ <1>, ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π½ΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π΅ ‘b’ Ρ Π½Π°Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, ΠΏΠΎΠΉΡΠΈ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ 1 ΠΈ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ 2, ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ‘b’ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ <1, 2>.
Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΡΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠΌ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΏΡΠ½ΠΊΡΠΈΡΠ½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ.
ΠΠ΄Π΅ΡΡ Π²ΠΈΠ΄Π½ΠΎ Π΄Π²Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΈΠ· ΡΡΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ Π±Π΅Π· ΡΡΠ΅Π½ΠΈΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΌΡ ΡΡΠ°Π·Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ <2, 4>.
ΠΠ»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΠΠ Π² ΠΠΠ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π’ΠΎΠΌΠΏΡΠΎΠ½Π°.
ΠΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΠΠ Π² ΠΠΠ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΠΠ ΠΈ Π΄Π»Ρ Π΅Π³ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΡΠΆΠΎΠ·ΠΎΠ²ΡΠΊΠΎΠ³ΠΎ.
ΠΠΎΠ½Π΅ΡΠ½ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡ Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ (pushdown automaton)
ΠΡΠΎ ΡΠΎΡ ΠΆΠ΅ ΠΠ, Π½ΠΎ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΡΠ΅ΠΊΠ°. Π’Π΅ΠΏΠ΅ΡΡ Π΄Π»Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½ΡΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊΡΠΎΡΠΎΠ², ΡΠΈΠΌΠ²ΠΎΠ» ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΡΠ΅ΠΊ.
ΠΠΠΠ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π² ΡΠ°ΠΊΠΈΡ ΠΌΠ΅ΡΡΠ°Ρ , Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈ ΡΠ°Π·Π±ΠΎΡΠ΅ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΡΠ΅ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ Π² ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ . Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π΅Π΄Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠ΅ΠΊΠ° (Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΠΏΠ°ΠΌΡΡΡ ΡΠΎΠΆΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½Π°).
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΈΠ· ΡΡΠ΅ΠΊΠ° β ΠΏΡΠΈ Π»ΡΠ±ΠΎΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π²ΡΡΠΎΠ»ΠΊΠ½ΡΡΡ, Π΅ΡΠ»ΠΈ Π½Π° Π²Π΅ΡΡΠΈΠ½Π΅ ΡΡΠ΅ΠΊΠ° Π½Π΅ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΡΠΎ ΠΎΠ½ ΠΈ Π½Π΅ Π²ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ. Π’Π°ΠΊ ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ Π² ΡΡΠ΅ΠΊΠ΅, ΡΠΎ ΠΎΠ½ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΡΠ΅ΠΊ β ΠΏΡΠΈ Π»ΡΠ±ΠΎΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΡΠ΅ΡΠ°Π΅Ρ ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΡΠ΅ΠΊ.
ΠΡΠΎΡ ΠΠΠΠ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ, Π·Π° ΡΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ· ΡΡΠ΅ΠΊΠ°.
ΠΠΠΠ Π½Π΅ ΡΠ°Π²Π΅Π½ ΠΠΠΠ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π² Π΄ΡΡΠ³ΠΎΠ΅, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΠΠΠ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄ ΠΠΠΠ.
ΠΠ°ΡΠΈΠ½Π° Π’ΡΡΡΠΈΠ½Π³Π° (Turing machine)
Π‘Π°ΠΌΠ°Ρ ΠΌΠΎΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ , Π΅Π³ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π² Π»Π΅Π½ΡΠ΅ Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Ρ ΠΎΡΠ΅Ρ. Π Π½Π΅ΠΌ Π½Π΅Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ². Π£ΠΌΠ΅Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΠ, ΠΠΠΠ.
ΠΠ΅Π½ΡΠ° β ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π·Π° ΡΡΠ΅Ρ Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π½Π°Π΄ ΡΡΠ΅ΠΉΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π²Ρ ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
Π¨Π°Π±Π»ΠΎΠ½: ΡΡΠΈΡΠ°Π½ΡΠΉ_ΡΠΈΠΌΠ²ΠΎΠ»_Ρ_Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ/Π·Π°ΠΏΠΈΡΠ°Π½ΡΠΉ_ΡΠΈΠΌΠ²ΠΎΠ»; ΡΡΠΎΡΠΎΠ½Π°_ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ_Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. ΠΊΡΠ°Ρ Π»Π΅Π½ΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΡΡ ‘_’.
ΠΡΠ° ΠΠ’ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°, Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΡΡΠΎΠΈΡ ΡΠ»Π΅Π²Π°, ΡΠ°ΠΌ Π³Π΄Π΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π»Π΅Π½ΡΠ°.
ΠΠΠ’ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ ΠΠΠ’, ΡΠ°ΠΊ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠΎΠΆΠ΅ Π½Π΅ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ.
Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Π’ΡΡΡΠΈΠ½Π³Π° (universal Turing machine)
ΠΠ°ΡΠΈΠ½Π° ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ Π’ΡΡΡΠΈΠ½Π³Π°, ΠΏΠΎΠ»ΡΡΠ°Ρ Π½Π° Π²Ρ ΠΎΠ΄Π½ΡΡ Π»Π΅Π½ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ.
Π‘Π°ΠΌΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡ ΠΈΠ»ΠΈ ΡΡΠ΅ΠΉΡ-ΠΌΠ°ΡΠΈΠ½Ρ Π² ΡΡΠΈ ΡΠ°Π³Π°
ΠΡΠΈΠ²Π΅Ρ, Π₯Π°Π±Ρ!
ΠΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΡΡΠ°Π·Ρ ΠΊ Π΄Π΅Π»Ρ, Π½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΠΈΡΡΠΎΡΠΈΡ Π²ΡΠ΅ ΡΠ°ΠΊΠΈ Π½ΡΠΆΠ½Π°: ΠΏΠΎΠ»ΡΠΎΡΠ° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΡΡ ΡΡΠ΅ΠΉΡ β ΠΌΠ°ΡΠΈΠ½Ρ (ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ), Π²Π»Π°Π΄Π΅Ρ ΡΠ΅ΠΎΡΠΈΠ΅ΠΉ Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠ°, Ρ Π±ΡΠ» ΡΠ²Π΅ΡΠ΅Π½ Π² ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ (Π²ΡΠ΅ ΠΌΡ ΠΎΠΏΡΠΈΠΌΠΈΡΡΡ).
ΠΡΠ΅ΠΌΡ, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Ρ google, ΠΏΡΠΎΡΠ»ΠΎ Π±Π΅Π· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π»ΠΈ ΡΠ°ΡΠ°Π»ΡΠ½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ, Π½ΠΎ ΠΈ ΡΡΠ΄ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ Π½Π΅Π΄ΠΎΡΠ΅ΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΠΊΠΎΡΠ΅ Ρ Π½Π°ΡΠΊΠ½ΡΠ»ΡΡ Π½Π° ΡΡΡ ΡΡΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΠ»Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ΄ΠΎΠ±Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ.
Π§ΡΠΎ ΡΠ΄Π΅Π»Π°Π» ΡΠΎΠ³Π΄Π°?
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΡΠ΅ΡΠΈΡΡ Π±ΡΡΡΡΠΎ (Π½Ρ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ), ΡΠΎ ΠΌΠΎΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ Π±ΡΠ» ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ, ΡΠΎ Π΅ΡΡΡ:
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Β«ΠΈΠ·Π΄Π°Π΅Ρ ΡΠΈΠ³Π½Π°Π»Β» ΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ ΡΠΈΠ³Π½Π°Π»Π°, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ (ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅)
ΠΠΎ ΡΡΠΎ Π΄Π°Π»ΡΡΠ΅?
ΠΡΠΎ Π±ΡΠ» ΡΡΠ΅ΡΠΈΠΉ ΠΊΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠ΅ ΠΏΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ Β«ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΒ» ΠΈ Π±ΡΠ»ΠΎ ΡΠΆΠ΅ ΠΏΠΎΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡΡΡ Ρ ΡΠ΅ΠΌΠΎΠΉ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ°. ΠΠΎΡΠΎΠ²Π΅ΡΠ°Π²ΡΠΈΡΡ Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΠΌ Π½Π°ΡΡΠ½ΡΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΈΠ΄Π΅Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ Π±Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ², Π½ΠΎ ΠΈ ΠΊΠ°ΠΊ-ΡΠΎ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ
ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΡΠ°ΡΡΡΡ
, Π° ΠΏΠΎΠΊΠ° ΡΡΠΎ ΠΏΠΎΠΊΠ°ΠΆΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ.
Π‘ΠΏΡΡΡΡ Π³ΠΎΠ΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° wpf Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ReactiveUI.
Π’ΡΡ Ρ Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ° Π² Π²ΠΈΠ΄Π΅ Π³ΡΠ°ΡΠ° ΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΎΠ².
ΠΠ°ΠΊΠΈΠ΄ΡΠ²Π°Π΅ΠΌ ΡΠ·Π»Ρ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ ΠΈΡ
ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌ Π² xml ΡΠ°ΠΉΠ».
Π ΡΠ΅Π»ΠΎΠΌ Ρ ΠΏΠΎΡΡΠ°ΡΠ°Π»ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈ ΡΡΠΈΠ»ΡΠ½ΠΎ, Π° ΠΊΠ°ΠΊ Π±ΠΎΠ½ΡΡ β ΠΊΡΡΠ° Π³ΠΎΡΡΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ. Π‘ΡΡΠ»ΠΊΡ Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ Π² Π²ΠΈΠ΄Π΅ gif ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Ρ Π² ΠΊΠΎΠ½ΡΠ΅.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
ΠΠ²Π΅ ΡΠ΅ΠΌΡ
ΠΠ²Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ°:
ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ·Π»ΠΎΠ² ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ
ΠΡΠΌΠ΅Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
Π‘Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ·Π»ΠΎΠ²
ΠΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ²
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ²
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ²
ΠΠΌΠΏΠΎΡΡ/ΠΠΊΡΠΏΠΎΡΡ ΠΈΠ·/Π² xml
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ Π² PNG/JPEG
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°
Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ Π² ΡΡΠΈ ΡΠ°Π³Π°:
ΠΡΠΌΠ΅ΡΡ, ΡΡΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, Π²Π΅Π΄Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ Π² ΠΊΠΎΠ΄Π΅ ΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ, ΡΠ΄Π΅Π»Π°ΡΡ export ΡΡ Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΡΠΎΠΌ ΡΠΆΠ΅ ΠΎΡΠΊΡΡΡΡ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅.
Π ΡΡΠΎ Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°ΠΌΠΈ?
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Entry/Exit Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ:
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΡΡΠ°Π·Ρ ΠΆΠ΅, ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ, ΡΠΎ Π΅ΡΡΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΡΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π° ΠΏΠΎΡΠΎΠΌ ΡΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄.
Π§ΡΠΎ Π΅ΡΡΡ Π΅ΡΡ?
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΡ ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΡΡΡΠ»ΠΊΡ ΡΠΎΠΆΠ΅ ΠΎΡΡΠ°Π²Π»Ρ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
ΠΡΠ΄ΡΡΠ΅Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠΈΠΏΠ»ΠΎΠΌ Π±ΡΠ» Π·Π°ΡΠΈΡΠ΅Π½ Π½Π° ΠΎΡΠ»ΠΈΡΠ½ΠΎ, Π½ΠΎ Π·Π°Π±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ Ρ
ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ.
ΠΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄Ρ ΡΠ°Π΄ ΠΏΠΎΠΌΠΎΡΠΈ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π½ΠΈΠΆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
ΠΏΡΠ½ΠΊΡΠΎΠ².
Π’Π°ΠΊΠΆΠ΅, Π΅ΡΠ»ΠΈ ΠΡ Π½Π°ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ β ΠΏΠΈΡΠΈΡΠ΅, Π±ΡΠ΄Ρ ΠΎΡΠ΅Π½Ρ ΡΠ°Π΄!
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ:
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΡΠ½ΠΊΡ ΡΠ°ΡΠΏΠΈΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅. Π‘Π΅ΠΉΡΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΡ Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΎΠΏΠΈΡΠ°Π½Ρ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΉΠ»Π°.
Π ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π‘ΡΠ°Π·Ρ ΡΠΊΠ°ΠΆΡ, ΡΡΠΎ dynamic Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.
Π’ΡΡ Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅ Π½ΡΠΆΠ½Π° ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΊΠΎΠ΄ΠΎ-Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ, Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ° ΡΡΠΎ Π½Π΅ Π½Π°ΡΠ΅Π».
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ:
ΠΡΠ²ΠΎΠ΄Ρ
Π‘ΡΡΠ»ΠΊΠΈ
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΈ Π½Π° GitHub: SimpleStateMachineNodeEditor
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΈ Π½Π° GitHub: SimpleStateMachineLibrary