рдЧреЗрдорд┐рдВрдЧ рдЖрд░реНрдЯрд┐рдлрд┐рд╢рд┐рдпрд▓ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдЕрдкрдиреЗ рдкрд╛рддреНрд░реЛрдВ рдХреЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реЛрдЧрд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛рдлреА рд╣рдж рддрдХ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╛рдгреА рдХреА рдмреБрджреНрдзрд┐ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд▓реЛрдЧ рдЕрдХреНрд╕рд░ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ (рдЬреЛ рдХрд┐ рдереЛрдбрд╝рд╛ рдЧрд▓рдд рд╣реИ) рджреНрд╡рд╛рд░рд╛ рдПрдХ-рджреВрд╕рд░реЗ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд▓реЗрдЦ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдЕрднреА рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдЧреЗрдорд┐рдВрдЧ AI рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░, рдЙрдирдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рднреА рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ C ++ рдореЗрдВ рдЗрд╕ рдпрд╛ рдЙрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдФрд░ рдЖрд▓реЛрдЪрдирд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрдирдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рд╣реИрдВред
рдЖрдВрджреЛрд▓рди рдХреЗ рддрд░реАрдХреЗ
рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╕реЛрдЪрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЦреЗрд▓ рдпрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рджреБрдирд┐рдпрд╛ рдХреА рд╡рд╕реНрддреБрдПрдВ рдХрд┐рд╕ рд░реВрдк рдореЗрдВ рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХреЛрдИ рднреА рднреЗрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
- рдЕрд▓рдЧ рд╡рд╕реНрддреБ ред рд╕рдмрд╕реЗ рдЖрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдзрд┐, рдЬрдм рдПрдХ рдЪрд▓рддреА рд╡рд╕реНрддреБ рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ (Mob) рдХрд╛ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реИ, рдФрд░ рд╕реНрддрд░ рдкрд░ рд╡реЗ рдЗрд╕ рд╡рд░реНрдЧ (рдореЙрдмреНрд╕ []] рдХреА рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдХреНрд╕рд░ рдЧрддрд┐рд╢реАрд▓ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рд╕рд░рдгреА рддрддреНрд╡ (рдореЙрдм [15]ред рдбреЛрд╕реЛрдореЗрд▓реЗрд╢рд┐рдВрдЧ) рддрдХ рдкрд╣реБрдВрдЪрдХрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднреАрдбрд╝ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд░рдгреА рдХреЗ рдмрд╣реБрдд рдмрдбрд╝реЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде, рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рдорд┐рд╕рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдЗрдпрд╛рдВ рдЖрддреА рд╣реИрдВ, рдФрд░ рдЗрд╕ рдорд┐рд╕рдХреЙрд▓ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдХреВрд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
- рдПрдХ рд╡рд╕реНрддреБ рджреБрдирд┐рдпрд╛ рдХреА рдПрдХ рдЕрд╡рд╕реНрдерд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рджреЛ рдЖрдпрд╛рдореА рдорд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ (рдмреВрд▓ рдореИрдк []]], рддреЛ рдЗрд╕ рд╕реЗрд▓ рдореЗрдВ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдореМрдЬреВрджрдЧреА рдпрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдРрд░реЗ рд╕реЗрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ (рдпрджрд┐ рд╕реЗрд▓ 15.10 рдореЗрдВ рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рддреЛ рдореИрдк [15] [10] = true) ред рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЦреЗрд▓ "рдЬреАрд╡рди" рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдорд┐рд╢реНрд░рд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рджреНрд╡рд┐-рдЖрдпрд╛рдореА рд╕рд░рдгреА рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рди рдХреЗрд╡рд▓ рд╕реЗрд▓ рдореЗрдВ рдПрдХ рдЪрд░рд┐рддреНрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдпрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдорд╛рд░реНрдХрд░ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреА рдЖрдИрдбреА рдпрд╛ рд╕реВрдЪрдХ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рд░рдгреА рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХреЗрдВред
рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░
- рдЯрд╛рдЗрд▓ рдХрд┐рдпрд╛ рд╣реБрдЖ ред рдкреВрд░реА рджреБрдирд┐рдпрд╛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рджреЛ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рд╣реИ, рдФрд░ рдЖрдВрджреЛрд▓рди рдЙрдирдХреЗ рд╕рд╛рде рд╕рдЦреНрддреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╢рддрд░рдВрдЬ, рдЪреЗрдХрд░реНрд╕ рдЖрджрд┐ рдХрд╛ рдЦреЗрд▓ рд╣реИред
- рд╡реЗрдХреНрдЯрд░ ред рдЖрдВрджреЛрд▓рди рдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡реЗрдХреНрдЯрд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрд┐рд╕реА рднреА рджрд┐рд╢рд╛ рдореЗрдВ рдФрд░ рдХрд┐рд╕реА рднреА рдХреЛрдг рдкрд░ (рдмрд╛рдзрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдорд┐рд▓рд╛ рд╣реБрдЖ ред рдЯрд╛рдЗрд▓ рд╡рд╛рд▓реЗ рдФрд░ рд╡реЗрдХреНрдЯрд░ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдВрдпреБрдХреНрдд рдЙрдкрдпреЛрдЧред

рдЖрдВрджреЛрд▓рди рдХреЗ рддрд░реАрдХреЗ
- рд╕реНрдерд┐рддрд┐ рд╕рдВрдмрдВрдзреА ред рдЪрд░рд┐рддреНрд░ рдореЗрдВ рдЖрдВрджреЛрд▓рди рдХреА рд╡рд░реНрддрдорд╛рди рджрд┐рд╢рд╛ рд╣реИ, рдФрд░ рдпрд╣ рддрдм рддрдХ рд╕реНрдерд┐рд░ рд╣реИ рдЬрдм рддрдХ рд╡рд╣ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬ рд╕реЗ рдирд╣реАрдВ рдЯрдХрд░рд╛рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕рдХреЗ рд░рд╛рдЬреНрдп рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рджрд┐рд╢рд╛ред рд╡рд╣ рдмрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдХреЗ рдмрд╛рд╣рд░реА рдФрд░ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рднрд╛рд╡реЛрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред
- рд▓рдХреНрд╖реНрдп ред рдЪрд░рд┐рддреНрд░ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдХреА рдПрдХ рдпреЛрдЬрдирд╛ рдпрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдорд╛рд░реНрдЧ рд╣реИред
- рдорд┐рд▓рд╛ рд╣реБрдЖ ред рдпрд╣ рдирд╛рдо рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рд╣реЛрдиреЗ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рд╡рд╕реНрддреБ рд╕реНрдерд┐рддрд┐рдЬрдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░ рд╕рдХрддреА рд╣реИ рдпрджрд┐ рдпрд╣ рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдмрд╛рдзрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреА рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдЙрдиреНрдореВрд▓рди рдХреЗ рдмрд╛рдж рдЗрд╕рдХреА рдпреЛрдЬрдирд╛ рдкрд░ рд▓реМрдЯ рдЖрддреА рд╣реИред
рдЯрд╛рдЗрд▓реЛрдВ рдХреА рдЪрд╛рд▓
рдЯрд╛рдЗрд▓ рд╡рд┐рдзрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдерд╛, рдЬрдм рдкреВрд░реА рджреБрдирд┐рдпрд╛ рдХреЛ рдПрдХ рд╣реА рдЖрдХрд╛рд░ рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЛ рдЗрди рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдкрд░ рд╕рдЦреНрддреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рдФрд░ рд╣реЗрдХреНрд╕рд╛рдЧреЛрдиреНрд╕ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд░рдгрдиреАрддрд┐рдпреЛрдВ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдЯрд░реНрди-рдмреЗрд╕реНрдб), рдЖрд░рдкреАрдЬреА рдЗрддреНрдпрд╛рджрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдВрджреЛрд▓рди рдХреА рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рд╣рдо рд╡рд░реНрдЧ "рд╕реЗрд▓" (рдХреНрд▓рд╛рд╕ рд╕реЗрд▓) рдмрдирд╛рддреЗ рд╣реИрдВ, рд╡рд╛рдВрдЫрд┐рдд рдЖрдХрд╛рд░ (рд╕реЗрд▓ рдореИрдк [рдЪреМрдбрд╝рд╛рдИ] [рдКрдВрдЪрд╛рдИ]) рдХреЗ рдЗрди "рдХреЛрд╢рд┐рдХрд╛рдУрдВ" рдХрд╛ рдПрдХ рджреЛ рдЖрдпрд╛рдореА рд╕рд░рдгреА рдмрдирд╛рддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛, рд╣рдо рдПрдХ рдирдХреНрд╢рд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдХреБрдЫ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рд╡рд░реНрдЧ "рднреАрдбрд╝" (рд╡рд░реНрдЧ рднреАрдбрд╝) рдФрд░ рд╣рдорд╛рд░реА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рднреА рдЬреАрд╡рд┐рдд рдЪреАрдЬреЛрдВ рдХрд╛ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд╕рд░рдгреА (рд╡реЗрдХреНрдЯрд░ рдореЙрдм) рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рд╣рдорд╛рд░реА рдЯрд╛рдЗрд▓ AI рдХреЗ рд▓рд┐рдП рд░рд┐рдХреНрдд рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИ:
class Cell { bool Free;// // 0-, 1-, 2-,... int Type; // int Cost; }; Cell Map[20][20];// class Mob { тАж }; vector<Mob> Mobs;//
рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреЗ рдореЙрдм рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдВрджреЛрд▓рди рдХреЛ рджреЛ рдореБрдЦреНрдп рд░реВрдкреЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╕реНрдерд┐рддрд┐рдЬрдиреНрдп рдФрд░ рд▓рдХреНрд╖реНрдпред
рд╕реНрдерд┐рддрд┐рдЬрдиреНрдп рд╣реЛрдиреЗ рдкрд░ , рдХреБрдЫ рджрд┐рд╢рд╛ рдпрд╛ рдХреНрд░рд┐рдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдореЗрдВ рдХреА рдЬрд╛рдПрдЧреАред рдмрд╛рд╣рд░реА рдпрд╛ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ, рдЗрд╕ рд╡рд░реНрддрдорд╛рди рдХреНрд░рд┐рдпрд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рддрдо рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╕рднреА рдЦреБрдлрд┐рдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рджреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ, рдПрдХ рд╕рд░рд▓ рд╕рд╢рд░реНрдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо, рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рднреАрдбрд╝ рдореЗрдВ рд╕рдВрд╡реЗрджреА рдЕрдВрдЧ рд╣реЛрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдХрдИ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЖрдЧреЗ рджреЗрдЦрдирд╛") рдФрд░ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ ("рдмрд╛рдПрдВ рдореБрдбрд╝реЗрдВ, рджрд╛рдПрдВ рдореБрдбрд╝реЗрдВ, рдПрдХ рдХрджрдо рдЙрдард╛рдПрдВ" рдпрд╛ "рдЪрд░рдг рдмрд╛рдПрдВ, рдХрджрдо рджрд╛рдПрдВ, рдЖрдЧреЗ рдХрджрдо, рдкреАрдЫреЗ рдХрджрдо")ред рдЙрд╕рдХрд╛ "рдорд╕реНрддрд┐рд╖реНрдХ" рдЗрдВрджреНрд░рд┐рдпреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдирдореВрдирд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИ рдЬреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЯрд╛рдЗрд▓ рд╡рд╛рд▓реЗ рдЖрдВрджреЛрд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реА рднреАрдбрд╝ рдПрдХ рд╕реАрдзреА рд░реЗрдЦрд╛ рдореЗрдВ рдЬрд╛рддреА рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рджреАрд╡рд╛рд░ рд╕реЗ рдЯрдХрд░рд╛рддреА рдирд╣реАрдВ рд╣реИ, рддрдм рдпрд╣ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рджрд┐рд╢рд╛ рдореЗрдВ рдореБрдбрд╝ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЪрд▓рддреА рд░рд╣рддреА рд╣реИ:
const int CellSize = 10;// class Cell { public: bool Free;// }; Cell Map[20][20];// class Mob { public: int Direction;// : 0-, 1-, 2-, 3- int X, Y;// void ChangeDirection();// bool TestStep();// true void Move();// }; void Mob::ChangeDirection() { // int Random = rand()%2;// 0 1 if(Random==0){ Direction++; if(Direction>3) Direction = 0;// } else { Direction--; if(Direction<0) Direction = 3;// } } bool Mob::TestStep() {// true int _x = int(X/CellSize);// int _y = int(Y/CellSize); switch(Direction) { case 0: return Map[_x-1][_y].Free; break; case 1: return Map[_x][_y-1].Free; break; case 2: return Map[_x+1][_y].Free; break; case 3: return Map[_x][_y+1].Free; break; } } void Mob::Move(){// switch(Direction) { case 0: if(TestStep()==true) X-=CellSize; else ChangeDirection();// - case 1: if(TestStep()==true) Y-=CellSize; else ChangeDirection();// - case 2: if(TestStep()==true) X+=CellSize; else ChangeDirection(); case 3: if(TestStep()==true) Y+=CellSize; else ChangeDirection(); } } vector<Mob> Mobs;// for(int i=0;i<Mobs.size();i++) Mobs.at(i).Move();//
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрдб рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЖрдВрджреЛрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдмреЗрд╣рддрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдХреЗрдд рд╣реИред
рдЕрдЧрд▓реЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЖрдВрджреЛрд▓рди
рд▓рдХреНрд╖реНрдп рд╣реИ ред рдпрд╣рд╛рдВ рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдЪрд░рд┐рддреНрд░ рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛ рд╣реИ, рдпрд╛ рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдпреЛрдЬрдирд╛ рдПрдХ рдкреВрд░реНрд╡ рд╕рдВрдХрд▓рд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдЯреЗрдореНрдкрд▓реЗрдЯ рдПрдХ рдЕрд▓рдЧ рд╕рд░рдгреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдПрдХ рд╕рд░рд▓ рд╡рд░реНрдХрдкреАрд╕ ("рдмрд╛рдПрдВ, рдмрд╛рдПрдВ, рдЖрдЧреЗ, рдЖрдЧреЗ") рд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдЦреЛрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдЬрдЯрд┐рд▓ рдкрде (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдП *)ред рдЗрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдФрд░ рднреА рдЖрд╕рд╛рди рд╣реИред рднреАрдбрд╝ рд╡рд░реНрдЧ рдореЗрдВ рдХреБрдЫ рдорд╛рди рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛:
class Mob { public: int Direction;// : 0-, 1-, 2-, 3- int X, Y;// int Steps;//- vector<int> Path;// , Direction void ChangeDirection();// bool TestStep();// true void Move();// void PathStep();// }; void Mob::PathStep() {// switch(Path.at(Steps)) {// case 0: if(TestStep()==true) X-=CellSize; else ChangeDirection();// - case 1: if(TestStep()==true) Y-=CellSize; else ChangeDirection();// - case 2: if(TestStep()==true) X+=CellSize; else ChangeDirection(); case 3: if(TestStep()==true) Y+=CellSize; else ChangeDirection(); } Steps++;// - } for(int i=0;i<Mobs.size();i++) Mobs.at(i).PathStep();//
рдпреЗ рдЙрджрд╛рд╣рд░рдг рдЯрд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрд░рд┐рд╡рд╣рди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреЗ рдЕрдиреБрдорд╛рдирд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рд╡рд╛рд▓реЗ рдереЗред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд╡рд┐рд╕реНрдерд╛рдкрди рдХреЗ рдХрдИ рдЕрд╣рд╕рд╛рд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдореИрдВ рдХреЗрд╡рд▓ рд╕рд╣реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрдиреЗ рдХрд╛ рдвреЛрдВрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ред
рдЯрд╛рдЗрд▓ рдХреА рдЧрдИ рд╡рд┐рдзрд┐ рдХреЗ рдореБрдЦреНрдп рд▓рд╛рдн:
- 1. рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЖрд╕рд╛рдиреА
- 2. рдХрдо рдорд┐рд╕рдХрд▓реНрдЪреБрд▓реЗрд╢рди
- 3. рджреБрдирд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рдиред
рдореБрдЦреНрдп рдиреБрдХрд╕рд╛рди:
- 1. рдпрдерд╛рд░реНрдерд╡рд╛рджреА рднреМрддрд┐рдХреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛
- 2. рдкрд░реНрдпрд╛рдкреНрдд рд╕рд┐рдВрдереЗрдЯрд┐рдХ, рдЕрдкреНрд░рд╛рдХреГрддрд┐рдХ, рдЖрдВрджреЛрд▓рди
рд▓реЗрдЦ рдореЗрд░реА рдпреЛрдЬрдирд╛ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдирд┐рдХрд▓рд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрд▓ рд╡рд╛рд▓реЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЗ рд╕рд╛рде рдЦрддреНрдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдЧрд▓реА рдмрд╛рд░ рдореИрдВ рд╡реЗрдХреНрдЯрд░ рдФрд░ рдорд┐рд╢реНрд░рд┐рдд рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдореБрдЦреНрдп рддрд░реАрдХреЗ рднреА рдмрддрд╛рдПрдВрдЧреЗ, рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдВрдЧреЗред