рдЯрд┐рдХ рдЯреАрдПрд╕реА рдХреЛ рдкреИрд░ рдХреА рдЕрдВрдЧреБрд▓реА "рдмрд┐рдирд╛ рд╕реАрдорд╛рдУрдВ"

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



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

  1. рдлрд╝реАрд▓реНрдб рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдмрдбрд╝реА рд╣реЛ рд╕рдХрддреА рд╣реИ (рдиреЛрдЯрдмреБрдХ рдХрд┐рддрдиреА рджреЗрд░ рддрдХ рдЪрд▓реЗрдЧреА)
  2. рд╡рд┐рдЬреЗрддрд╛ рд╡рд╣ рд╣реИ рдЬреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 5 рдЯреБрдХрдбрд╝реЗ рдбрд╛рд▓рддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

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

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рд╢реБрд░реВ рдХрд░реЗрдВ


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

рд╣реЙрдЯрдХреА рдФрд░ рдХрдорд╛рдВрдб:

  • D - AI рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдХрджрдо рдмрдирд╛рдПрдЧрд╛
  • рдЯреА - рд╕реЗрд▓ рд╡рдЬрди рджреЗрдЦреЗрдВ
  • рд╕рднреА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╡рдЬрди рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдореЗрдВ SHOW_WEIGHTS = рд╕рд╣реА рд▓рд┐рдЦреЗрдВред

рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ


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

рдЗрд╕рд▓рд┐рдП, рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рддреИрдпрд╛рд░ рдерд╛ред рдЖрдк рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдЬреАрдд рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рддрдп рдирд╣реАрдВ рдереАред

рдЦреЗрд▓ рд╕реНрдХреИрди рдХрд╛ рдЕрдВрдд


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

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

рд╕рд╛рде рд╣реА, рдЖрдкрдХреЛ рд╕рднреА рд╕реЗрд▓ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЪреВрдВрдХрд┐ рдЦреЗрд▓ рдХрд╛ рдЕрдВрдд рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 5 рдЯреБрдХрдбрд╝реЗ рд╣реИрдВ, рдРрд╕реЗ рдЯреБрдХрдбрд╝реЗ рдЬреЛ 6 рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд░реБрдЪрд┐ рдХреЗ рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рддрд░рдл рдкрд╛рдВрдЪ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдирд╣реАрдВ рд╕рдордЭреЗ? рдиреАрдЪреЗ рдПрдиреАрдореЗрд╢рди рджреЗрдЦреЗрдВред



рдХреЛрдб рджреЗрдЦреЗрдВ
checkWin( cellX, cellY ){ var res = null; var newFig = getFig(cellX,cellY); if( ! newFig ) return false; var res; res = res || checkLine( cellX, cellY, 1, 0 ); //horizontal res = res || checkLine( cellX, cellY, 0, 1 ); //vertical res = res || checkLine( cellX, cellY, 1, 1 ); //diagonal 45 res = res || checkLine( cellX, cellY, 1, -1 ); //diagonal 135 return res; function getFig( x, y ){ return Model.Field[x] && Model.Field[x][y] ? Model.Field[x][y] : 'b'; } function checkLine( x, y, dx, dy ){ x = +x; y = +y; var score = 0; while( getFig( x - dx, y - dy ) == newFig ){ x -= dx; y -= dy; } while( getFig( x, y ) == newFig ){ x += dx; y += dy; score++; } if( score >= 5 ) return true; return false; } } 


рдЪрд▓реЛ рдмреЙрдЯ рдореЗрдВ рд╣реА рдЙрддрд░ рдЬрд╛рддреЗ рд╣реИрдВ


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

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

рд╢рдмреНрджрд╛рд╡рд▓реА


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

рдЖрд╕рдиреНрди рд╣рдорд▓реЗ рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ (рд╕рд┐рд░реЛрдВ рдкрд░) рдореЗрдВ рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдпрд╛ рджреБрд╢реНрдорди рдХреЗ рдЯреБрдХрдбрд╝реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕реЛрдЪрдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдХрд┐ "рд╕рд┐рд░реЛрдВ" рдкрд░ рджреЛ рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣рдорд▓рд╛ рджреЛ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдЖрд╢рд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИред рд╣рдорд▓реЗ рдХреЗ "рд╕рд┐рд░реЛрдВ" рдкрд░ рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдХреНрд╖рдорддрд╛ 0, 1 рдпрд╛ 2 рд╣реЛ рд╕рдХрддреА рд╣реИред
рд╣рдо рд╣рдорд▓реЛрдВ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ: [рд╣рдорд▓реЗ рдХреА рд╢рдХреНрддрд┐, рдХреНрд╖рдорддрд╛] ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣рдорд▓рд╛ [рек: рез] ред


рдЪрд┐рддреНрд░ 1. рд╣рдорд▓рд╛ [4: 1]

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

рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рд╕рд╛рд░


рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдФрд░ рджреВрд╕рд░реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдХрдИ рд╣рдорд▓реЗ рд╣реИрдВред рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдПрдХ рдЪрд╛рд▓ рдмрдирд╛рддрд╛ рд╣реИ (рдХреНрд░реЙрд╕ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ)ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд╡рд╣ рдПрдХ рдЦрд╛рд▓реА рд╕реЗрд▓ рдореЗрдВ рдХрджрдо рд░рдЦрддрд╛ рд╣реИ - рдФрд░ рдЗрд╕ рддрд░рд╣ рд╡рд╣:

  1. рдЕрдкрдиреЗ рд╣рдорд▓реЗ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВ, рдФрд░ рд╢рд╛рдпрдж рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ, рдЕрдкрдиреА рд╢рдХреНрддрд┐ рдмрдврд╝рд╛рддреЗ рд╣реБрдПред рдПрдХ рдирдпрд╛ рд╣рдорд▓рд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд┐ред
  2. рджреБрд╢реНрдорди рдХреЗ рд╣рдорд▓реЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд░реЛрдХреЗрдВ рдпрд╛ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╡рд░реБрджреНрдз рдХрд░реЗрдВред

рдпрд╛рдиреА рд╣рдорд╛рд░рд╛ рдирд╛рдпрдХ рд╣рдорд▓рд╛ рдФрд░ рдмрдЪрд╛рд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдПрдХ рдмрд╛рд░ рдореЗрдВред рдЙрд╕рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓рд╛ рдФрд░ рджреВрд╕рд░рд╛ рджреЛрдиреЛрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред

рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рд╕рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

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



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

рдпрджрд┐ рдХрд┐рд╕реА рд╕реЗрд▓ рдореЗрдВ рджреВрд╕рд░реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рдЬрди рд╣реИ, рддреЛ рдпрд╣ рдЕрдзрд┐рдХ рдЦрддрд░рдирд╛рдХ рд╣рдорд▓реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдордЬрдмреВрдд рджреБрд╢реНрдорди рдХреЗ рд╣рдорд▓реЛрдВ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рддрд╛рд░реНрдХрд┐рдХ рд╣реИ ... рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдкреГрд╖реНрда рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХрдВрд╕реЛрд▓ SHOW_WEIGHTS = true рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдиреЗрддреНрд░рд╣реАрди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╕реЗрд▓ рд╡рдЬрди рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛)ред

рд╣рдорд▓рд╛ рд╡рдЬрди


рдореИрдВ рдЕрдкрдиреЗ рджрд┐рдорд╛рдЧ рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ рдФрд░ рд╣рдорд▓реЛрдВ рдФрд░ рд╡рдЬрди рдХреЗ рдРрд╕реЗ рдкрддреНрд░рд╛рдЪрд╛рд░ рд▓рд╛рдпрд╛:

 ATTACK_WEIGHT = [[],[],[],[],[],[]]; ATTACK_WEIGHT[1][1] = 0.1; ATTACK_WEIGHT[2][1] = 2; ATTACK_WEIGHT[3][1] = 4; ATTACK_WEIGHT[4][1] = 6; ATTACK_WEIGHT[5][1] = 200; ATTACK_WEIGHT[1][2] = 0.25; ATTACK_WEIGHT[2][2] = 5; ATTACK_WEIGHT[3][2] = 7; ATTACK_WEIGHT[4][2] = 100; ATTACK_WEIGHT[5][2] = 200; ATTACK_WEIGHT[5][0] = 200; 

рдЕрдиреБрднрд╡рдЬрдиреНрдп рд░реВрдк рд╕реЗ рдЪрдпрдирд┐рдд - рд╢рд╛рдпрдж рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред

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

рдЙрдЪреНрдЪ рдХреНрд╖рдорддрд╛ рд╡рд╛рд▓реЗ рд╣рдорд▓реЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рдорд▓реЗ [4: 2] рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЦреЗрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рддреЛ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдЕрдм рдЗрд╕реЗ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдХреЛрдИ рдЬреАрдд рдирд╣реАрдВ рд╣реИред рджреБрд╢реНрдорди рдЦреЗрд▓ рдХреЛ рддреЗрдЬреА рд╕реЗ рдЦрддреНрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореИрджрд╛рди рдкрд░ рд╣рдорд▓рд╛ рд╣реЛ [4: 2], рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╡рдЬрди 5. рдХреА рд╢рдХреНрддрд┐ рдХреЗ рд╕рд╛рде рд╣рдорд▓реЛрдВ рд╕реЗ рдХрдо рд╣реИред рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред


рдЪрд┐рддреНрд░рд╛ 2. рд╣рдорд▓рд╛ [4: 2]

рдлрдЯреЗ рдЕрдЯреИрдХ


рдЗрд╕ рдЕрдиреБрдЪреНрдЫреЗрдж рдореЗрдВ рдХреЛрдб рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╣рдо рдПрдХ рд╣рдорд▓реЗ рд╡рд┐рднрдХреНрдд рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ "рдлрдЯреЗ рд╣реБрдП рд╣рдорд▓реЛрдВ" рдХрд╛ рд╕рд╛рд░ рд╕рдордЭрд╛рддреЗ рд╣реИрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдерд┐рддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рдЬрдм рдХрдИ рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдВрдХрдбрд╝рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 5 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ, рдПрдХ рдФрд░ рд╕реНрдерд┐рдд рд╣реИред

рдФрд░, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рджреЛ рд╕рдорд╛рди рдЖрдВрдХрдбрд╝реЗ, рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ рдкрд░ ... рдиреЗрддреНрд░рд╣реАрди рдпрд╣ рдПрдХ рд╣рдорд▓реЗ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВред рдЖрджреЗрд╢ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ "рдлрдЯреЗ" рд╣рдорд▓реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЦрддрд░реЗ рдХреЛ рднреА рдмрдврд╝рд╛рддреЗ рд╣реИрдВред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рд╣рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╣рдо рднрд╛рдЬрдХ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВрдЧреЗред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЗрд╕рдХрд╛ рдореВрд▓реНрдп 1 рд╣реИред

  1. рд╣рдо "рдлрдЯреЗ" рд╣рдорд▓реЗ рдХреЛ рдХрдИ рд╕рд╛рдзрд╛рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ
  2. рд╣рдо рдХреЗрдВрджреНрд░реАрдп рд╣рдорд▓реЗ рдФрд░ рдкрдХреНрд╖ рдХреЗ рдмреАрдЪ рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ
  3. рдкреНрд░рддреНрдпреЗрдХ рдЦрд╛рд▓реА рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд╛рдЬрдХ рдХреЛ 1 рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  4. рд╣рдо рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдХреЗрдВрджреНрд░реАрдп рд╣рдорд▓реЗ рдХреЗ рд╡рдЬрди рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рдЗрдб рд╣рдорд▓реЛрдВ рдХрд╛ рд╡рдЬрди - рднрд╛рдЬрдХ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддрд╛ рд╣реИ


рдЕрдВрдЬреАрд░ 3. "рдлрдЯреЗ рд╣реБрдП рд╣рдорд▓реЗ" рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгред рдкреАрд▓реЗ рдХреНрд░реЙрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд▓ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рд╣рдорд▓рд╛ рдЦреЛрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд╣рдорд▓реЗ рд╡рд░реНрдЧ рдмрдирд╛рдПрдБред рд╣рдорд▓реЗ рдореЗрдВ 3 рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реЛрдВрдЧреА, рдЬреЛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦреА рдереАрдВ:

 class Attack{ constructor( cap = 0, pot = 0, div = 1 ){ this.capability = cap; // this.potential = pot; // this.divider = div; // } 

рдФрд░ рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╣рдорд▓реЗ рдХрд╛ рд╡рдЬрди рд▓реМрдЯрд╛рдПрдЧреА:

 countWeigth(){ return ATTACK_WEIGHT[ this.capability, this.potential ] / this.divider } } 

рдЕрдЧрд▓рд╛ред рд╣рдо рдПрдХ рд╕реЗрд▓ рдореЗрдВ рд╕рднреА рд╣рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВрдЧреЗ:

  1. рдХреНрд╖реИрддрд┐рдЬ рдЦреЛрдЬ
  2. рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдЦреЛрдЬ
  3. 45 рдбрд┐рдЧреНрд░реА рд╡рд┐рдХрд░реНрдг рдЦреЛрдЬ
  4. 135 рдбрд┐рдЧреНрд░реА рд╡рд┐рдХрд░реНрдг рдЦреЛрдЬ

рдпреЗ рд╕рднреА рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ , рдФрд░ рдЗрди рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рд╣рдорд▓реЛрдВ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЪреЗрдХрд▓рд╛рдЗрди рдХреНрд▓рд╛рд╕ ред

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

рд╡рд░реНрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:

 class checkLine{ constructor(){ //,        this.subFig = "├Ч"; //     .    ┬л0┬╗ - . this.Attacks = []; //  this.curAttack = new Attack; // (      ) this.iter = 1; //,     this.checkEdge = false; 

рдпрд╣рд╛рдВ рд░реЛрдХрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╕рд╡рд╛рд▓ рдЙрда рд╕рдХрддрд╛ рд╣реИ: 6 рд╡реЗрдВ рд╕реЗрд▓ рдХреА рдЬрд╛рдВрдЪ рдХреНрдпреЛрдВ рдХрд░реЗрдВ рдпрджрд┐ рдЕрдзрд┐рдХрддрдо рд╣рдорд▓реЗ рдХреА рд╢рдХреНрддрд┐ 5. рд╣реИ рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рд╣рдорд▓реЗ рдХреЗ рдХреЗрдВрджреНрд░ рд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рд░рд┐рдореЛрдЯ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИред

рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ: рдЪрд┐рддреНрд░ рдореЗрдВ 1 рдХреА рд╢рдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╣рдорд▓рд╛ рд╕реНрдХреИрди рдХрд┐рдП рдЧрдП рдХреНрд╖реЗрддреНрд░ рдХреА рд╕реАрдорд╛ рдкрд░ рд╕реНрдерд┐рдд рд╣реИред рдЗрд╕ рд╣рдорд▓реЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ "рд╡рд┐рджреЗрд╢ рдореЗрдВ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред"


рдЕрдВрдЬреАрд░ред 3. 6 рд╡реАрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛ред рдпрджрд┐ рдЖрдк 6 рд╡реЗрдВ рд╕реЗрд▓ рдХреЛ рд╕реНрдХреИрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╣рдорд▓реЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

  //   this.attackplace = 1; } 

рдХреБрдЫ рд╣рдорд▓реЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдкрд░реНрдпрд╛рдкреНрдд рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рдЧрд┐рдирд╛ рдЬрд╛рдиреЗ рдкрд░, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рд╣рдорд▓рд╛ рдЕрдкреНрд░рдорд╛рдгрд┐рдХ рд╣реИред


рдЕрдВрдЬреАрд░ред 4. рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕реНрдерд╛рди

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

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

  • рдЗрд╕рдХреА рд╢рдХреНрддрд┐ 1 рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реЛрдЧреА (рдХреЗрдВрджреНрд░реАрдп рд╕реЗрд▓ рдореЗрдВ рдПрдХ рдЖрдВрдХрдбрд╝рд╛)
  • рд╡рд┐рднрдХреНрдд - рез, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдХреЗрдВрджреНрд░реАрдп рд╣рдорд▓рд╛ рд╣реИ (рдпрд╣ рд╕реНрдХреИрди рд╕реЗрд▓ рдХрд╛ рд╣реИ);
  • рдХреНрд╖рдорддрд╛ рдЕрднреА рддрдХ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИ - рдбрд┐рдлрд╝реЙрд▓реНрдЯ 0 рд╣реИ;


рд╣рдордиреЗ рдЗрди рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдорд╛рдиреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ - рдКрдкрд░ рдХреЛрдб рджреЗрдЦреЗрдВред

2) рдЕрдЧрд▓рд╛, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдХрдо рдХрд░рдиреЗ, рд╕реНрдХреИрди рдХрд┐рдП рдЧрдП рдПрдХ рддрд░рдл 5 рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рддрд╛ рд╣реИред GetAttacks рдлрд╝рдВрдХреНрд╢рди (рд╕реЗрд▓рдПрдХреНрд╕, рд╕реЗрд▓, рд╕рдмрдлрд╝рд┐рдЧ, рдбреАрдПрдХреНрд╕, рдбрд╛рдИ) рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬрд╣рд╛рдВ:

cellX, cellY - рдЪреЗрдХ рдХрд┐рдП рдЧрдП рд╕реЗрд▓ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ
рд╕рдмрдлрд┐рдЧ - рд╡рд╣ рдЖрдВрдХрдбрд╝рд╛ рдЬрд┐рд╕реЗ рд╣рдо рдЪреЗрдХ рдХрд┐рдП рдЧрдП рд╕реЗрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ
dx, dy - рдЪрдХреНрд░реЛрдВ рдореЗрдВ x рдФрд░ y рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди - рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдо рдЦреЛрдЬ рджрд┐рд╢рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

  • рдХреНрд╖реИрддрд┐рдЬ (dx = 1, рдбрд╛рдИ = 0)
  • рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ (dx = 0, dy = 1)
  • рд╡рд┐рдХрд░реНрдг 45 (рдбреАрдПрдХреНрд╕ = 1, рдбрд╛рдИ = -1)
  • рд╡рд┐рдХрд░реНрдг 135 (рдбреАрдПрдХреНрд╕ = 1, рдбрд╛рдИ = 1)

рдПрдХ рдЕрд░реНрде рдореЗрдВ, рдпрд╣ рдЦреЛрдЬ рд▓рд╛рдЗрди рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдлрд╝рдВрдХреНрд╢рди 4 рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдЦреЛрдЬ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ рдФрд░ рд╣рдо DRY рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдЙрд▓реНрд▓рдВрдШрди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рд╕рдорд╛рд░реЛрд╣ рдХреЛрдб:

 getAttacks( cellX, cellY, subFig, dx, dy ){ this.substitudeFigure( subFig ); //  тАУ  ... for( var x = cellX - dx, y = cellY - dy; Math.abs( x - cellX ) <= 5 && Math.abs( y - cellY ) <= 5; x -= dx, y -= dy ) if( this.checkCell( x, y ) ) break; //: //    (  ) this.turnAround(); //  -    ... for( var x = cellX + dx, y = cellY + dy; Math.abs( x - cellX ) <= 5 && Math.abs( y - cellY ) <= 5; x += dx, y += dy ) if( this.checkCell( x, y ) ) break; return this.Attacks; } 

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдЧрд░ рдЪреЗрдХрд╕реЗрд▓ () рдХреБрдЫ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд▓реВрдк рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

3) рд╣рдо рдЗрди рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред
рдЪреЗрдХрд╕реЗрд▓ (x, y) рдлрд╝рдВрдХреНрд╢рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдХреГрддрд┐ рдХреЛ рдЕрдВрдЬреАрд░ рдЪрд░ рдкрд░ рд▓рд┐рдЦреЗрдВ:
Model.Field рд╣рдорд╛рд░реЗ рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рд╣реИред

 checkCell( x, y ){ var fig = Model.Field[x] && Model.Field[x][y] !== undefined ? Model.Field[x][y] : 'b'; 

рдЕрдВрдЬреАрд░ 'x', 'o', 'b' (рдмреЙрд░реНрдбрд░), 0 (рдЦрд╛рд▓реА рд╕реЗрд▓) рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

  • рдпрджрд┐ рдРрд╕рд╛ рдЖрдВрдХрдбрд╝рд╛ рдХреЗрдВрджреНрд░реАрдп рд╕реЗрд▓ ( this.subFig ) рдХреЗ рдЖрдВрдХрдбрд╝реЗ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ - рдлрд┐рд░ рд╣рдо рд╣рдорд▓реЗ рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рд╣рдо рдЙрд╕реА рднрд╛рд╡рдирд╛ рдореЗрдВ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рд╣рдорд▓реЗ рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреБрдХрдбрд╝рд╛ рдЗрд╕рдХреА рд╢рдХреНрддрд┐ ( this.curAttack.capability ) рдФрд░ рдЬрдЧрд╣ ( this.attackplace ) рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рд╕ рд╣реИред

    (рдЕрдЧрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдХреЛрдб рджреЗрдЦреЗрдВ)
  • рдпрджрд┐ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдЖрдХреГрддрд┐ рд╣реИ, рддреЛ рдЗрд╕ рд╣рдорд▓реЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдордиреЗ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдерд╛ (рдЗрд╕.curAttack) рдХреЛ рдЗрд╕ рддрд░рдл рд╕реЗ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рд╣рдорд▓реЗ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╣рдорд▓реЛрдВ рдХреЗ рд╕рд░рдгреА рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рд▓реВрдк рд╕реЗ рдмрд╛рд╣рд░ рдЖрддреЗ рд╣реИрдВред

     if( fig == 'тЧЛ' || fig == '├Ч' ){ if( this.subFig != fig ){ //  this.Attacks.push( this.curAttack ); //  return fig; //      } else{ //    this.curAttack.capability++; // +   this.attackplace++; // +   } } 

  • рдпрджрд┐ рдРрд╕реА рдХреЛрдИ рд╕реЗрд▓ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реЗ рдХреНрд╖реЗрддреНрд░ рдХреА рд╕реАрдорд╛ рд╕реЗ рдмрд╛рд╣рд░ рдЧрд┐рд░ рдЧрдП рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдорд▓рд╛ рдЕрд╡рд░реБрджреНрдз рд╣реИред рд╣рдо рдЗрд╕реЗ рд╕рднреА рд╣рдорд▓реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рд▓реВрдк рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВред

     else if( fig == 'b' ){ // this.Attacks.push( this.curAttack ); return 'b'; } 

  • рдпрджрд┐ рдЖрдк рдПрдХ рдЦрд╛рд▓реА рдкрд┐рдВрдЬрд░реЗ рдХреЛ рдкрдХрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд╣рдорд▓рд╛ рдЦрддреНрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рд╣рдо "рдлрдЯреЗ рд╣реБрдП рд╣рдорд▓реЗ" рд╕реЗ рдирд┐рдкрдЯ рд░рд╣реЗ рд╣реИрдВред рдкреНрд▓рд╕ рдкрд░ рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдФрд░ рдЬрдЧрд╣ (рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд▓рд╛ рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рд╣реИ)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рд▓реВрдк рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ - рд╢рд╛рдпрдж рдпрд╣ рдПрдХ "рдлрд╛рдбрд╝рд╛ рд╣реБрдЖ рд╣рдорд▓рд╛" рд╣реИ - рд╣рдо рдЗрд╕ рд▓рд╛рдЗрди рдХреЗ рд╕рднреА рд╣рдорд▓реЛрдВ рдХреЗ рд╕рд░рдгреА рдореЗрдВ рдЗрд╕.curAttack рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдПрдХ рдирдпрд╛ "рдХрд░рдВрдЯ" рд╣рдорд▓рд╛ рдмрдирд╛рдПрдБ рдФрд░ 1 рд╕реЗ рдЗрд╕рдХрд╛ рднрд╛рдЬрдХ рдмрдврд╝рд╛рдПрдБ (рдпрд╣ рдПрдХ рд╕рд╛рдЗрдб рдЕрдЯреИрдХ рд╣реИ)ред

     else{ //  if( this.curAttack.capability ){ this.curAttack.potential++; this.Attacks.push( this.curAttack ); this.curAttack = new Attack; this.curAttack.potential++; } this.curAttack.divider++; this.attackplace++; } 



4) рдпрджрд┐ 5 рд╡реАрдВ рд╕реЗрд▓ рдореЗрдВ рдХреЗрдВрджреНрд░реАрдп рд╕реЗрд▓ рдХреЗ рд╕рд╛рде рдЖрдВрдХрдбрд╝рд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реАрдорд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл "рдЖрд░рд╛рдо" рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╣рдорд▓реЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ "рд╕реАрдорд╛ рдХреА рдЬрд╛рдВрдЪ" ( рдпрд╣ рд╕рд╣реА рд╣реИ ред = рд╕рд╣реА )ред

 if( this.iter == 4 && fig == this.subFig ) // 5-  this.checkEdge = true; else if( this.iter == 5 ){ if( this.checkEdge ){ if( fig == this.curFig || fig == 0 ) this.curAttack.potential++; this.Attacks.push( this.curAttack ) } return 0; } this.iter++ 

CheckCell рдлрд╝рдВрдХреНрд╢рди рддреИрдпрд╛рд░ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдЪреЗрдХрд▓рд╛рдЗрди рдХреНрд▓рд╛рд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред

5) рдкрд╣рд▓рд╛ рдЪрдХреНрд░ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ "рдЪрд╛рд░реЛрдВ рдУрд░ рдореБрдбрд╝рдирд╛" рдЪрд╛рд╣рд┐рдПред рд╣рдо рд╕реВрдЪрдХ рдХреЛ рдХреЗрдВрджреНрд░ рдФрд░ рдХреЗрдВрджреНрд░реАрдп рд╣рдорд▓реЗ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рд╕реВрдЪрдХрд╛рдВрдХ 0 рдХреЗ рд╕рд╛рде, рдЗрд╕реЗ рд╣рдорд▓реЛрдВ рдХреЗ рд╕рд░рдгреА рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВред

 turnAround(){ this.iter = 1; this.checkEdge = false; this.curAttack = this.Attacks[0]; this.Attacks.splice(0,1) } 

6) рдЕрдЧрд▓рд╛, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реБрдП, рд╡рд░реНрддрдорд╛рди рд╕реЗрд▓ рдХреЗ рджреВрд╕рд░реА рддрд░рдл рдЬрд╛рдПрдВред
рдмрд┐рд▓реНрдХреБрд▓ рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рдПрдХ рд╣реА рдЬрд╛рдБрдЪред (рдкрд╣рд▓реЗ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реБрдЖ рдХреЛрдб - getAttacks рдлрд╝рдВрдХреНрд╢рди)

7) рд╕рдм рдХреБрдЫ, рд╣рдордиреЗ рдЙрди рд╕рднреА рд╣рдорд▓реЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬреЛ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд▓рд╛рдЗрди рдкрд░ рдереЗред
рдЪреЗрдХрд▓рд╛рдЗрди рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рд╣реА рд╣реИ ... рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

GetAllAttacks () рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рд╕рдм рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ - рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡рд░реНрдЧреЛрдВ рд╕реЗ рдЕрд▓рдЧ;

 getAllAttacks( cellX, cellY ){ // ,  , //       if( Model.Field[ cellX ][ cellY ] ) return false var cX = []; var cO = []; //   ... cX['0'] = this.getAttacksLine( cellX, cellY, '├Ч', 1, 0 ); cX['90'] = this.getAttacksLine( cellX, cellY, '├Ч', 0, 1 ); cX['45'] = this.getAttacksLine( cellX, cellY, '├Ч', 1, -1 ); cX['135'] = this.getAttacksLine( cellX, cellY, '├Ч', 1, 1 ); //  ... cO['0'] = this.getAttacksLine( cellX, cellY, 'тЧЛ', 1, 0 ); cO['90'] = this.getAttacksLine( cellX, cellY, 'тЧЛ', 0, 1 ); cO['45'] = this.getAttacksLine( cellX, cellY, 'тЧЛ', 1, -1 ); cO['135'] = this.getAttacksLine( cellX, cellY, 'тЧЛ', 1, 1 ); return { //     'x': cX, 'o': cO } } getAttacksLine( cellX, cellY, subFig, dx, dy ){ //      var C = new checkLine; C.getAttacks( cellX, cellY, subFig, dx, dy ); return this.filterAttacks( C ) //   } 

рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдгрд┐рдд рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╣рдорд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдкрдиреЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХрд╛ рдХрд╛рдо "рдирд┐рд░рд░реНрдердХ" рд╣рдорд▓реЛрдВ рдХреЛ рд╕реБрд▓рдЭрд╛рдирд╛ рд╣реИ:

  • рд╢реВрдиреНрдп рд╢рдХреНрддрд┐ рдХреЗ рд╕рд╛рде (рдЖрдк рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рд╡реЗ рд╕рд░рдгреА рдореЗрдВ рдЖрддреЗ рд╣реИрдВ)
  • рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреА рдХрдореА рд╡рд╛рд▓реЗ рд╣рдорд▓реЗ (рдЖрдХреНрд░рдордг 5 <)
  • рд╢реВрдиреНрдп рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рдеред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рд╣рдорд▓реЗ рдореЗрдВ 5 рд╕реЗ рдЕрдзрд┐рдХ рдХреА рд╢рдХреНрддрд┐ рд╣реИ, рддреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ред рдмреЙрдЯ рдХреЛ рдРрд╕реЗ рд╣рдорд▓реЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛, рдЙрдирдХреА рд╕реНрдХреНрд░реАрдирд┐рдВрдЧ рд╕реЗ рдЦреЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬрд╛рдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

 filterAttacks( attackLine ){ var res = [] if( attackLine.attackplace >= 5 ) attackLine.Attacks.forEach( ( a )=>{ if( a.capability && a.potential || a.capability >= 5 ) res.push( a ) }) attackLine.Attacks = res; return res } 

breakpoints


рд╣рд╛рдБ ... рдлрд┐рд░ рд╕реЗ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ! рдЗрд╕рд▓рд┐рдП рд╣рдо рдЧреЗрдо рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ, рдЬрдм рдХреЛрдИ рдЧрд▓рдд рдХрджрдо рдЧреЗрдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рддрдп рдХрд░реЗрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣рдорд▓рд╛ [3: 2] рдПрдХ рд╡рд┐рд░рд╛рдо рдмрд┐рдВрджреБ рд╣реИред рдпрджрд┐ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдЙрд╕рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд░рдЦрдХрд░ рдЗрд╕реЗ рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЕрдЧрд▓реА рдЪрд╛рд▓, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦреЗрд▓ рдореИрджрд╛рди рдкрд░ рдПрдХ рд╣рдорд▓реЗ [4: 2] рд╣реИ - рдареАрдХ рд╣реИ, рдЦреЗрд▓ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рддрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рднреА рдХрд╣ рд╕рдХрддрд╛ рд╣реИ (рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ)ред

рдпрд╛ рдПрдХ рд╣рдорд▓рд╛ [рек: рез]ред рдПрдХ рдЬрдореНрд╣рд╛рдИ - рдФрд░ рдЦреЗрд▓ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдЪрд┐рддреНрд░рд╛ 5. рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ

рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдФрд░ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯреНрд╕ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдордп рдкрд░ рдврдВрдЧ рд╕реЗ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдмреЙрдЯ рдЖрдЧреЗ рджрд┐рдЦрддрд╛ рд╣реИред рд╡рд╣ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЕрдЧрд▓реЗ рдореЛрдбрд╝ рдкрд░ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдПрдХ рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ [5: 1], рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдХрд╛ рд╡рдЬрди 200 рд╣реИ - рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЪрд╛рд▓рд╛рдХ рдиреАрд░ рдпрд╣рд╛рдВ рдЬрд╛рдПрдЧрд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬрдм рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореИрджрд╛рди рдкрд░ 2 рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдХреЛ рдХреЛрдИ рдореМрдХрд╛ рдирд╣реАрдВ рдЫреЛрдбрд╝рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЪрд╛рд▓ рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕реЗ рд╣рдорд▓реЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдПрдЖрдИ рдХреЛ рдХреИрд╕реЗ рд╕рд┐рдЦрд╛рдирд╛ рд╣реИ?


рдЪрд┐рддреНрд░рд╛ 6. 2 рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ

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

рдФрд░ рдЕрдм, рдмреЙрдЯ рди рдХреЗрд╡рд▓ рдЗрд╕ рддрд░рд╣ рдХреА рдЦреЗрд▓ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХреЗрдЧрд╛, рдмрд▓реНрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдиреЗ рдореЗрдВ рднреА рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛, рдЬреЛ рдЕрдм рдЗрд╕реЗ рдЕрдзрд┐рдХ рджреБрд░реНрдЬреЗрдп рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдмрдирд╛рддрд╛ рд╣реИред

рдХреИрд╕реЗ рд╕рдордЭреЗрдВ рдХрд┐ рдПрдХ рд╣рдорд▓рд╛ рдПрдХ рд╡рд┐рд░рд╛рдо рдмрд┐рдВрджреБ рд╣реИ


рдЖрдЗрдП рд╕реНрдкрд╖реНрдЯ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ: 4 рдХреА рд╢рдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рд╣рдорд▓рд╛ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╣реИред рдмрд╕ рдПрдХ рдЪреВрдХ рд╕реЗ рд╣рдореЗрдВ рдЦреЗрд▓ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 5 рдЯреБрдХрдбрд╝реЗ рд░рдЦреЗрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ 2 рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣рдорд▓реЗ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП 1 рдмрд╛рд░реА рдФрд░ рдЦрд░реНрдЪ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ 3. рдХреА тАЛтАЛрд╢рдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╣реИ - рдпрд╣ рдПрдХ рд╣рдорд▓рд╛ рд╣реИ [3: 2]ред

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

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдлрдЯреЗ рд╣реБрдП рд╣рдорд▓реЛрдВ рдХреЛ рдХрдИ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд▓реЛрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддреЗ рд╣реИрдВ: рдПрдХ рдХреЗрдВрджреНрд░реАрдп рд╣рдорд▓рд╛ рдФрд░ рд╕рд╛рдЗрдб рд╣рдорд▓реЗред рдХреЗрдВрджреНрд░реАрдп рд╣рдорд▓рд╛ рд╕реНрдХреИрди рдХрд┐рдП рдЧрдП рд╕реЗрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рд╕рд╛рдЗрдб рдбрд┐рд╡рд╛рдЗрдбрд░ рдореЗрдВ 1 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ - рдпрд╣ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо (рдЖрд╕рд╛рди, рдиреАрдЪреЗ рдкрдврд╝реЗрдВ):

  1. рд╣рдо рдЪрд░ рдЕрдВрдХ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддреЗ рд╣реИрдВ
  2. рд╣рдо рдХреЗрдВрджреНрд░реАрдп рд╣рдорд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рд╢рдХреНрддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ
  3. рд╣рдо рдПрдХ рдкрдХреНрд╖ рд▓реЗрддреЗ рд╣реИрдВ рдпрджрд┐ рдЗрд╕рдХрд╛ рднрд╛рдЬрдХ 2x рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИред
  4. рд╕реНрдХреЛрд░ - рдХреЗрдВрджреНрд░реАрдп рдФрд░ рд╕рд╛рдЗрдб рд╣рдорд▓реЛрдВ рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рдпреЛрдЧ
  5. рдпрджрд┐ рдХреЗрдВрджреНрд░реАрдп рдФрд░ рд╕рд╛рдЗрдб рд╣рдорд▓реЛрдВ рдХреА рдХреНрд╖рдорддрд╛ 2 рд╣реИрдВ, рддреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣рдорд▓реЗ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдФрд░ рдореЛрдбрд╝ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕реНрдХреЛрд░ 1 рд╕реЗ рдмрдврд╝рд╛ рд╣реИ
  6. рдпрджрд┐ рд╕реНрдХреЛрд░ > = 4 рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рд╡рд┐рд░рд╛рдо рдмрд┐рдВрджреБ рд╣реИ
    рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯреНрд╕ рдХреЛ рдХреЗрд╡рд▓ рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рддреБрд░рдВрдд рдпрд╣ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ред

 isBreakPoint( attackLine ){ if( ! attackLine || ! attackLine.length ) return false; var centAtk; attackLine.forEach( ( a )=>{ if( a.divider == 1 ) centAtk = a; }) if( centAtk.capability >= 4 ) return true if( centAtk.potential == 2 && centAtk.capability >= 3 ) return true; var res = false; attackLine.forEach( ( a )=>{ var score = centAtk.capability; if( a.divider == 2 ){ //side attack if( centAtk.potential == 2 && a.potential == 2 ) score++; if( score + a.capability >= 4 ){ res = true; return; } } }) return res; } 

рд╣рд╛рдВ, рд╣рдо рдЕрдВрдд рдореЗрдВ рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рд▓рд╛рдПрдВрдЧреЗ


рддреЛ, рдкреАрдЫреЗ рдореБрдЦреНрдп рдирд░рдХ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИред рдЗрд╕рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдХрд╛рдЙрдВрдЯрд╛рдЗрдЯ (x, y) - рд╕реЗрд▓ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдПрдХ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХрд╛ рд╡рдЬрди рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдХреНрдпрд╛ рд╣реИ?

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЙрди рд╕рднреА рд╣рдорд▓реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдорд┐рд▓рддреА рд╣реИ, рдЬрд┐рдирд╕реЗ рд╕реЗрд▓ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред ( getAllAttacks (x, y) )ред рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реБрдП, рд╣рдо рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ 2 рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рд╣реИрдВ, рддреЛ рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдЦреЗрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рддрдп рдХрд░ рд╕рдХрддреА рд╣реИ, рдФрд░ рд╕реЗрд▓ рд╡рдЬрди рдореЗрдВ 100 рдХреА рд╡реГрджреНрдзрд┐ рдХрд░ рд╕рдХрддреА рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рднреА рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ 2 рдЪрд░рдгреЛрдВ рдореЗрдВ рдПрдХ рдЪреЗрдХ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдкрдбрд╝рд╛: рдкрд╣рд▓реЗ рдХреНрд░реЙрд╕, рдлрд┐рд░ рд╢реВрдиреНрдпред

рдЪреВрдБрдХрд┐ рдЕрдЯреИрдХ рд╡реЗрдЯ ( ATTACK_WEIGHTS [] ) рдХреЗ рд╕рд░рдгреА рдореЗрдВ рдореИрдВрдиреЗ 6 рдпрд╛ рдЕрдзрд┐рдХ рдХреА рд╢рдХреНрддрд┐ рдХреЗ рд╕рд╛рде рд╣рдорд▓реЗ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдП рд╣реИрдВ, рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ 5. рдХреА рд╢рдХреНрддрд┐ рдХреЗ рд╕рд╛рде рд╣рдорд▓реЛрдВ рд╕реЗ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ - рд╡реЗ рд╕рднреА рдЦреЗрд▓ рдХреЗ рдЕрдВрдд рддрдХ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред

рдЦреИрд░, рд╣рдо рд╣рдорд▓реЗ рдХреЗ рд╡рдЬрд╝рди рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ рд╕рдмред

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

 countWeight( x, y ){ var attacks = this.getAttacks( x, y ) if( ! attacks ) return; var sum = 0; sum += count.call( this, attacks.x, '├Ч' ); sum += count.call( this, attacks.o, 'тЧЛ' ); return sum function count( atks, curFig ){ var weight = 0; var breakPoints = 0; [ "0", "45", "90", "135" ].forEach( ( p )=>{ if( this.isBreakPoint( atks[p] ) ){ debug( "Break point" ) if( ++breakPoints == 2 ){ weight += 100; debug( "Good cell" ) return; } } atks[p].forEach( ( a )=>{ if( a.capability > 5 ) a.capability = 5; if( a.capability == 5 && curFig == Model.whoPlays.char ) weight += 100; weight += a.getWeight(); }); }) return weight } } 

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

рдЖрдк рдмрд╛рдХреА рдХреЛрдб рдЬреАрдердм рдкрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рд╛рдордЧреНрд░реА рд╣реИ, рдФрд░ рдЗрд╕рдХреА рдкреНрд░рд╕реНрддреБрддрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ, рд╡рд╛рдВрдЫрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рд┐рдп рдкрд╛рдардХ, рддреЛ рдореИрдВ рдЖрдкрдХрд╛ рдЖрднрд╛рд░реА рд╣реВрдВред

рдкрд░рд┐рдгрд╛рдо рдкрд░ рдореЗрд░реА рд░рд╛рдп


рдиреАрдЪреЗ рдЖрдУ! рд╣рд╛рдВ, рдЖрдк рдЙрд╕реЗ рд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдереЛрдбрд╝рд╛ рд╕рдорд╕реНрдпрд╛рдЬрдирдХ рд╣реИред рд╢рд╛рдпрдж рдореИрдВ рдЕрднреА рдкрд░реНрдпрд╛рдкреНрдд рд╕рд╛рд╡рдзрд╛рди рдирд╣реАрдВ рд╣реВрдВред рдЕрдкрдиреА рддрд╛рдХрдд рднреА рдЖрдЬрдорд╛рдПрдВред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреИрд╕реЗред рдореИрдВ рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬреЛ рдРрд╕реЗ рдмреЙрдЯ рдХреЗ рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рдВ ... рдЖрдк рдорд┐рдирд┐рдореИрдХреНрд╕ рдЬреИрд╕реЗ рдЬрд╛рдиреЗ-рдорд╛рдиреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЧреЗрдо рдереНрдпреЛрд░реА рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреБрдЫ рдЬреНрдЮрд╛рди рдХрд╛ рдЖрдзрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢ рдореИрдВ рдЗрд╕рдХрд╛ рдШрдордВрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

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

рдЕрдВрдд рддрдХ рдкрдврд╝реЗ рддреЛ рдзрдиреНрдпрд╡рд╛рджред

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


All Articles