рд╣реЗрдХреНрд╕рд╛рдЧреЛрдирд▓ рдЧреНрд░рд┐рдб рдкрде рдЦреЛрдЬ (AS3)

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


рдШрдЯрдХ рд╡рд┐рд╡рд░рдг


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рд╣реИрдВ:


рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рд╕реЗрд▓ рдХреЛ рдЪреБрдирд╛:

рдЫрд╡рд┐

рдЧреНрд░рд┐рдб рдЦреБрдж рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рджреНрд╡рд┐-рдЖрдпрд╛рдореА рд╕рд░рдгреА рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдорд╛рди рдЗрд╕ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП "рд╕рдВрдХреНрд░рдордг рдХреА рд▓рд╛рдЧрдд" рд╣реИрдВред рдпрджрд┐ рд╕рдВрдХреНрд░рдордг рд▓рд╛рдЧрдд HexaGrid.MAX_AVAILABLE рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдпрд╛ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рд╕реЗрд▓ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред

рдПрдХ рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рднрд░реЗ рд╣реБрдП "рд╕рдВрдХреНрд░рдордг рд▓рд╛рдЧрдд" рдХреЗ рд╕рд╛рде рджреЛ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рдгреА рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

HexaGrid.init(width, height);

рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдореЗрдВ 1 рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдПрдЧрд╛ред

рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ "рдорд╛рди" рд╕реЗ рднрд░рдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

HexaGrid.grid[x][y]=value;

рд╣рдо рд╣реЗрдХреНрд╕рд╛рдкрд╛рде рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╕рд░рдгреА рдХреЛ рдЦрд┐рд▓рд╛рддреЗ рд╣реИрдВ

var res:Boolean=HexaPath.setMap(HexaGrid.grid);

рдлрд╝рдВрдХреНрд╢рди рд╕рд░рдгреА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдЧрд╛ рдФрд░ рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рдпрд╣ рд╕рдЪ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдм рдЖрдк рдкрде рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

var result:Object=HexaPath.createPath(source:Point, target:Point);

рдкрд░рд┐рдгрд╛рдо рдЪрд░ рдХреА рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
result['status']:int;
result['path']:Array;


рдкрд░рд┐рдгрд╛рдо ['рд╕реНрдерд┐рддрд┐'] = 1 рдпрджрд┐ рдкрде рдХреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЧрдгрдирд╛ рдХреА рдЧрдИ рдереА, -1 рдпрджрд┐ рдХреБрдЫ рд╣реБрдЖред
рдФрд░ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо ['рд╕реНрдерд┐рддрд┐'] = 1 рд╣реИ , рддреЛ рдЪрд░ рдкрд░рд┐рдгрд╛рдо ['рдкрде'] рдореЗрдВ рдкрде рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдПрдХ рдЙрддреНрдкрдиреНрди рд╕рд░рдгреА рд╣реИред рд╕рд░рдгреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдХреНрд╖ рдореЗрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЪрд░, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕реЗрд▓ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЧреБрдг рдЧреБрдг рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЧрдВрджрд╛? рдЕрдм рдореИрдВ рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реВрдВрдЧрд╛:

var result:Object=HexaPath.createPath(new Point(0, 0), new Point(5, 5));
var path:Array= result['path'];
var first_cell:Point=path[0]['coords'];

рдФрд░ рдЗрд╕реА рддрд░рд╣ред

рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рднреА рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рдлреА рднрдпрд╛рд╡рд╣ рдирд┐рдХрд▓рд╛ред
рдпрд╣рд╛рдВ рдбреЗрдореЛ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред
рд╕реВрддреНрд░ рдпрд╣рд╛рдБ рд╕реЗ рдЭреВрд▓рддреЗ рд╣реИрдВ ред

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдореЗрд░реЗ рдХрд╛рдо рдХреЛ рдЙрдкрдпреЛрдЧреА рдкрд╛рдПрдЧрд╛ ...

рдпреБрдкреАрдбреАред ilyaplot рдиреЗ php рдореЗрдВ рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ред рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

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


All Articles