рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ 
рд╕реБрдкрд░ рдореАрдЯ рдмреЙрдп рдЬреИрд╕реЗ рдЧреЗрдо рд░рд┐рдкреНрд▓реЗ рдлрдВрдХреНрд╢рди рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЗрдирдкреБрдЯ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реИ рдЬреИрд╕реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдиреЗ рдХрд┐рдпрд╛ рдерд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП 
рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред
рд░рдгрдиреАрддрд┐ рдЧреЗрдо рдореЗрдВ рдкреВрд░реНрд╡рд╡рдд рдФрд░ рдлрд┐рд░ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рднреА рдЙрдкрдпреЛрдЧреА рд╣реИред
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо C # рдореЗрдВ рдХрдорд╛рдВрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддреАрди-рдЖрдпрд╛рдореА рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреЙрдЯ рдЪрд░рд┐рддреНрд░ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рдЖрдк рд╕реАрдЦреЗрдВрдЧреЗ:
- рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рдХреА рдореВрд▓ рдмрд╛рддреЗрдВред
- рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ
- рдЗрдирдкреБрдЯ рдХрдорд╛рдВрдб рдХреА рдПрдХ рдХрддрд╛рд░ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ рдФрд░ рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рджреЗрд░реА рдХрд░реЗрдВред
рдиреЛрдЯ : рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХрддрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рдФрд░ C # рдХрд╛ рдФрд╕рдд рдЬреНрдЮрд╛рди рд╣реИред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╣рдо рдПрдХрддрд╛ 2019.1 рдФрд░ C # 7 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рдХрд╛рдо рдкрд░ рд▓рдЧрдирд╛
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, 
рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рд╛рдордЧреНрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рдирд╛ рдФрд░ рдПрдХрддрд╛ рдореЗрдВ 
рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЦреЛрд▓реЗрдВред
рдЖрд░рдбрдмреНрд▓реНрдпреВ / рджреГрд╢реНрдпреЛрдВ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ 
рдореБрдЦреНрдп рджреГрд╢реНрдп рдЦреЛрд▓реЗрдВред рджреГрд╢реНрдп рдореЗрдВ рдПрдХ рдмреЙрдЯ рдФрд░ рдПрдХ рднреВрд▓рднреБрд▓реИрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рдпреВрдЖрдИ рд╣реИ рдЬреЛ рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реНрддрд░ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдПрдХ рдЧреНрд░рд┐рдб рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрдм рд╣рдо рдмреЙрдЯ рдХреЛ рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк 
Play рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдирд┐рд░реНрджреЗрд╢ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред
рджреГрд╢реНрдп рдХрд╛ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ 
рдмреЙрдЯ рд╣реИ ред рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЗрд╕реЗ рдкрджрд╛рдиреБрдХреНрд░рдо рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЪреБрдиреЗрдВред
рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдореЗрдВ 
рдмреЙрдЯ рдШрдЯрдХ рд╣реИред рд╣рдо рдЗрд╕ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрдирдкреБрдЯ рдХрдорд╛рдВрдб рдЬрд╛рд░реА рдХрд░рдХреЗ рдХрд░реЗрдВрдЧреЗред
рд╣рдо рдмреЙрдЯ рдХреЗ рддрд░реНрдХ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ
рдЖрд░рдбрдмреНрд▓реНрдпреВ / рд▓рд┐рдкрд┐рдпреЛрдВ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдореЗрдВ 
рдмреЙрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЛрд▓реЗрдВред рдЖрдкрдХреЛ 
рдмреЙрдЯ рд▓рд┐рдкрд┐ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рджреЛ рддрд░реАрдХреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ: 
Move рдФрд░ 
Shoot ред рдлрд┐рд░, рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ 
Move рд╡рд┐рдзрд┐ рдПрдХ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ 
CardinalDirection рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИред 
CardinalDirection рдПрдХ рдЧрдгрди рд╣реИред 
CardinalDirection рдХрд╛ рдПрдХ рдЧрдгрди рддрддреНрд╡ 
Up , 
Down , 
Right рдпрд╛ 
Left ред рдЪрдпрдирд┐рдд 
CardinalDirection рдЖрдзрд╛рд░ рдкрд░ 
CardinalDirection рдмреЙрдЯ рд╕рдВрдмрдВрдзрд┐рдд рджрд┐рд╢рд╛ рдореЗрдВ рдЧреНрд░рд┐рдб рдХреЗ рд╕рд╛рде рдареАрдХ рдПрдХ рд╡рд░реНрдЧ рдЪрд▓рддрд╛ рд╣реИред
Shoot рд╡рд┐рдзрд┐ рдмреЙрдЯ рдХреЛ рдЖрдЧ рдХреЗ рдЧреЛрд▓реЗ рджрд╛рдЧрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреА рд╣реИ рдЬреЛ 
рдкреАрд▓реА рджреАрд╡рд╛рд░реЛрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рджреАрд╡рд╛рд░реЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдмреЗрдХрд╛рд░ рд╣реИрдВред
рдЕрдВрдд рдореЗрдВ, 
ResetToLastCheckpoint рд╡рд┐рдзрд┐ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ; рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреЛ рджреЗрдЦреЗрдВред 
рдЪреМрдХреА рдореЗрдВ рдбреЙрдЯреНрд╕ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ 
рдЪреМрдХреА рдХрд╣рд╛ рдЬрд╛рддрд╛ 
рд╣реИ ред рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмреЙрдЯ рдХреЛ 
рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЬрдм рдПрдХ рдмреЙрдЯ рдПрдХ рдирдП рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдкрд░ рдХрджрдо рд░рдЦрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЙрд╕рдХреЗ рд▓рд┐рдП 
рдЕрдВрддрд┐рдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред 
ResetToLastCheckpoint рдмреЙрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред
рдЬрдм рддрдХ рд╣рдо рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рд╣рдо рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдареАрдХ рдХрд░ рд▓реЗрдВрдЧреЗред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 
рдХрдорд╛рдВрдб рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХрдорд╛рдВрдб рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдХреНрдпрд╛ рд╣реИ?
рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд 23 рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ 
: рдПрд░реАрдЪ рдЧрд╛рдорд╛, рд░рд┐рдЪрд░реНрдб рд╣реЗрд▓реНрдо, рд░рд╛рд▓реНрдл рдЬреЙрдирд╕рди рдФрд░ рдЬреЙрди рд╡реНрд▓рд┐рд╕рд╛рдЗрдбреНрд╕ ( 
рдЬреАрдУрдПрдл , рдЧреИрдВрдЧ рдСрдлрд╝ рдлреЛрд░) рджреНрд╡рд╛рд░рд╛ рдЧреИрдВрдЧ рдСрдлрд╝ рдлреЛрд░ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд 
рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдмреБрдХ рдХреЗ 
рддрддреНрд╡ ред
рд▓реЗрдЦрдХреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ рдХрд┐ "рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЛ рдПрдирдХреЛрдб рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдореЗрдВ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрд░реЛрдзреЛрдВ, рдХрддрд╛рд░ рдпрд╛ рд▓реЙрдЧ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддрд┐рд╡рд░реНрддреА рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред"
рд╡рд╛рд╣! рд╡рд╣ рдХреИрд╕реЗ рд╣реИ?
рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд╛ рдмрд╣реБрдд рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВред
рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрдирдХреИрдкреНрд╕реВрд▓реЗрдЯреЗрдб рд╡рд┐рдзрд┐ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрдИ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИред рдЗрд╕реЗ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ 
рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░рд╛рдЗрдЬреЗрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдореА "рдХрдорд╛рдВрдб" рдХреЛ рдЕрдиреНрдп рдЯреАрдореЛрдВ рдХреЗ рд╕рд╛рде рддрдм рддрдХ рдмрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдиреБрд░реЛрдз 
рдХрддрд╛рд░ рд╣реИ ред
рдЯреАрдо рдХрддрд╛рд░рдЕрдВрдд рдореЗрдВ, 
рдкреНрд░рддрд┐рд╡рд░реНрддреАрддрд╛ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдСрдкрд░реЗрд╢рди рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдб рдореЗрдВ рдХреИрд╕реЗ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ?
рдХрдорд╛рдВрдб рдХреНрд▓рд╛рд╕ рдореЗрдВ рдПрдХ 
рдПрдХреНрд╕рдХреНрдпреВрдЯ рд╡рд┐рдзрд┐ рд╣реЛрдЧреА, рдЬреЛ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ (рдЬрд┐рд╕реЗ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдЬрд┐рд╕реЗ 
рд░рд┐рд╕реАрд╡рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╡рд┐рдзрд┐ рдХрдорд╛рдВрдб рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ 
рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХрдорд╛рдВрдб рдХреНрд▓рд╛рд╕ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕рд╛рдзрд╛рд░рдг рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдЬреИрд╕реЗ рдХрд┐ рдХрддрд╛рд░, рд╕реНрдЯреИрдХ, рдЖрджрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрд┐рд╕реА рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХреА рдирд┐рд╖реНрдкрд╛рджрди рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдирд┐рд╖реНрдкрд╛рджрди рд╢реБрд░реВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рдХреЛ 
рдЗрдиреЛрдХрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕реЗ 
BotCommand рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдмреЙрдЯ рдХреЛ рдХрдорд╛рдВрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред
рдмреЙрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ
рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рд╣рдо рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, 
рдЖрд░рдбрдмреНрд▓реНрдпреВ / рд▓рд┐рдкрд┐рдпреЛрдВ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ 
рдмреЛрдЯрдХрдореИрдВрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЛрд▓реЗрдВред 
BotCommand рд╡рд░реНрдЧ рдЕрднреА рднреА рдЦрд╛рд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рдХрдХреНрд╖рд╛ рдореЗрдВ рдбрд╛рд▓реЗрдВ:
   
рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?
- commandNameрд╡реИрд░рд┐рдПрдмрд▓- commandNameрдЙрдкрдпреЛрдЧ рдорд╛рдирд╡-рдкрдардиреАрдп рдХрдорд╛рдВрдб рдирд╛рдо рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
- BotCommandрдХреЗ- BotCommandрдПрдХ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рдХрдорд╛рдВрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА- Executeрд╡рд┐рдзрд┐ рдФрд░ рдЙрд╕рдХреЗ- nameрд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред
- ExecuteCallbackрдкреНрд░рддрд┐рдирд┐рдзрд┐- ExecuteCallbackрд╡рд┐рдзрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрдирдХреИрдкреНрд╕реВрд▓реЗрдЯреЗрдб рд╡рд┐рдзрд┐ рд╢реВрдиреНрдп рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреА рдФрд░ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдк- Bot(рдШрдЯрдХ рдмреЙрдЯ ) рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧреАред
- Executeрд╕рдВрдкрддреНрддрд┐, рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрдЯреЗрдб рд╡рд┐рдзрд┐ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдЧреАред рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрдЯреЗрдб рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗред
- рд╕реНрдЯреНрд░рд┐рдВрдЧ commandNameрдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПToStringрд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпреВрдЖрдИ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдПред
рдкрд░рд┐рд╡рд░реНрддрди рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдпрд╣ рдмрд╛рдд рд╣реИ! рд╣рдордиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрдорд╛рдВрдб рдкреИрдЯрд░реНрди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИред
рдЯреАрдо рдмрд┐рд▓реНрдбрд┐рдВрдЧ
RW / рд▓рд┐рдкрд┐рдпреЛрдВ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ 
BotInputHandler рдЦреЛрд▓реЗрдВред
рдпрд╣рд╛рдБ рд╣рдо 
BotCommand рдкрд╛рдБрдЪ рдЙрджрд╛рд╣рд░рдг 
BotCommand ред рдпреЗ рдЙрджрд╛рд╣рд░рдг рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ рдмреЙрдЯ рдХреЛ рдКрдкрд░, рдиреАрдЪреЗ, рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдФрд░ рд╕рд╛рде рд╣реА рд╢реВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдВрдЧреЗред
рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбрд╛рд▓реЗрдВ:
   
рдЗрди рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, 
рдПрдХ рдЕрдирд╛рдо рд╡рд┐рдзрд┐ рдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдирд╛рдо рд╡рд┐рдзрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдХрдорд╛рдВрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЧреБрдордирд╛рдо рддрд░реАрдХреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ 
ExecuteCallback рдкреНрд░рддрд┐рдирд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬреЛ рдХрдорд╛рдВрдб рдХреЗ рдирд╛рдо рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдпрд╣ рдирд╛рдо рдЖрджреЗрд╢ рдЙрджрд╛рд╣рд░рдг рдХреЗ 
ToString рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рдмрд╛рдж рдореЗрдВ рд╣рдо рдЗрд╕реЗ UI рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред
рдкрд╣рд▓реЗ рдЪрд╛рд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдЕрдирд╛рдо рд╡рд┐рдзрд┐рдпрд╛рдВ 
bot рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ 
Move рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдирдХреЗ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрд▓рдЧ рд╣реИрдВред
MoveUp , 
MoveDown , 
MoveLeft рдФрд░ 
MoveRight , 
MoveLeft CardinalDirection.Right . 
MoveRight , 
CardinalDirection.Down , 
CardinalDirection.Left рдФрд░ 
CardinalDirection.Right рдкрд╛рд╕ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ 
рдХрдорд╛рдВрдб рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рд╕реЗрдХреНрд╢рди рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡реЗ рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ рдмреЙрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рджрд┐рд╢рд╛рдУрдВ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред
рдкрд╛рдВрдЪрд╡реЗрдВ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЕрдирд╛рдо рд╡рд┐рдзрд┐ 
bot рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП 
Shoot рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдмреЙрдЯ рдХрдорд╛рдВрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдПрдХ рдЧреЛрд▓рд╛ рджрд╛рдЧреЗрдЧрд╛ред
рдЕрдм рдЬрдм рд╣рдордиреЗ рдХрдорд╛рдВрдб рдмрдирд╛рдП рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрдирдкреБрдЯ рдХрд░рдиреЗ рдкрд░ рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЙрдиреНрд╣реЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдЗрдВрд╕реНрдЯреИрдВрд╕ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, 
BotInputHandler рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб 
BotInputHandler :
  public static BotCommand HandleInput() { if (Input.GetKeyDown(KeyCode.W)) { return MoveUp; } else if (Input.GetKeyDown(KeyCode.S)) { return MoveDown; } else if (Input.GetKeyDown(KeyCode.D)) { return MoveRight; } else if (Input.GetKeyDown(KeyCode.A)) { return MoveLeft; } else if (Input.GetKeyDown(KeyCode.F)) { return Shoot; } return null; } 
HandleInput рд╡рд┐рдзрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрдмрд╛рдП рдЧрдП рдХреБрдВрдЬреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрдорд╛рдВрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИред рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬреЗрдВред
рдЖрдЬреНрдЮрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛
рдорд╣рд╛рди, рдЕрдм рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдЯреАрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред 
рдЖрд░рдбрдмреНрд▓реНрдпреВ / рд▓рд┐рдкрд┐рдпреЛрдВ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдПрдВ рдФрд░ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ 
рджреГрд╢реНрдп рдкреНрд░рдмрдВрдзрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЛрд▓реЗрдВред рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ, рдЖрдк рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ 
UIManager рдЪрд░ рдХреЗ рдПрдХ 
uiManager рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЛрдЯрд┐рд╕ рджреЗрдЦреЗрдВрдЧреЗред
UIManager рд╡рд░реНрдЧ 
рдЯрд░реНрдорд┐рдирд▓ UI рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╕рд╣рд╛рдпрдХ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдо рдЗрд╕ рджреГрд╢реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ 
UIManager рд╕реЗ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕рдордЭрд╛рдПрдЧрд╛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЗрд╕рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, 
bot рдЪрд░ рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ 
рдмреЙрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рдмреЙрдЯ рдШрдЯрдХ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЕрдм рдирд┐рдореНрди рдХреЛрдб рдХреЛ 
SceneManager рд╡рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдЗрд╕реЗ рдЯрд┐рдкреНрдкрдгреА 
//1 рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
   
рд╡рд╛рд╣, рдХрд┐рддрдирд╛ рдХреЛрдб! рд▓реЗрдХрд┐рди рдЪрд┐рдВрддрд╛ рдордд рдХрд░реЛ; рд╣рдо рдЕрдВрддрддрдГ рдЧреЗрдо рд╡рд┐рдВрдбреЛ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдкрд╣рд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред
рдореИрдВ рдмрд╛рдж рдореЗрдВ рдХреЛрдб рд╕рдордЭрд╛рдКрдВрдЧрд╛ред рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдпрд╛рдж рд░рдЦреЗрдВред
рдХрдорд╛рдВрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЗрдо рдЪрд▓рд╛рдирд╛
рддреЛ рдЕрдм рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рдордп рд╣реИ; рдПрдХрддрд╛ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ 
рдкреНрд▓реЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдЖрдкрдХреЛ 
WASD рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд╛рд▓ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╢реВрдЯрд┐рдВрдЧ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, 
рдПрдл рдХреБрдВрдЬреА рджрдмрд╛рдПрдВред рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Enter 
рджрдмрд╛рдПрдВ ред
рдиреЛрдЯ : рдЬрдм рддрдХ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддрдм рддрдХ рдирдП рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд▓рд╛рдЗрдиреЗрдВ рдЯрд░реНрдорд┐рдирд▓ UI рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИрдВред UI рдореЗрдВ рдЯреАрдореЛрдВ рдХреЛ рдЙрдирдХреЗ рдирд╛рдореЛрдВ рд╕реЗ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ 
commandName рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ рдкрд╣рд▓реЗ UI рдХреИрд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рд▓рд╛рдЗрдиреЗрдВ рдХреИрд╕реЗ рд╣рдЯрд╛рдИ рдЬрд╛рддреА рд╣реИрдВред
рд╣рдо рдЯреАрдореЛрдВ рдХрд╛ рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХреА рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ
рдпрд╣ рдЙрд╕ рдХреЛрдб рдХреЛ рд╕реАрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ "рд▓рд╛рдЧреВ рдХрдорд╛рдВрдб" рдЦрдВрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИ:
- botCommandsрд╕реВрдЪреА- botCommandsрдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╕реНрдЯреЛрд░- BotCommandред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╕реНрдореГрддрд┐ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдкрд╛рдБрдЪ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдХрдорд╛рдВрдб рдХреЗ рдХрдИ рд╕рдВрджрд░реНрдн рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд,- executeCoroutineрдЪрд░- ExecuteCommandsRoutineрдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрдорд╛рдВрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
- рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдХреБрдВрдЬреА рджрд░реНрдЬ рдХреА рд╣реИ, рддреЛ UpdateрдЬрд╛рдВрдЪ рдХрд░реЗрдВ; рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдпрд╣ExecuteCommandsрдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛CheckForBotCommandsрдХреЛCheckForBotCommandsред
- CheckForBotCommandsрдпреВрдЬрд░ рдиреЗ рдЗрдирдкреБрдЯ рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣- BotInputHandlerрд▓рд┐рдП- BotInputHandlerрд╕реЗ рд╕реНрдЯреИрдЯрд┐рдХ- HandleInputрд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдХрдорд╛рдВрдб рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИ ред рджреА рдЧрдИ рдХрдорд╛рдВрдб рдХреЛ- AddToCommandsрдкрд╛рд╕ рдХрд┐рдпрд╛- AddToCommandsред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдпрджрд┐- executeRoutineрд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣- AddToCommandsрдХреБрдЫ рднреА рдкрд╛рд╕ рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рдпрд╣реА рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
- AddToCommandsрдореЗрдВ рдХрдорд╛рдВрдб рдХреЗ рджрд┐рдП рдЧрдП рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдореЗрдВ рдПрдХ рдирдпрд╛ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- InsertNewTextрд╡рд░реНрдЧ рдХреА- InsertNewTextрд╡рд┐рдзрд┐ рдЯрд░реНрдорд┐рдирд▓ UI рдкрд░ рдкрд╛рда рдХреА рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рддреА рд╣реИред рдПрдХ рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо- commandNameрдХрдорд╛рдВрдбрдирд╛рдо рджреЗрддреЗ рд╣реИрдВред
- ExecuteCommandsрд╡рд┐рдзрд┐- ExecuteCommandsрд▓реЙрдиреНрдЪ рдХрд░рддреА рд╣реИред
- ResetScrollToTopрд╕реЗ- UIManagerрдЯрд░реНрдорд┐рдирд▓ UI рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- ExecuteCommandsRoutineрдореЗрдВ рдПрдХ рд▓реВрдк рд╣реЛрддрд╛ рд╣реИ рдЬреЛ- botCommandsрд▓рд┐рд╕реНрдЯ рдХреЗ рдЕрдВрджрд░ рдХрдорд╛рдВрдбреНрд╕ рдкрд░- botCommandsрдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ,- botрдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ- ExecuteрдкреНрд░реЙрдкрд░реНрдЯреА рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рддрд░реАрдХреЗ рд╕реЗ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж,- CommandPauseTimeрдореЗрдВ рдПрдХ рдкреЙрдЬрд╝ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
- RemoveFirstTextLineрд╕реЗ- RemoveFirstTextLineрд╡рд┐рдзрд┐ рдЯрд░реНрдорд┐рдирд▓ UI рдореЗрдВ рдореМрдЬреВрдж рдЯреЗрдХреНрд╕реНрдЯ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рд╣рдЯрд╛ рджреЗрддреА рд╣реИ, рдпрджрд┐ рд╡рд╣ рдореМрдЬреВрдж рд╣реИред рдпрд╛рдиреА рдЬрдм рдХреЛрдИ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИ, рддреЛ рдЙрд╕рдХрд╛ рдирд╛рдо UI рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдХреЗ botCommandsрд╣реЛрдиреЗ рдХреЗ рдмрд╛рджbotCommandsрдХреЛ рд╕рд╛рдлрд╝ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ResetToLastCheckpointрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреЙрдЯ рдХреЛ рдЕрдВрддрд┐рдо рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░ResetToLastCheckpointред рдЕрдВрдд рдореЗрдВ,executeRoutinenullрдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реИред
рдкреВрд░реНрд╡рд╡рдд рдФрд░ рдлрд┐рд░ рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛
рдлрд┐рд░ рд╕реЗ рджреГрд╢реНрдп рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЬрдм рд╣рдо рджрд░реНрдЬ рдХрдорд╛рдВрдб рдХреЛ рд░рджреНрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдХреЛрдИ рдЧрд▓рддреА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдЗрд╕реЗ 
Undo рдФрд░ 
Redo рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
SceneManager.cs рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдФрд░ 
botCommands рдХреЗ рд▓рд┐рдП 
рд╕реВрдЪреА рдШреЛрд╖рдгрд╛ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░ рдШреЛрд╖рдгрд╛ рдХреЛ 
botCommands :
  private Stack<BotCommand> undoStack = new Stack<BotCommand>(); 
undoStack рдЪрд░ рдПрдХ рд╕рдВрдЧреНрд░рд╣ (рд╕рдВрдЧреНрд░рд╣ рдкрд░рд┐рд╡рд╛рд░ рд╕реЗ) рд╣реИ рдЬреЛ рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдкреВрд░реНрд╡рд╡рддреН рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдм рд╣рдо рджреЛ рддрд░реАрдХреЗ 
UndoCommandEntry рдФрд░ 
RedoCommandEntry рдЬреЛ рдкреВрд░реНрд╡рд╡рдд рдФрд░ рдлрд┐рд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдВрдЧреЗред 
SceneManager рд╡рд░реНрдЧ рдореЗрдВ, 
ExecuteCommandsRoutine рдХреЗ рдмрд╛рдж рдирд┐рдореНрди рдХреЛрдб 
SceneManager :
  private void UndoCommandEntry() {  
рдЖрдЗрдП рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ:
- рдпрджрд┐ рдЖрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдпрд╛ botCommandsрд╕реВрдЪреА рдЦрд╛рд▓реА рд╣реИ, рддреЛUndoCommandEntryрд╡рд┐рдзрд┐ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдЕрдиреНрдпрдерд╛, рдпрд╣undoStackрд╕реНрдЯреИрдХ рдкрд░ рджрд░реНрдЬ рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб рдХрд╛ рд▓рд┐рдВрдХ рд▓рд┐рдЦрддрд╛ рд╣реИред рдпрд╣botCommandsрд╕реВрдЪреА рд╕реЗ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рднреА рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред
- RemoveLastTextLineрд╕реЗ- RemoveLastTextLineрд╡рд┐рдзрд┐ рдЯрд░реНрдорд┐рдирд▓ UI рд╕реЗ рдкрд╛рда рдХреА рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдХреЛ рд╣рдЯрд╛ рджреЗрддреА рд╣реИ рддрд╛рдХрд┐ UI- botCommandsрдХреА рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдореЗрд▓- botCommandsред
- рдпрджрд┐ undoStackрд╕реНрдЯреИрдХ рдЦрд╛рд▓реА рд╣реИ, рддреЛRedoCommandEntryрдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдпрд╣undoStackрдХреЗ рд╢реАрд░реНрд╖ рд╕реЗ рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб рдХреЛundoStackрдФрд░botCommandsрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╡рд╛рдкрд╕botCommandsрд╕реВрдЪреА рдореЗрдВAddToCommandsред
рдЕрдм рд╣рдо рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреАрдмреЛрд░реНрдб рдЗрдирдкреБрдЯ рдЬреЛрдбрд╝реЗрдВрдЧреЗред 
SceneManager рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ 
SceneManager Update рд╡рд┐рдзрд┐ рдХреЗ рд╢рд░реАрд░ рдХреЛ рдирд┐рдореНрди рдХреЛрдб рд╕реЗ рдмрджрд▓реЗрдВ:
  if (Input.GetKeyDown(KeyCode.Return)) { ExecuteCommands(); } else if (Input.GetKeyDown(KeyCode.U))  
- рдЬрдм рдЖрдк U рдХреБрдВрдЬреА рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ UndoCommandEntryрд╡рд┐рдзрд┐UndoCommandEntryред
- рдЬрдм рдЖрдк R рдХреБрдВрдЬреА рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ RedoCommandEntryрд╡рд┐рдзрд┐RedoCommandEntryред
рдПрдЬ рдХреЗрд╕ рд╣реИрдВрдбрд▓рд┐рдВрдЧ
рдорд╣рд╛рди, рд╣рдо рд▓рдЧрднрдЧ рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ! рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рдПрдХ рдирдпрд╛ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рддреЗ рд╕рдордп, undoStackрд╕реНрдЯреИрдХ рдХреЛ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, undoStackрд╕реНрдЯреИрдХ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ 
SceneManager рдХреЛ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ 
SceneManager ред 
CheckForBotCommands рдмрд╛рдж рдирд┐рдореНрди рд╡рд┐рдзрд┐ рдбрд╛рд▓реЗрдВ:
  private void AddNewCommand(BotCommand botCommand) { undoStack.Clear(); AddToCommands(botCommand); } 
рдпрд╣ рд╡рд┐рдзрд┐ 
undoStack рд╕рд╛рдлрд╝ 
undoStack рдФрд░ рдлрд┐рд░ 
AddToCommands рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИред
рдЕрдм рдХреЙрд▓ рдХреЛ 
AddToCommands рдЕрдВрджрд░ 
CheckForBotCommands рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╕реЗ 
AddToCommands :
  AddNewCommand(botCommand); 
undoStack рдЖрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 
ExecuteCommands рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрджрд░ 
if рдмрд╛рдж рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ:
  undoStack.Clear(); 
рдФрд░ рд╣рдо рдЕрдВрдд рдореЗрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ!
рдЕрдкрдирд╛ рдХрд╛рдо рдмрдЪрд╛рдУред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ 
Play Editor рдореЗрдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВред рдЖрджреЗрд╢реЛрдВ рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 
U рджрдмрд╛рдПрдВред рд░рджреНрдж рдХрд┐рдП рдЧрдП рдЖрджреЗрд╢реЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП 
R рджрдмрд╛рдПрдВред
рд╣рд░реЗ рд░рдВрдЧ рдХреА рдЪреМрдХреА рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред
рдЖрдЧреЗ рдХрд╣рд╛рдБ рдЬрд╛рдирд╛ рд╣реИ?
рдЧреЗрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд░реЙрдмрд░реНрдЯ рдирд┐рд╕реНрдЯреНрд░реЙрдо рдХреЗ 
рдЧреЗрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреИрдЯрд░реНрди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВред
рдЙрдиреНрдирдд C # рддрдХрдиреАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, 
C # рд╕рдВрдЧреНрд░рд╣, Lambdas рдФрд░ LINQ рдкрд╛рдареНрдпрдХреНрд░рдо рд▓реЗрдВред
рдХрд╛рд░реНрдп
рдПрдХ рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ, рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣рд░рд┐рдд рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдореИрдВрдиреЗ рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рдиреАрдЪреЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдЫрд┐рдкрд╛ рджрд┐рдпрд╛ред
рдирд┐рд░реНрдгрдп- MoveUp ├Ч 2
- MoveRight ├Ч 3
- MoveUp ├Ч 2
- moveLeft
- рд╢реВрдЯрд┐рдВрдЧ
- MoveLeft ├Ч 2
- MoveUp ├Ч 2
- MoveLeft ├Ч 2
- MoveDown ├Ч 5
- moveLeft
- рд╢реВрдЯрд┐рдВрдЧ
- moveLeft
- MoveUp ├Ч 3
- рд╢реВрдЯ ├Ч реи
- MoveUp ├Ч 5
- MoveRight ├Ч 3