рдЧреЗрдо рдореЗрдХрд░ рдПрдЖрдИ - рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ?

рдЧреЗрдо рдореЗрдХрд░ рдПрдХ рд╡рд┐рдХрд╛рд╕ рдордВрдЪ (2 рдбреА рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ) рдЦреЗрд▓ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЧреЗрдо рдореЗрдХрд░ 8.0 \ 8.1 рдФрд░ рдЧреЗрдо рдореЗрдХрд░ рд╕реНрдЯреВрдбрд┐рдпреЛред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз, рд╡реИрд╕реЗ, рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рдЬреЛ, рд╕рдВрднрд╡рддрдГ, рдЗрдВрдЬрди рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдХ рд╣реИ)ред

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдЬреАрдПрдо рдпреВрдирд┐рдЯреА 3 рдбреА / рдХреНрд░рд╛рдЗрдВрдЧреЗрдВрдЧрд┐рди / рдЕрдирд░рд┐рдпрд▓ рдЬреИрд╕реЗ рджрд┐рдЧреНрдЧрдЬреЛрдВ рдХреА рдЫрд╛рдпрд╛ рдХреЗ рдиреАрдЪреЗ рдЕрдкрдиреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдЦреЛ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЗрдВрдЬрди рдХреА рдорд╛рдВрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдЪрд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдЧреЗрдо (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП) рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо 3 рдбреА рд╡рд┐рдХрд╛рд╕ рддрдХрдиреАрдХреЛрдВ рдФрд░ рдЕрдиреНрдп "рдЕрдирд╛рд╡рд╢реНрдпрдХ" рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдмрд╣реБрдд рдорд╛рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдРрд╕реЗ рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЗрдо рдореЗрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рднрд╛рдЧ рдкрд░ рджреГрд╢реНрдп рдмрд▓рд┐рджрд╛рди рдХреЗ рдмрд┐рдирд╛ рдЙрдЪреНрдЪ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рддреЛ, рдмрд┐рдВрджреБ рдХреЗ рдХрд░реАрдмред рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╕рдордп рд╕реЗ рдореИрдВ рдЬреАрдПрдо рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдФрд░ рдПрдХ рдмрдврд╝рд┐рдпрд╛ рджрд┐рди рдореЗрд░реЗ рд╕рд╛рдордиреЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рдо рдмрди рдЧрдпрд╛ - TDS (рдЯреЙрдк рдбрд╛рдЙрди рд╢реВрдЯрд░) рд╢реИрд▓реА рдХреЗ рдПрдХ рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп AI рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╕рдЪ рдХрд╣реВрдБ рддреЛ, рдЙрд╕ рдХреНрд╖рдг рддрдХ рдореБрдЭреЗ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдерд╛, рдФрд░ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рд╣реА рдХрд╛рд░реНрдп рдиреЗ рдореБрдЭреЗ рднреНрд░рдорд┐рдд рдХрд░ рджрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЕрдЧрд▓реЗ рддреАрди рджрд┐рди рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдмрд┐рддрд╛рдП (рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдкрд░реАрдХреНрд╖рдг рдФрд░ рддреНрд░реБрдЯрд┐ рд╕реЗ), рдФрд░ рдореИрдВрдиреЗ рдЗрди 3 рджрд┐рдиреЛрдВ рдореЗрдВ рдХрд╛рдлреА рдХреБрдЫ рд╕реАрдЦрд╛ред рдЕрдкрдиреЗ рдЫреЛрдЯреЗ рдФрд░ рджрд░реНрджрдирд╛рдХ рдЕрдиреБрднрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВ рдЧреЗрдо рдореЗрдХрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдПрдЖрдИ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЛрдВ рдФрд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЧреЗрдо рдореЗрдХрд░ рдЯреВрд▓реНрд╕

рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рдЬреАрдПрдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдЖрдИ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдЬрд┐рд╕ рдкрд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрд╛рдж рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ)ред рдпрд╣ рдЙрдирдХреЗ рд╕рд╛рде рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рдЖрд░реНрдЯрд┐рдлрд┐рд╢рд┐рдпрд▓ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЕрдкрдиреА рдпрд╛рддреНрд░рд╛ рд╢реБрд░реВ рдХреАред рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдкрде, рджреВрд░реА рдФрд░ рджрд┐рд╢рд╛ рдХреЗ рдХреЛрдг рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рдХрд╛рд░реНрдп (рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдореЗрдВ рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдЬреАрдПрдо рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╡рд░реНрдЧреАрдХрд░рдг:

рд╡рд┐рд╕реНрдерд╛рдкрди

mp_potential_step(x,y,stepsize,checkall) //   (x,y)   ( ) stepsize //checkall ,       (0),     (1) mp_linear_step_object(x,y,stepsize,obj) //  .   ,         obj 

рдореЗрд░реЗ рд▓рд┐рдП - рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдп, рд╣рдореЗрд╢рд╛ рдирд╣реАрдВред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдХрдИ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЯрдХрд░рд╛рд╡ рдХрд╛ рдореБрдЦреМрдЯрд╛ (рдкреИрд░рд╛рдореАрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдкрд╛рдЗрдЯ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред
рджреВрд╕рд░реЗ, рдореИрдВ рдЬрдЯрд┐рд▓ рдкрдереЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рджреГрдврд╝рддрд╛ рд╕реЗ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рднреВрд▓рднреБрд▓реИрдпрд╛ рдореЗрдВ)ред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХрд▓рд╛рдХрд╛рд░ рдкрд╣рд▓реА рд╡рд╕реНрддреБ рдореЗрдВ "рдЪрд┐рдкрдХ рдЬрд╛рддрд╛ рд╣реИ" рдФрд░ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред
рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдареЛрд╕ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рд╛рдЗрдЯ рдкрд░ рдЫреЛрдЯреЗ рд░рд╛рд╕реНрддреЗ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ред

 mp_potential_path(path,xg,yg,stepsize,factor,checkall) //       -       "   ",        (    path).      ,     

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рд▓рд╛рдн рд╣реИ - рдпрджрд┐ рдкрде рдХреА рдЦреЛрдЬ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдХреЛрдИ рдЖрдВрджреЛрд▓рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдХрд▓рд╛рдХрд╛рд░ рдХреЛ "рджреАрд╡рд╛рд░ рдореЗрдВ рдЪрд┐рдкрдХреЗ рд░рд╣рдиреЗ" рд╕реЗ рдмрдЪрд╛рдПрдЧрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдорд╛рдЗрдирд╕ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рддреИрдпрд╛рд░ рдкрде рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрдХ рдХреЛ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдорд╛рдЗрдирд╕ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рдХрд╣рддреЗ рд╣реИрдВ, рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд▓рдбрд╝рд╛рдИ рдХреЗ рджреМрд░рд╛рди рдмреЗрд╣рдж рдорд╣рдВрдЧрд╛ рдФрд░ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

рдореЗрд╖ рд╡рд┐рдзрд┐:
рдЧреНрд░рд┐рдб-рдЖрдзрд╛рд░рд┐рдд рдкрджреНрдзрддрд┐ рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ (рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкреЗрд╢реЗрд╡рд░ рдЦреЗрд▓реЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рд╕рдм рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдмрд╣реБрдд рд╕реЛрдЪ рд╕рдордЭрдХрд░ред рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдкрдХреЗ рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╖реНрдЯрддрдо рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдХреНрд╖реЗрддреНрд░ рдФрд░ рд╕реЗрд▓ рдЖрдХрд╛рд░ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛ред рдЖрдкрдХреЛ рдпрд╣ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рди рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдЯреАрдХ рдЯрдХреНрдХрд░ рдХреА рдЬрд╛рдВрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпреЗ рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд┐рдзрд┐ рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдХреЛ рджреГрдврд╝рддрд╛ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
- рдЬреАрдПрдо рд╕рдВрджрд░реНрдн рд╕реЗ рдЙрджреНрдзрд░рдг

рджрд░рдЕрд╕рд▓, рд░рд╛рд╕реНрддреЛрдВ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЧреНрд░рд┐рдб рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИред рдпрд╣ рд╕рдорд╛рди рдкреЛрдЯреЗрдВрд╢рд┐рдпрд▓_рдкреИрде рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рд░рд╛рд╕реНрддрд╛ рдвреВрдВрдврддрд╛ рд╣реИ, рдпрджрд┐ рдХреЛрдИ рд╣реЛ)ред рдкреВрд░рд╛ рд▓реЗрдЦ рдЧреНрд░рд┐рдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рд╕реЗ рджреВрд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЦреБрдж рдХреЛ "рдиреНрдпреВрдирддрдо" рддрдХ рд╕реАрдорд┐рдд рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛:

 mp_grid_create(left,top,hcells,vcells,cellwidth,cellheight) 

рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдЧреНрд░рд┐рдб рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд░рд┐рдЯрд░реНрди рдХрд░рддрд╛ рд╣реИ
рд╕реЗрд▓ рдПрдХреНрд╕рдкреЛрдЬрд░, рд╕реЗрд▓рд╣рд╛рдЗрдЯ - рд╕реЗрд▓ рдЖрдХрд╛рд░

рдЧреНрд░рд┐рдб рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╖рд┐рджреНрдз рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛:
 mp_grid_add_instances(id,obj,prec) // ""  ,      obj, prec ,       , id -      

рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рд░реНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЦреЗрд▓реЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╕рднреА "рдареЛрд╕" рд╡рд╕реНрддреБрдПрдВ рдЬрд┐рдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдк рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЖрдо рдЕрднрд┐рднрд╛рд╡рдХ рд╡рд╕реНрддреБ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдореЗрдВ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рдЪрд╛рдЗрд▓реНрдб рдСрдмреНрдЬреЗрдХреНрдЯ рднреА рдЪреЗрдХ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдЧрдореНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЧреНрд░рд┐рдб рд╣реИред рдЕрдм рдпрд╣ рд╣рдорд╛рд░реЗ рдХрд▓рд╛рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдкрде рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ:

 mp_grid_path(id,path,xstart,ystart,xgoal,ygoal,allowdiag) //    (xstart,ystart)   (xgoal,ygoal)      path. allowdiag -       (    ) 


рд╣рдорд╛рд░рд╛ рд░рд╛рд╕реНрддрд╛ рддреИрдпрд╛рд░ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореМрдЬреВрдж рд╣реИред рдорд╛рдЗрдирд╕ рдПрдХ рд╣реА рд╣реИ - рдпрд╣ рддрд░реАрдХрд╛ рд╣реИ (рдпрджреНрдпрдкрд┐ рдЕрдзрд┐рдХ рд╕рд╣реА, рд╕рдЯреАрдХ, рдкрд░реЗрд╢рд╛рдиреА рд╕реЗ рдореБрдХреНрдд рддрд░реАрдХрд╛), рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

рдкрд╣рд▓реЗ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧреНрд░рд┐рдб рд╡рд┐рдзрд┐ рдкрд╕рдВрдж рдереА, рдФрд░ рдЗрд╕реЗ рдЬреАрд╡рди рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реА рд╢реИрд▓реА (рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ) рдХреЗ рдЦреЗрд▓ рдореЗрдВ рдирд╣реАрдВред рд▓рдбрд╝рд╛рдИ рдореЗрдВ, рдпрд╣ рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд╕рд╛рде рд╣реА рд╕рдВрднрд╛рд╡рд┐рдд_рдкрде рднреАред рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣, рдЖрдк рд▓рдбрд╝рд╛рдИ рдХреЗ рдмрд╛рд╣рд░ рдЧрд╢реНрдд рдХреЗ рддрд░реАрдХреЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреГрд╖реНрдЯрд┐ рдЦреЛрдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ред

рджреВрд░реА рдФрд░ рджрд┐рд╢рд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг

рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдХреЗрд╡рд▓ рдХреБрдЫ рдХрд╛рд░реНрдп рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ:

 point_distance(x1,y1,x2,y2) //    (x1,y1)   (x2,y2) point_direction(x1,y1,x2,y2) //    (x1,y1)   (x2,y2)   


рдмреЗрд╢рдХ, рдпреЗ рджреВрд░реА рдФрд░ рджрд┐рд╢рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡реЗ рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред рдЦреЛрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднреА рдореБрдЭреЗ рдПрдХ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рд▓рд┐рдкрд┐ рдорд┐рд▓реА рдЬреЛ рдбрд┐рдЧреНрд░рд┐рдпреЛрдВ рдореЗрдВ рджрд┐рд╢рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ (рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдЬрдм рдХрд▓рд╛рдХрд╛рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рджреБрд╢реНрдорди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ):

 //argument0 -   //argument1 -   var diff; diff = (argument1 - argument0) mod 360; if diff < 0 diff += 360; if abs(diff) > 180 return (360 - abs(diff)) * -sign(diff); else return diff; 


рдЯрдХрд░рд╛рд╡ рдХреА рдЬрд╛рдБрдЪ

рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП (рд╕рдорд╛рди) рдХрд╛рд░реНрдп рд╣реИрдВред рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдкрде рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рдХрд╣рддреЗ рд╣реИрдВ, рд╢реВрдЯрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп (рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╢реВрдЯрд┐рдВрдЧ) рд╡реЗ рдмрд╕ рдЕрдкреВрд░рдгреАрдп рд╣реИрдВред

 collision_point(x,y,obj,prec,notme) //,     (x,y)    obj. prec -  , notme -    (1) collision_line(x1,y1,x2,y2,obj,prec,notme) // .    ,        (x1,y1)  (x2,y2) collision_circle(xc,yc,radius,obj,prec,notme) //         (xc,yc)   radius 


рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рд╢реВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИрдВ, рдпрд╛ рдПрдЕрд░ рдЗрдВрдбрд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╢реВрдЯрд┐рдВрдЧ, рдпрд╛ рд░рдбрд╛рд░ рдпрд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдкреНрд░рдгрд╛рд▓реАред

рддреГрддреАрдп-рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп

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

рдЯреАрдбреАрдПрд╕ рдПрдЖрдИ рд▓рд┐рдм

рдЯреАрдбреАрдПрд╕ рдПрдЖрдИ рдЯреАрдбреАрдПрд╕ рдЦреЗрд▓реЛрдВ рдореЗрдВ рдПрдЖрдИ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдзрд╛ рдирд╛рдо рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ рд╕реАрдзреЗ рдЬреАрдПрдо рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХрд╛рд░реНрдпрд╛рддреНрдордХрддрд╛ рдЯреАрдбреАрдПрд╕ рдПрдЖрдИ:


рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ (рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЗ рдиреНрдпреВрдирддрдо рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде, рдмрд┐рд▓реНрдХреБрд▓)ред рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдорджрдж рд╕реЗ, рдХрд▓рд╛рдХрд╛рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЯрд╛рд▓рддреЗ рд╣реБрдП , рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдлреЙрд▓реЛ рдХрд░рддреЗ рд╣реБрдП (рд╢реВрдЯрд┐рдВрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рд╕рдХрддрд╛ рд╣реИ), рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рджреВрд░реА рдФрд░ рджреЗрдЦрдиреЗ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреЛ "рд╕рд┐рдЦрд╛" рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪрд╛рд▓ рднреАред

рдпрд╣реАрдВ рдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИред рдлреИрд╕рд▓рд╛: рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди, рд▓реЗрдХрд┐рди рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, рдПрдЖрдИ рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИред
* рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд▓рд┐рдВрдХ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рд╡реНрдпрд╡рд╣рд╛рд░ рд╡реГрдХреНрд╖ AI

рдЯреАрдбреАрдПрд╕ рдПрдЖрдИ рдХреЗ рдмрд╛рдж, рдореИрдВ рдХрдИ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдпрд╛, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рдерд╛ред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореИрдВ рдирд┐рд░рд╛рд╢рд╛ рдореЗрдВ рдерд╛ - рдХреНрдпрд╛ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдЖрдИ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЦреБрдж рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╣реИ (рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╕рд┐рд╕реНрдЯрдо)? рдпрд╣ рд╕реЛрдЪ рднрдпрд╛рдирдХ рдереА, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдХреЛрдИ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рдерд╛ред

рд▓реЗрдХрд┐рди рдлрд┐рд░ рдПрдХ рдЪрдорддреНрдХрд╛рд░ рд╣реБрдЖ, рдФрд░ рджреБрд░реНрдШрдЯрдирд╛ рд╕реЗ рдореИрдВ рдЗрд╕ рдХреГрддрд┐ рдкрд░ рдареЛрдХрд░ рдЦрд╛ рдЧрдпрд╛ред рдкрд╣рд▓реЗ рддреЛ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдЕрд░реНрде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рдЧрдпрд╛ред рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛, рдФрд░ рдХреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдЖрдзреЗ рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдЕрдиреЛрдЦрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдЖрдпрд╛ рдерд╛ред рд╡реНрдпрд╡рд╣рд╛рд░ рдЯреНрд░реА рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдЖрдИ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реА рдкреНрд░рдгрд╛рд▓реА рд╣реИред рдпрд╣ рдпрд╣рд╛рдВ рд╣реИ рдХрд┐ рдПрдЖрдИ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рдЬреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдВрдЪрд╛рд▓рди рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдкреВрд░рд╛ рд▓реЗрдЦ рдмреАрдЯреА рдПрдЖрдИ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдореЗрдВ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд▓реЗрдЦ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореМрдЬреВрдж рд╣реИ, рдЗрд╕рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ рдореЗрд░реЗ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВ рдХреЗрд╡рд▓ рдореВрд▓ рдмрд╛рддреЗрдВ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рддреЛ рдмрд╛рдд рдХреНрдпрд╛ рд╣реИ? рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рд╕рд╛рд░ рдПрдХ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рд╣реИред рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ AI рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
  1. рдХрд▓рд╛рдХрд╛рд░ рдХрд╛ рдЪрдпрди
  2. рдореБрдЦреНрдп AI рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╢рд░реНрддреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  3. рдПрдХ рдЕрджреНрдпрддрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдЬреЛ рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдХрд▓рд╛рдХрд╛рд░, рдЙрд╕рдХрд╛ рдПрдЪрдкреА, рдФрд░ рдЕрдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рд▓рдбрд╝рд╛рдИ рдореЗрдВ рд╣реИрдВ)
  4. рдХрд▓рд╛рдХрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ, рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЕрдкрдбреЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ
  5. рд╕реНрдЯреЗрдк рдИрд╡реЗрдВрдЯ (рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд┐рд░рдВрддрд░ рдЯрд╛рдЗрдорд░) рдореЗрдВ, рдПрдЧреНрдЬрд┐рдХреНрдпреВрдЯрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рд┐рдкреАрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ


рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрдпрдирдХрд░реНрддрд╛-рд╕реНрдерд┐рддрд┐-рдПрдХреНрд╢рди рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЪрд▓рддреА рд╣реИред


рдмреАрдЯреА рдПрдЖрдИ рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдЙрджрд╛рд╣рд░рдг:

 SelectorBegin('AI Role 1'); SequenceBegin(''); //     id Condition(SeeEnemy && Enemy>0); //   Action( Action_LookAt, point_direction(x,y, Enemy.x, Enemy.y)); //    2  Action( Action_Shoot, point_direction(x,y, Enemy.x, Enemy.y), 2); SelectorBegin('   '); // SequenceBegin('  '); Condition(point_distance(x,y, Enemy.x, Enemy.y)>256); Action(Action_MoveTo, Enemy.x-lengthdir_x(128, direction), Enemy.y-lengthdir_y(128, direction), highSpeed); SequenceEnd(); // SequenceBegin('  '); Condition(point_distance(x,y, Enemy.x, Enemy.y)<64); //  Action(Action_MoveTo, x-lengthdir_x(64, direction), y-lengthdir_y(64, direction), highSpeed); SequenceEnd(); SequenceBegin(''); //  ,     Action( Action_MoveTo, x+irandom_range(-64, 64), y+irandom_range(-64, 64), highSpeed); SequenceEnd(); SelectorEnd(); //    4  Action(Action_Shoot, point_direction(x,y, Enemy.x, Enemy.y), 2); SequenceEnd(); SelectorEnd(); 


рдЪрдпрдирдХрд░реНрддрд╛ - рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд░
рдЕрдиреБрдХреНрд░рдо - рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣
рджрд╢рд╛ - condition check
рдХреНрд░рд┐рдпрд╛ - рдХреНрд░рд┐рдпрд╛ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрд▓ (рдкрд╣рд▓рд╛ рддрд░реНрдХ) рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде (рдЕрдиреНрдп рддрд░реНрдХ)

рдирд┐рд╖реНрдХрд░реНрд╖

рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдпрд╣ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд┐рд░реНрдорд╛рддрд╛ рдЧреЗрдо рдореЗрдХрд░ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ AI рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЧрд░реНрдордЬреЛрд╢реА рд╕реЗ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдпрд╣ рдЙрд╕ рдкрд░ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЬрд┐рд╕ AI рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЙрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрд╣ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╣реЛрдЧрд╛ рдХрд┐ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпрд╛рдБ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдмрд╕ рдореЗрд░реЗ рдзреНрдпрд╛рди рд╕реЗ рдЧреБрдЬрд░ рд╕рдХрддреА рд╣реИрдВред рдореИрдВ рдЕрдкрдиреЗ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпрд╡рд╛рди рдкрд░рд┐рд╡рд░реНрдзрди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЦреБрд╢ рд╣реЛрдКрдВрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдореЗрд░реА рдЧрд▓рддрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдХреЗрдд, рдпрджрд┐ рдХреЛрдИ рд╣реЛред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд╕рдВрджрд░реНрдн

Source: https://habr.com/ru/post/In196140/


All Articles