рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░! рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдкреЙрд▓ рд╡рд┐рдиреНрд╕реЗрдВрдЯ рдХреНрд░реЗрд╡реЗрди рджреНрд╡рд╛рд░рд╛ рдкрд╛рдпрдерди рдФрд░ рдЖрд░реНрдХреЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде 2 рдбреА рдЧреЗрдо рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП
рдкрд╛рдпрдерди рдФрд░ рдПрдХ рдЖрд░реНрдХреЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде 2 рдбреА рдЧреЗрдо рдХреИрд╕реЗ рдмрдирд╛рдПрдВ
2 рдбреА рд╡реАрдбрд┐рдпреЛ рдЧреЗрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд░реНрдХреЗрдб, рдПрдХ рдЖрд╕рд╛рди-рд╕реЗ рдЙрдкрдпреЛрдЧ рдкрд╛рдпрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ рд╕реАрдЦреЗрдВред

рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реАрдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП Phython рдПрдХ рд╢рд╛рдирджрд╛рд░ рднрд╛рд╖рд╛ рд╣реИ, рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╣реИ рдЬреЛ "рдХреБрдЫ рдХрд░рдирд╛" рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛрдб рдкрд░ рдПрдХ рдЯрди рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдмрд┐рддрд╛рддреЗ рд╣реИрдВред рдЖрд░реНрдХреЗрдб 2 рдбреА рд╡реАрдбрд┐рдпреЛ рдЧреЗрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рдпрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдФрд░ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡реА рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдЧреЗрдо рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдФрд░ рдЖрд░реНрдХреЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред
рдореИрдВрдиреЗ PyGame рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рдкрдврд╝рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЖрд░реНрдХреЗрдб рдкрд░ рд╡рд┐рдХрд╛рд╕ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рд▓рдЧрднрдЧ 10 рд╡рд░реНрд╖реЛрдВ рддрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ PyGame рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рд┐рдЦрд╛рдпрд╛, рдФрд░ рдореИрдВрдиреЗ рдСрдирд▓рд╛рдЗрди рдкрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП ProgramArcadeGames .com рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ред PyGame рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрд╛ рдЬреИрд╕реЗ рдореИрдВ рдЙрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдХрднреА рднреА рддрдп рдирд╣реАрдВ рдереЗ ред
рдореИрдВ рдЗрд╡реЗрдВрдЯ рд▓реВрдк рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдкрдврд╝рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рдерд╛, рдЬреЛ рдЕрдм рд╣рдорд╛рд░реЗ рдХреЛрдб рдХрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдерд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкреВрд░рд╛ рдЦрдВрдб рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдореИрдВрдиреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рд╡рд╛рдИ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреНрдпреЛрдВ рдлрд╝реНрд▓рд┐рдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЪреВрдВрдХрд┐ PyGame рдХреЛ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдпрд╣ рдкреБрд░рд╛рдиреЗ SDL 1 рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рди рдХрд┐ рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рдЖрдзреБрдирд┐рдХ рдЬреИрд╕реЗ рдХрд┐ OpenGL рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рднрд╡рд┐рд╖реНрдп рдХреА рдмрд╣реБрдд рдЙрдореНрдореАрдж рдереАред
рдореИрдВ рдПрдХ рдРрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛ, рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реЛ, рдФрд░ рдХреБрдЫ рдирдП рдкрд╛рдпрдерди 3 рдлреАрдЪрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреИрд╕реЗ рдбреЗрдХреЛрд░реЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдк рд╕рдВрдХреЗрддред рдпрд╣ рдПрдХ рдЖрд░реНрдХреЗрдб рд╣реИред рдФрд░ рдпрд╣рд╛рдБ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рд╕реНрдерд╛рдкрдирд╛
рдЖрд░реНрдХреЗрдб, рдХрдИ рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдХреА рддрд░рд╣, PyPi рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдкрд╛рдЗрдк рдХрдорд╛рдВрдб (рдпрд╛ рдкрд┐рдкреЗрдирд╡ рдХрдорд╛рдВрдб) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд░реНрдХреЗрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рдпрдерди рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЯрд╛рдЗрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
pip install arcade
рдпрд╛ MacOS рдФрд░ рд▓рд┐рдирдХреНрд╕ рдкреНрд░рдХрд╛рд░ рдкрд░:
pip3 install arcade
рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЖрд░реНрдХреЗрдб рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд╛рдзрд╛рд░рдг рдбреНрд░рд╛рдЗрдВрдЧ
рдЖрдк рдЦрд┐рдбрд╝рдХреА рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдб рдХреА рдХреБрдЫ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд░рд▓ рдЪрд┐рддреНрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВ рдЬреЛ рдПрдХ рд╕реНрдорд╛рдЗрд▓реА рдмрдирд╛рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд░реНрдХреЗрдб рдбреНрд░рд╛рдЗрдВрдЧ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рддреНрд╡рд░рд┐рдд рджреГрд╢реНрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
import arcade
рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдмреЗрд╢рдХ, рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд░реВрдк рдирд╣реАрдВ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ (x, y) рд╕реНрдерд╛рди рдкрд░ рдкрд╛рдЗрди рдбреНрд░рд╛рдЗрдВрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
def draw_pine_tree(x, y) : """ This function draws a pine tree at the specified location. """
рдПрдХ рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдбреНрд░рд╛рдЗрдВрдЧ рджреЗрдЦреЗрдВред

рдПрдХ рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдЖрдзреБрдирд┐рдХ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрд╣рд▓реЗ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдкрд░ рдЧреНрд░рд╛рдлрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреЛ рдмрд╛рдж рдореЗрдВ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВред рдЖрд░реНрдХреЗрдб рднреА рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред 10,000 рдЖрдпрддреЛрдВ рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЦреАрдВрдЪрдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 800 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЦреАрдВрдЪрдирд╛ 0.001 рд╕реЗрдХрдВрдб рд╕реЗ рдХрдо рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
рдЦрд┐рдбрд╝рдХреА рд╡рд░реНрдЧ
рдмрдбрд╝реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЖрдорддреМрд░ рдкрд░ рд╡рд┐рдВрдбреЛ рдХреНрд▓рд╛рд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рддреЗ рд╣реИрдВ рдпрд╛ рд╕рдЬреНрдЬрд╛рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ ред рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдбреНрд░рд╛рдЗрдВрдЧ рд▓рд┐рдЦрдиреЗ, рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡рд┐рдВрдбреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдЦрд╛рдХрд╛ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
import arcade SCREEN_WIDTH = 800 SCREEN_HEIGHT = 600 class MyGame( arcade.Window): """ Main application class. """ def __init__(self, width, height) : super( ) .__init__(width, height) arcade.set_background_color( arcade.color.AMAZON) def setup( self) :
рд╡рд┐рдВрдбреЛ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдХрдИ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреА рд╣реИрдВред рдпрд╣рд╛рдБ рдХреБрдЫ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
on_draw: рд╕реНрдХреНрд░реАрди рдЖрд░реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛрдб рдпрд╣рд╛рдВ рдЬрд╛рддреЗ рд╣реИрдВред
рдЕрджреНрдпрддрди: рдХреЛрдб рдХреЗ рд╕рднреА рдЕрдкрдиреЗ рдЖрдЗрдЯрдо рд▓реЗ рдЬрд╛рдиреЗ рдФрд░ рдЦреЗрд▓ рддрд░реНрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ рд╣реИред рдЗрд╕реЗ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд▓рдЧрднрдЧ 60 рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
on_key_press: рдЬрдм рдХреБрдВрдЬреА рдХреЛ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЧрддрд┐ рджреЗрдВред
on_key_release: рдЬрдм рдХреБрдВрдЬреА рдЬрд╛рд░реА рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЖрдк рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдореВрд╡рдореЗрдВрдЯ рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВред
on_mouse_motion: рд╣рд░ рдмрд╛рд░ рдорд╛рдЙрд╕ рдЪрд▓рдиреЗ рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
on_mouse_press: рдорд╛рдЙрд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
set_viewport: рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдЧреЗрдореНрд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдЖрдкрдХреА рджреБрдирд┐рдпрд╛ рдПрдХ рд╕реНрдХреНрд░реАрди рдкрд░ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝реА рд╣реИред Set_viewport рдХреЙрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдпрд╣ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ рджреБрдирд┐рдпрд╛ рдХрд╛ рдХреМрди рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИред
рд╕реНрдкреНрд░рд╛рдЗрдЯ
рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдЖрд░реНрдХреЗрдб рдореЗрдВ рджреНрд╡рд┐-рдЖрдпрд╛рдореА рд░рд╛рд╕реНрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред рдЖрд░реНрдХреЗрдб рдореЗрдВ рдРрд╕реЗ рддрд░реАрдХреЗ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдбреНрд░рд╛рдЗрдВрдЧ, рдореВрд╡рд┐рдВрдЧ рдФрд░ рдПрдирд┐рдореЗрд╢рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдкреНрд░рд┐рдЯ рдирд┐рд░реНрдорд╛рдг
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕реЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЖрд░реНрдХреЗрдб рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЫрд╡рд┐ рдХреЛ рдКрдкрд░ рдпрд╛ рдиреАрдЪреЗ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдирдВрдмрд░ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
SPRITE_SCALING_COIN = 0,2 coin = arcade.Sprite("coin_01.png", SPRITE_SCALING_COIN)
рдпрд╣ рдХреЛрдб coin_01.png рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдмрдирд╛рдПрдЧрд╛ред рдЫрд╡рд┐ рдЕрдкрдиреА рдореВрд▓ рдКрдВрдЪрд╛рдИ рдФрд░ рдЪреМрдбрд╝рд╛рдИ рдХреЗ 20% рддрдХ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧреАред

рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╕реВрдЪреА
рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рд╕реВрдЪрд┐рдпрд╛рдБ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред рд╕реВрдЪреА рдореЗрдВ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ OpenGL рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЛ рдмреИрдЪ рдбреНрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдЧрд╛ред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕рд╛рде рдПрдХ рдЧреЗрдо рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд┐рдХреНрдХреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реИред рд╣рдо рджреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд▓рд┐рдП рдФрд░ рдПрдХ рд╕рд┐рдХреНрдХреЗ рдХреЗ рд▓рд┐рдПред
def setup(self): """ Set up the game and initialize the variables. """
рд╣рдо рд╕рд┐рдХреНрдХреЗ рдХреА рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рд╕рднреА рд╕рд┐рдХреНрдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ:
def on_draw(self): """ Draw everything """ arcade.start_render() self.coin_list.draw() self.player_list.draw()
рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЯрдХреНрдХрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ
рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЯрдХреНрдХрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ
Check_for_collision_with_list рдлрд╝рдВрдХреНрд╢рди рд╣рдореЗрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╕реВрдЪреА рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИред рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рд╕рднреА рд╕рд┐рдХреНрдХреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рд╕рдВрдкрд░реНрдХ рдореЗрдВ рд╣реИрдВред рд▓реВрдк рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рд╕рд┐рдХреНрдХреЗ рдХреЛ рдЧреЗрдо рд╕реЗ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдирд╛ рд╕реНрдХреЛрд░ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред
def update(self, delta_time):
рд╕рдВрдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, collect_coins.py рджреЗрдЦреЗрдВред
рдЦреЗрд▓ рднреМрддрд┐рдХреА
рдХрдИ рдЦреЗрд▓реЛрдВ рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рднреМрддрд┐рдХреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЯреЙрдк-рдбрд╛рдЙрди рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИрдВ рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рджреАрд╡рд╛рд░реЛрдВ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рд╕реЗ рд░реЛрдХрддреЗ рд╣реИрдВред рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдорд░ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдФрд░ рдЧрддрд┐рдорд╛рди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдХреБрдЫ рдЦреЗрд▓ рдорд╛рд╕, рдШрд░реНрд╖рдг, рд╕реНрдкреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЗ рд╕рд╛рде рдПрдХ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд 2D рднреМрддрд┐рдХреА рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдЦреЗрд▓реЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░

рд╕рд░рд▓ рдЯреЙрдк-рдбрд╛рдЙрди рдЧреЗрдо рдХреЗ рд▓рд┐рдП, рдЖрд░реНрдХреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рджреАрд╡рд╛рд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦрд┐рд▓рд╛рдбрд╝реА (рдпрд╛ рдХреБрдЫ рдФрд░) рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕реЗ wall_list рдХрд╣рддрд╛ рд╣реВрдВред рдлрд┐рд░ рднреМрддрд┐рдХреА рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдВрдбреЛ рдХреНрд▓рд╛рд╕ рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛрдб рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
self.physics_engine = arcade.PhysicsEngineSimple(self.player_sprite, self.wall_list)
Player_sprite рдХреЛ рджреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЧрддрд┐ рд╡реЗрдХреНрдЯрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ: change_x рдФрд░ change_yред рдЗрд╕рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреАрдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдВрдбреЛ рдХреНрд▓рд╛рд╕ рдХреЗ рдХрд╕реНрдЯрдо рдмрдЪреНрдЪреЗ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
MOVEMENT_SPEED = 5 def on_key_press(self, key, modifiers) : """Called whenever a key is pressed. """ if key = = arcade.key.UP: self.player_sprite.change_y = MOVEMENT_SPEED elif key = = arcade.key.DOWN: self.player_sprite.change_y = -MOVEMENT_SPEED elif key = = arcade.key.LEFT: self.player_sprite.change_x = -MOVEMENT_SPEED elif key = = arcade.key.RIGHT: self.player_sprite.change_x = MOVEMENT_SPEED def on_key_release(self, key, modifiers) : """Called when the user releases a key. """ if key = = arcade.key.UP or key = = arcade.key.DOWN: self.player_sprite.change_y = 0 elif key = = arcade.key.LEFT or key = = arcade.key.RIGHT: selfplayer_sprite.change_x = 0
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХреЛрдб рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдЧрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдВрдбреЛ рдХреНрд▓рд╛рд╕ рдЕрдкрдбреЗрдЯ рд╡рд┐рдзрд┐ рдореЗрдВ, рдЬрдм Physics_engine.update () рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рд╣рд┐рд▓ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рджреАрд╡рд╛рд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВред
def update(self, delta_time): """ Movement and game logic """ self.physics_engine.update()
рдПрдХ рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, sprite_move_walls.py рджреЗрдЦреЗрдВред

рд╕рд╛рдЗрдб рд╡реНрдпреВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдорд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдмрд╕ рднреМрддрд┐рдХреА рдЗрдВрдЬрди рдХреЛ PhysicsEnginePlatformer рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдФрд░ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
self.physics_engine = arcade.PhysicsEnginePlatformer(self.player_sprite, self.wall_list, gravity_constant= GRAVITY)
рдЖрдк рдЯрд╛рдЗрд▓реЛрдВ / рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдмрд┐рдЫрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрд▓ рдХреА рддрд░рд╣ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рд╕реНрддрд░ рдХреЛ рдмрдирд╛рддреЗ рд╣реИрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, sprite_tiled_map.py рджреЗрдЦреЗрдВред
рдкреВрд░реНрдг 2D рднреМрддрд┐рдХреА рдХреЗ рд▓рд┐рдП, рдЖрдк PyMunk рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдПрдХреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдЬрд╛рдиреЗрдВ
рд╕реАрдЦрдиреЗ рдХреЗ рд╕рд░реНрд╡реЛрддреНрддрдо рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдЖрд░реНрдХреЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЙрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдПрдХ рд▓рдВрдмреА рд╕реВрдЪреА рд╣реИ рдЬреЛ рд▓реЛрдЧ рдЧреЗрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдЦреЗрд▓ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдЬреЛ рдЫрд╛рддреНрд░реЛрдВ рдиреЗ рдореЗрд░реЗ рдкрд╛рдареЛрдВ рдореЗрдВ рдпрд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдкреВрдЫрд╛ рд╣реИред
рдЖрд░реНрдХреЗрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рдбреЗрдореЛ рдХреЛ рдЪрд▓рд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
python -m arcade.examples.sprite_moving_platforms
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА
рдЖрд░реНрдХреЗрдб рдЖрдкрдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭрдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдФрд░ рдЧреЗрдо рд╢реБрд░реВ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред рдХрдИ рдирдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдиреЗ рд╢реБрд░реБрдЖрдд рдХреЗ рдХреБрдЫ рд╣реА рд╕рдордп рдмрд╛рдж рд╢рд╛рдирджрд╛рд░ рдЧреЗрдо рдмрдирд╛рдПред рдЗрд╕реЗ рдЖрдЬрдорд╛рдЗрдП!