рдХреИрд╕реЗ рдореИрдВрдиреЗ рдПрдИ рдХреЛ рдПрдирдИрдПрд╕ рдХреЗ рд▓рд┐рдП рдЯреЗрдЯреНрд░рд┐рд╕ рдЦреЗрд▓рдирд╛ рд╕рд┐рдЦрд╛рдпрд╛ред рднрд╛рдЧ 2: рдР

рдЫрд╡рд┐

рдкрд╣рд▓рд╛ рднрд╛рдЧ (рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг) рдпрд╣рд╛рдБ рд╣реИ: https://habr.com/post/420725/ ред

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо


рд╡рд┐рд╡рд░рдг


рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд▓рдЧрд╛рддрд╛рд░ рдирд┐рдореНрди рдЪрд░рдг рдХрд░рддрд╛ рд╣реИ:

  1. рд╡рд╣ рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдПрдХ рдирдпрд╛ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдирд╣реАрдВ рдмрди рдЬрд╛рддрд╛ред
  2. рдирдП рдмрдирд╛рдП рдЧрдП tetrimino рдХреЗ рдкреНрд░рдХрд╛рд░, рдЕрдЧрд▓реЗ tetrimino рдХреЗ рдкреНрд░рдХрд╛рд░ (рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЖрдХреГрддрд┐) рдФрд░ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред
  3. рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдореЗрдВ рджреЛ рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛрдЬ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИред
  4. рдирд╡ рдирд┐рд░реНрдорд┐рдд рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреНрдЮрд╛рдд рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕реНрдерд╛рди рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛред

рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХрд╛ рд╡рд░реНрдгрди рдиреАрдЪреЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд▓реЙрдХ рдЦреЛрдЬ


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

  • рдПрдХ рдХрджрдо рдиреАрдЪреЗ
  • рдПрдХ рдХрджрдо рдмрд╛рдХреА рд╣реИ
  • рдПрдХ рдХрджрдо рджрд╛рдИрдВ рдУрд░ рд▓реЗ рдЬрд╛рдПрдВ
  • рдПрдХ рдХрджрдо рд╡рд╛рдорд╛рд╡рд░реНрдд рдШреБрдорд╛рдПрдВ
  • рджрдХреНрд╖рд┐рдгрд╛рд╡рд░реНрдд рдШреВрдордирд╛

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

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

  1. рд╣рдо рд░рд╛рдЬреНрдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред
  2. рд╣рдо рд░рд╛рдЬреНрдп рдХреЛ рдХрддрд╛рд░ рд╕реЗ рд╣рдЯрд╛рддреЗ рд╣реИрдВред
  3. рд░реВрдкрд╛рдВрддрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░рд╛рдЬреНрдп рдорд┐рд▓рддреЗ рд╣реИрдВред
  4. рдпрджрд┐ рдЙрдирдХреЗ рдмреАрдЪ рдХреЛрдИ рдиреАрдЪреЗ рдХреА рдУрд░ рдЧрддрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХрддрд╛рд░ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд░рд╛рдЬреНрдп рдЕрд╡рд░реБрджреНрдз рд╣реИред
  5. рд╣рдо рдмрд╛рдж рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рдЕрднреА рддрдХ рджреМрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
  6. рдпрджрд┐ рдХрддрд╛рд░ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЪрд░рдг 2 рд╕реЗ рджреЛрд╣рд░рд╛рдПрдВред

рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд░рд╛рдЬреНрдп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ:

{ x, y, rotation, visited, predecessor }

рддреИрдпрд╛рд░реА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдХрд╛рд░реНрдпрдХреНрд░рдо рд░рд╛рдЬреНрдп рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рддреНрд░рд┐-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдмрдирд╛рддрд╛ рд╣реИ (20 рдкрдВрдХреНрддрд┐рдпреЛрдВ ├Ч 10 рдХреЙрд▓рдо ├Ч 4 рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ), x , y рдФрд░ rotation рддрджрдиреБрд╕рд╛рд░ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ред

рдЬрдм рд░рд╛рдЬреНрдп рдкрдВрдХреНрддрд┐рдмрджреНрдз рд╣реЛрддрд╛ рд╣реИ, рддреЛ visited рдлрд╝реАрд▓реНрдб рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд visited рдЬрд╛рддрд╛ рд╣реИред рдмреАрдПрдлрдПрд╕ рдореЗрдВ, рдпрд╣ рдорд╛рдиреНрдп рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреБрд▓ рдкрде рд▓рдВрдмрд╛рдИ 1 рд╕реЗ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рдЕрд░реНрдерд╛рддреН, рдкрде рдХреА рд▓рдВрдмрд╛рдИ рдХреЛ рдмрдврд╝рд╛рдХрд░ рдПрдХ рдмрд╛рдж рдХреА рд╕реНрдерд┐рддрд┐ рдмрдирд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдЬрд┐рд╕реЗ рдЖрджреЗрд╢ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░ рдХреЗ рдЕрдВрдд рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд╣реАрдВ рдФрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

predecessor рдХреНрд╖реЗрддреНрд░ рдЙрд╕ рд░рд╛рдЬреНрдп рд╡рд╕реНрддреБ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рдпрд╣ рддрдм рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд░рд╛рдЬреНрдп рдкрдВрдХреНрддрд┐рдмрджреНрдз рд╣реЛрддрд╛ рд╣реИред рд╕реГрдЬрди рд░рд╛рдЬреНрдп рдХрд╛ рдХреЛрдИ рдкрд┐рдЫрд▓рд╛ рд░рд╛рдЬреНрдп рдирд╣реАрдВ рд╣реИред

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

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

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

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

рдореВрд▓реНрдпрд╛рдВрдХрди рд╕рдорд╛рд░реЛрд╣


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

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

El-Ashi рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдЙрдкрдпреЛрдЧреА рднрд╛рд░ рдХрдг swarm рдЕрдиреБрдХреВрд▓рди (PSO) рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рдХреГрддрд┐ рдореЗрдВ рджреЗрдЦреЗ рдЧрдП рдЭреБрдВрдб рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдирдХрд▓ рдХрд░рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕реЗрдЯ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╛рдзрд╛рди рдПрдХ рд╡реЗрдЯ рд╡реЗрдХреНрдЯрд░ рд╣реИ, рдФрд░ рд╡рд┐рдХрд▓реНрдк рдХреА рдлрд┐рдЯрдиреЗрд╕ рдЯреЗрдЯреНрд░рд┐рд╕ рдореЗрдВ рдЦреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ; рдпрд╣ рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛрд╕ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рд╡рд╣ рдЦреЗрд▓ рдХреЗ рдЕрдВрдд рддрдХ рдЬреАрд╡рд┐рдд рд░рд╣рд╛ред

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

рдкреИрд░рд╛рдореАрдЯрд░рднрд╛рд░
рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рд╕рд╛рдл рд╣реЛ рдЧрдИ1.000000000000000
рдХреБрд▓ рдЕрд╡рд░реБрджреНрдз рдКрдВрдЪрд╛рдИ12.885008263218383
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛15.842707182438396
рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рдЫреЗрджреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛26.894496507795950
рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛27.616914062397015
рдХреБрд▓ рд▓рд╛рдЗрди рдХреВрджрддрд╛ рд╣реИ30.185110719279040

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

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

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

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

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

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

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

рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк


рдпрд╣рд╛рдБ рдПрдЖрдИ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреБрдЫ рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ:

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

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

рдПрдХ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдХрд╛рд░рдХ рдСрдлрд╕реЗрдЯ рдореВрд▓реНрдп рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдвреЗрд░ рдХреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдкрд╛рдЯ рд╕рддрд╣ рдореЗрдВ 0. рдХреА рд╕реНрддрдВрдн рдКрдВрдЪрд╛рдЗрдпреЛрдВ рдХрд╛ рдлреИрд▓рд╛рд╡ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдкрд╛рдЯ рд╕рддрд╣ рдПрд╕ рдФрд░ рдЬреЗрдб рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреНрдп рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рдШрдЯрд╛рдХрд░, рд╡рд┐рдЪрд░рдг рдХреЛ рдЕрдзрд┐рдХрддрдо рдЦреБрд░рджрд░реЗрдкрди рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдорд╛рдпреЛрдЬрд┐рдд рдФрд░ рдкрдХреНрд╖рдкрд╛рддреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреБрдЫ рд╣рдж рддрдХ рдЙрдард╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рднрд╛рд░рд┐рдд рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡реЗ рд▓реЙрдЧрд░рд┐рджрдорд┐рдХ рдпрд╛ рдШрд╛рддреАрдп рд░реВрдк рд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░ рд╕рдХреЗрдВред рдЗрди рд╕рднреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рднрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕рдВрднрд╡рддрдГ PSO рдЬреИрд╕реА рд╡рд┐рдзрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

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

рдПрдЖрдИ рдкреНрд░рд╢рд┐рдХреНрд╖рдг


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


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

рдореИрдВрдиреЗ рдЗрд╕ рд╢рд┐рдХреНрд╖рдг рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдкрд╛рдпрд╛ рдХрд┐ рдПрд╕ рдФрд░ рдЬреЗрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдЖрдИ рдХреЛ рдкрдврд╝рд╛рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд░рддрд╛ рд╣реИред

рдмреА-рдЯрд╛рдЗрдк рдЧреЗрдо рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдзрд┐ рдореЗрдВ, рдкреАрдПрд╕рдУ рдореАрдЯреНрд░рд┐рдХ рдкрдВрдХреНрддрд┐ рд╕рдлрд╛рдИ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХрдЪрд░рд╛ рдмреНрд▓реЙрдХреЛрдВ рдХрд╛ 10-рд░реЗрдЦрд╛ рдЖрд░реЗрдЦ рд╣реИ, рдФрд░ рд╣рд░ рдмрд╛рд░ рд▓рд╛рдЗрди рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдвреЗрд░ рдХреА рдКрдВрдЪрд╛рдИ рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рддреЗ рд╣реБрдП, рдПрдХ рдирдИ рдХрдЪрд░рд╛ рд░реЗрдЦрд╛ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдЪреВрдВрдХрд┐ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдореЗрдВ 10 рд╕реНрддрдВрднреЛрдВ рдХреА рдЪреМрдбрд╝рд╛рдИ рд╣реЛрддреА рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдореЗрдВ 4 рд╡рд░реНрдЧ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд╕рддрди, рдПрдЖрдИ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ 2.5 рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рд╕рд╛рдл рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдХрдЪрд░реЗ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕реЗ рдЗрд╕реЗ рдФрд░ рднреА рддреЗрдЬреА рд╕реЗ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

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

рдиреАрдЪреЗ рдХреБрд▓ 2,039,900,000 рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдпреБрдХреНрдд рдкрд░реАрдХреНрд╖рдг рдмреИрдЪреЛрдВ рдХрд╛ рдПрдХ рд╣реАрдЯ рдореИрдк рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдХреЛрд╢рд┐рдХрд╛ рдЙрд╕ рдореЗрдВ рдмрдВрдж рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рддрд┐рд╢рдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рдВрдЧреАрди рд╣реЛрддреА рд╣реИред рджреГрд╢реНрдп рд╡рд┐рдкрд░реАрдд рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЧреИрд░-рд░реЗрдЦреАрдп рдкреИрд▓реЗрдЯ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдЕрдзрд┐рдХрддрдо рдкреНрд░рддрд┐рд╢рдд рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ рд╕реЗрд▓ рдорд╛рдиреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ 0.19 рдХреА рд╢рдХреНрддрд┐ рдХреА рдШреЛрд╖рдгрд╛ рдХреА (рджреЗрдЦреЗрдВ "рдЧрд╛рдорд╛ рд╕реБрдзрд╛рд░" )ред

рд░рдВрдЧрдХрд╛ рдкреНрд░рддрд┐рд╢рдд
тЦа0.00000000
тЦа0.00000315
тЦа0.00024227
тЦа0.00307038
тЦа0.01860818
тЦа0.07527774
тЦа0.23582574
тЦа0.61928352
тЦа1.42923040
тЦа2.98867416
тЦа5.78182519

17 рдФрд░ 18 рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЧрд╣рд░реЗ рдирд╛рд░рдВрдЧреА рдФрд░ рд▓рд╛рд▓ рдзрд╛рд░рд┐рдпреЛрдВ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд рдХреЗ рдЖрдВрдХрдбрд╝реЗ рд╡рд╣рд╛рдБ рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред рдиреАрдЪреЗ рд╕реЗ рд╣рд▓реНрдХрд╛ рд╣рд░рд╛ рд░рдВрдЧ рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдХрд╛ рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╣реИ: рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЗ 7 рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ 4 рдиреАрдЪреЗ рдХреА рд░реЗрдЦрд╛ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдЪрд▓реЗ рдХреЛрдиреЗ рдХрд╛рд▓реЗ рд╣реЛрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдВ рдЬрд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рд░рдВрдЧ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИ, рдФрд░ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдХреЛ рджреЗрдЦрдХрд░ рдереЛрдбрд╝рд╛ рдЕрдВрддрд░рд╛рд▓ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдЯреА
рдЬрдореНрдореВ
рдЬреЗрдб
рд╣реЗ
рдПрд╕
рдПрд▓
рдореИрдВ

рдЯреА рд╕рдмрд╕реЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреНрд░рдХрд╛рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ: рдЗрд╕рдХрд╛ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдЕрдиреНрдп рд╕рднреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдорд╛рди рд╣реИред рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдЬреЗ рдореЗрдВ рд╡рд┐рд╕рдВрдЧрддрд┐рдпрд╛рдБ - рджреАрд╡рд╛рд░реЛрдВ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХрд╛ рдкрд░рд┐рдгрд╛рдо; рдХреЗрд╡рд▓ Jr рдФрд░ Jl рд╕рд╛рдЗрдб рдХреЙрд▓рдо рдореЗрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП AI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЙрд▓рдо 1 рдФрд░ 9 рдХреЛ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рдмрд╛рдд L рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред Histograms Z рдФрд░ S рд▓рдЧрднрдЧ рд╕рдорд╛рди рджрд┐рдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдЕрд╕рдВрддреБрд▓рди рдкрд░ рдЬреЛрд░ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ Zv рдФрд░ Sv рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдЖрджрд░реНрд╢ рджрд░реНрдкрдг рдЪрд┐рддреНрд░ рдирд╣реАрдВ рд╣реИрдВред рдЯрд╛рдЗрдк рдУ 19 ├Ч 9 рдХреЗ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рддрдХ рд╕реАрдорд┐рдд рд╣реИ, рдФрд░ рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдПрдЖрдИ рдХреЗрдВрджреНрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрдХреНрд╖реЛрдВ рдкрд░ рдУ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред Tetrimino I рдХреЛ рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рд╡рд╣рд╛рдВ рд╕реНрдерд┐рдд рд╣реИ; рдЗрд╕рд▓рд┐рдП, рд╕реНрддрдВрдн 1 рдореЗрдВ рддрд╛рд▓рд╛ рд▓рдЧрд╛рдирд╛ рджреБрд░реНрд▓рдн рд╣реИред

рддрд╛рд▓рд┐рдХрд╛ рдЙрди рдЖрдВрдХрдбрд╝реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рджрд┐рдЦрд╛рддреА рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЕрд╡рд░реБрджреНрдз рд╣реИрдВред

рдкрдВрдХреНрддрд┐рдХрд╛ рдкреНрд░рддрд┐рд╢рдд
0.режрежрежрежрежрежрежрежрежреж
1.режрежрежрежрежрежрежрежрежреж
2.режрежрежрежрежрежрекрепрежреи
3.режрежрежрежрежреиремрекренреи
4.режрежрежрежрежремремрезреореж
5.режрежрежрежрезренреирелрелрен
60.режрежрежрежрелрезреиреиреореж
7.режрежрежрезренрелрепрекрежреж
8.режрежрежремремреорезреирезреж
9.режрежреирейрезреоренрепрежрез
10.режрежренренрепреиреореореиреж
11.режреирелрепремренреирежрекрей
12.режреоремремрезреоренрежремрео
13.реирепрежрезрейрезрелренрелрез
14.репренренрезремремрейреорежрен
15рей.рейрежрежрежрекрежреорейрелрей
16резреж.ремрепреорепрежрелрепреиремрео
17реирео.релремреоренрепренремрейренрез
18релреж.режрейрейрелренрежремрезремреи
19рем.режрежренренремренрезрекрелрек

рдпрд╣рд╛рдБ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдл рд╣реИ:


рдпрджрд┐ рд▓рд╛рдЗрди 19 рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЧреНрд░рд╛рдл рдШрд╛рддреАрдп рд╡реГрджреНрдзрд┐ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╕рдиреНрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдмрдВрдж рдЖрдХреГрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред

рд╕реНрдЯреНрд░рд┐рдВрдЧ рдП / рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмреАрдЕрдиреБрдкрд╛рдд (%)
1/20.00
2/318.52
3/440.00
4/538.35
5/633.68
6/729.12
7/826.33
8/928.81
9/1029.76
10/1130.01
11/1229.98
12/1329.85
13/1429.69
14/1529.61
15/1630.84
16/1737.45
17/1857.10
18/19832.81

рд▓рд╛рдЗрдиреЗрдВ 16тАУ19рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рдлрд░реНрд╢ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рддреНрдпрд╛рдЧ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ, 0тАУ5рдЪрдпрди рд╕рд╛рд░реНрдердХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИред рд╢реЗрд╖ рдЕрдиреБрдкрд╛рдд, рдЬреЛрдбрд╝реЗ рем / r-резрек / резрел, рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИрдВ; рдЙрдирдХрд╛ рдФрд╕рдд рдореВрд▓реНрдп 29.24% рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдвреЗрд░ рдХреЗ рдмрдврд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд▓рдЧрднрдЧ рдПрдХ рд╣реА рд╣реИред рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯреЗрдЯреНрд░рд┐рд╕ рдирд┐рдпрдо рдвреЗрд░ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмрд╛рддрдЪреАрдд рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЗрд╕реЗ рдХрд╕рдХрд░ рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреНрд░рд╛рдл 6тАУ15 рдХреА рд░реЗрдЦрд╛рдУрдВ рдореЗрдВ 10 рдкреНрд░рддрд┐рд╢рдд рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХрд╛ рд▓реЙрдЧ рджрд┐рдЦрд╛рддрд╛ рд╣реИ ред


рдпрд╣ 1 рдХреЗ рдХрд░реАрдм рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рдЧреБрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реАрдзреА рд░реЗрдЦрд╛ рдХреЗ рдХрд░реАрдм рд╣реИ ред рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рд░реЗрдЦреАрдп рдкреНрд░рддрд┐рдЧрдорди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╕реВрддреНрд░ рд╣рдореЗрдВ Y рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рджреЗрддрд╛ рд╣реИ, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдкрдВрдХреНрддрд┐ 0 рдореЗрдВ рдЖрдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рд▓рдЧрднрдЧ 10 .7.459 % рд╣реИред рдЗрд╕ рдореВрд▓реНрдп рдХрд╛ рд╡рд┐рд▓реЛрдо рд╣рдореЗрдВ рдЦреЗрд▓ рдХреЗ рдЕрдВрдд рддрдХ 2,877,688,349 рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдпрд╛ 1,151,175,340 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдЙрдореНрдореАрдж рджреЗрддрд╛ рд╣реИред

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

рдПрдЖрдИ рдХреА рддрд╛рдХрдд рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдЦреЗрд▓ рдореИрджрд╛рди рдХреА рдкреВрд░реА рд╕рдлрд╛рдИ рдХреЗ рдмреАрдЪ рдмрдирд╛рдИ рдЧрдИ рдЖрдХреГрддрд┐рдпреЛрдВ рдХреА рдФрд╕рдд рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдорд╛рдкрдирд╛ рд╣реИред рдкреВрд░реА рд╕рдлрд╛рдИ рд╕рд┐рд░реНрдл 5 рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЗ рдмреАрдЪ, рдпрд╣ рдЦреЗрд▓ рдореИрджрд╛рди рдХреЗ рдлрд░реНрд╢ рдкрд░ рдмрд┐рдЫрд╛рдИ рдЧрдИ рдкрд╛рдВрдЪ рд╣реЗ рдЖрдХреГрддрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЪреВрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдореЗрдВ 4 рд╡рд░реНрдЧ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЦреЗрд▓ рдореИрджрд╛рди рдХреА рдЪреМрдбрд╝рд╛рдИ 10 рд╡рд░реНрдЧ рд╣реЛрддреА рд╣реИ, рдкреВрд░реНрдг рд╕рдлрд╛рдИ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 5 рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдХреНрдпреЛрдВрдХрд┐4 ├Ч 5 рдПрди = 2 ├Ч 10 рдПрди )ред

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

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рд╕рдВрднрд╛рд╡рдирд╛ (рдкреНрд░рддрд┐рд╢рдд рдореЗрдВ) рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдЖрдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рдж рдХреНрд╖реЗрддреНрд░ рдХреА рдкреВрд░реА рд╕рдорд╛рд╢реЛрдзрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред


рдЙрдкрд░реЛрдХреНрдд рд╕реВрддреНрд░ рдореЗрдВ рдбрд┐рдЧреНрд░реА рдХреНрд░рдо рдореЗрдВ рдХрдореА рдХреА рджрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░, рд╕рдВрднрд╡рддрдГ, рдПрдЖрдИ рдХреА рддрд╛рдХрддред рдЗрд╕ рд╕реВрддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЦрд╛рд▓реА рдЦреЗрд▓ рдореИрджрд╛рди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ 253 рдЦреЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ рд▓рдЧрднрдЧ 0.4% рдпрд╛ рдХреЗрд╡рд▓ 1 рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛрд╕ рдХреЗ рдмрд╛рдж рдПрдХ рдкреВрд░реНрдг рд╕рдлрд╛рдИ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

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

рдЬрд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг


рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


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

рд╕рдВрдХреБрд▓


рдХреЛрдб рджреЛ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ:

  • tetris.ai рдПрдЖрдИ рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
  • tetris.gui рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХ рдореЙрдбрд▓ рдмрдирд╛рддрд╛ рд╣реИред

рдПрдЖрдИ рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕


рдЙрдкрдпреБрдХреНрдд рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ TetriminosрдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ enumрдФрд░ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣реЛрддрд╛ рд╣реИ:

 public static final int NONE = -1; public static final int T = 0; public static final int J = 1; public static final int Z = 2; public static final int O = 3; public static final int S = 4; public static final int L = 5; public static final int I = 6; 

NONEрдорддрд▓рдм рдмрд┐рдирд╛ рдореВрд▓реНрдп рд╡рд╛рд▓рд╛ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдЯреЗрдмрд▓ рдХреЗ рджреЛ рдореЙрдбрд▓

рднреА Tetriminosрд╢рд╛рдорд┐рд▓ рд╣реИрдВред PATTERNS- рдпрд╣ рдПрдХ 4-рдЖрдпрд╛рдореА рдкреВрд░реНрдгрд╛рдВрдХ рд╕рд░рдгреА рд╣реИ (рдкреНрд░рдХрд╛рд░ ├Ч рд░реЛрдЯреЗрд╢рди ├Ч рд╡рд░реНрдЧ ├Ч рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ) рдЬрд┐рд╕рдореЗрдВ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реИрдВ; рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдЖрдХрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдкрд╣рд▓реЗ рд╣реЛред ORIENTATIONSрдПрдХ рдФрд░ рдореЙрдбрд▓, рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ 2-рдЖрдпрд╛рдореА рд╕рд░рдгреА (рдЯрд╛рдЗрдк ├Ч рд░реЛрдЯреЗрд╢рди) рд╣реИ Orientationред рдкреНрд░рддреНрдпреЗрдХ OrientationрдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реЛрддреЗ рд╣реИрдВ Pointред рдЗрд╕рдореЗрдВ рдРрд╕реЗ рдлрд╝реАрд▓реНрдб рднреА рд╣реИрдВ рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдордд рдкрджреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред

 public class Orientation { public Point[] squares = new Point[4]; public int minX; public int maxX; public int maxY; ... } 

 public class Point { public int x; public int y; ... } 

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

 public class State { public int x; public int y; public int rotation; public int visited; public State predecessor; public State next; ... } 

x, yрдФрд░ rotationрдПрдХ рд╕рд╛рде рдЖрдВрдХрдбрд╝реЗ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ Tetrimino рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдХреНрд╖рдг рд╕реЗ рд▓реЗрдХрд░ рдЕрд╡рд░реБрджреНрдз рд╣реЛрдиреЗ рддрдХ рд╕реНрдерд┐рд░ рд░рд╣рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд╖реЗрддреНрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред

рдЬрд┐рд╕ рд╡рд░реНрдЧ SearcherрдореЗрдВ BFS рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реЛрддрд╛ рд╣реИ рд╡рд╣ Stateрдирд┐рд░реНрдорд┐рдд рд╣реЛрдиреЗ рдкрд░ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реЗрдЯ рдмрдирд╛рддрд╛ рд╣реИ :

 private void createStates() { states = new State[AI.PLAYFIELD_HEIGHT][AI.PLAYFIELD_WIDTH][4]; for(int y = 0; y < AI.PLAYFIELD_HEIGHT; y++) { for(int x = 0; x < AI.PLAYFIELD_WIDTH; x++) { for(int rotation = 0; rotation < 4; rotation++) { states[y][x][rotation] = new State(x, y, rotation); } } } } 

рдпрджреНрдпрдкрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ рдПрдХ рд╕рдореГрджреНрдз рд╕рдВрдЧреНрд░рд╣ рдПрдкреАрдЖрдИ рд╣реИ, рд▓реЗрдХрд┐рди SearcherрдЗрд╕рдореЗрдВ рдХрддрд╛рд░ рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢рд╛рдорд┐рд▓ рд╣реИред рд╡рд░реНрдЧ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рд▓рд┐рдВрдХреНрдб рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП QueueрдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ State.nextрд╣реИ Stateред рдЪреВрдВрдХрд┐ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ StateрдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ StateрдХреЛ рдХрддрд╛рд░ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрддрд╛рд░ рдЬрдЧрд╣ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрддрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрд╕реНрдерд╛рдпреА рдХрдВрдЯреЗрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреА рд╣реИред

рдмреАрдПрдлрдПрд╕ рдХрд╛ "рджрд┐рд▓" рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рддрд░реАрдХрд╛ рд╣реИ searchред

 public boolean search(int[][] playfield, int tetriminoType, int id) { int maxRotation = Tetriminos.ORIENTATIONS[tetriminoType].length - 1; int mark = globalMark++; if (!addChild(playfield, tetriminoType, mark, null, 5, 0, 0)) { return false; } while(queue.isNotEmpty()) { State state = queue.dequeue(); if (maxRotation != 0) { addChild(playfield, tetriminoType, mark, state, state.x, state.y, state.rotation == 0 ? maxRotation : state.rotation - 1); if (maxRotation != 1) { addChild(playfield, tetriminoType, mark, state, state.x, state.y, state.rotation == maxRotation ? 0 : state.rotation + 1); } } addChild(playfield, tetriminoType, mark, state, state.x - 1, state.y, state.rotation); addChild(playfield, tetriminoType, mark, state, state.x + 1, state.y, state.rotation); if (!addChild(playfield, tetriminoType, mark, state, state.x, state.y + 1, state.rotation)) { lockTetrimino(playfield, tetriminoType, id, state); } } return true; } 

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

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

 public interface ISearchListener { public void handleResult(int[][] playfield, int tetriminoType, int id, State state); } 

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

State.visitedрдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ boolean; рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЦреЛрдЬ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, Stateрд░реАрд╕реЗрдЯ visitedрдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЙрд░реНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ falseред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВрдиреЗ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ visitedрдореВрд▓реНрдп рдмрдирд╛рдпрд╛ int, рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рд╡реЗрддрди рд╡реГрджреНрдзрд┐ред

рд╡рд┐рдзрд┐addChildрдкреВрд░реНрд╡рд╡рд░реНрддреА рдЕрд╡рд╕реНрдерд╛рдПрдБред рдмрд╛рдж рдХреА рд╕реНрдерд┐рддрд┐ рдореИрджрд╛рди рдХреЗ рднреАрддрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдЦреЗрд▓ рдореИрджрд╛рди рдХреЗ 4 рдЦрд╛рд▓реА рдХрдХреНрд╖реЛрдВ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмрд╛рдж рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП Stateред рд╕реНрдерд┐рддрд┐ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ, рддреЛ addChildрд░рд┐рдЯрд░реНрди true, рдмрд╛рдж рдореЗрдВ рд░рд╛рдЬреНрдп рдЬрдЧрд╣ рдореЗрдВ рдбрд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреМрд░рд╛ рдХрд┐рдпрд╛ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рд╣реИ, рднрд▓реЗ рд╣реАред рдпрджрд┐ рдХреЛрдИ рдЖрдХреГрддрд┐ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

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

рд╡рд╛рдкрд╕реАaddChildрдПрдХ рдФрд░ рдХрджрдо рдиреАрдЪреЗ рдЬрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡ рдХрд╛ рднреА рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд▓реЙрдХ рд╕реНрдерд┐рддрд┐ рд╣реИ рдФрд░ рдХреЙрд▓ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ lockTetriminoред рд╡рд┐рдзрд┐ lockTetriminoрдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЛ рдмрджрд▓ рджреЗрддреА рд╣реИ, рд╢реНрд░реЛрддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдЦреЗрд▓ рдореИрджрд╛рди рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╕рд░рдгреА рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ playfieldрдореЗрдВ 1 рдЕрддрд┐рд░рд┐рдХреНрдд рддрддреНрд╡ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╡реНрдпрд╛рдкреНрдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рддрддреНрд╡ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ lockTetriminoрдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╡реНрдпрд╕реНрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИред

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

рддрдм рд╢реНрд░реЛрддрд╛ рдкреБрдХрд╛рд░рддрд╛ рд╣реИPlayfieldUtil.restoreRowsрдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдореЗрдВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рддреНрдпрд╛рдЧрдирд╛ред рдХрджрдо рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рд░рджреНрдж рдХрд░ рджрд┐рдП рдЧрдП рд╣реИрдВред рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдКрдкрд░ рд╕реЗ рдПрдХ рдореБрдлреНрдд рдкрдВрдХреНрддрд┐ рдорд┐рд▓рддреА рд╣реИред рдлрд┐рд░, рднрд░реА рд╣реБрдИ рдкрдВрдХреНрддрд┐ рдХреЛ рд╕реНрдЯреИрдХ рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рддрддреНрд╡ рд╕реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдмрд╣рд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рд╛рдЗрди рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╣рдЯрд╛рдП рдЧрдП рд░реЗрдЦрд╛ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрддреНрд╡ рдХреЛ рдмрд╣рд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдЦреЗрд▓ рдореИрджрд╛рди рдХреА рдЪреМрдбрд╝рд╛рдИ рдХрд╛ рдорд╛рди рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИ - рднрд░реА рд╣реБрдИ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред

рдХреЗ рд░реВрдк рдореЗрдВ PlayfieldUtilрдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд╣рд╛рдБ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ evaluatePlayfieldрдХрд┐ рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд░рд╛рдИрдЯ 4 рдореВрд▓реНрдпрд╛рдВрдХрди рдкреИрд░рд╛рдореАрдЯрд░ рдХрдВрдЯреЗрдирд░ рд╡рд░реНрдЧ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

 public class PlayfieldEvaluation { public int holes; public int columnTransitions; public int rowTransitions; public int wells; } 

рд╡рд░реНрдЧ рдпрд╣ рд╕рдм рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ AIред рдЗрд╕рдореЗрдВ SearcherрдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рд╢реНрд░реЛрддрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рд╛рде рджреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред

 public void handleResult( int[][] playfield, int tetriminoType, int id, State state) { if (id == 0) { result0 = state; } Orientation orientation = Tetriminos.ORIENTATIONS[tetriminoType][state.rotation]; int rows = playfieldUtil.clearRows(playfield, state.y); int originalTotalRows = totalRows; int originalTotalDropHeight = totalDropHeight; totalRows += rows; totalDropHeight += orientation.maxY - state.y; int nextID = id + 1; if (nextID == tetriminoIndices.length) { playfieldUtil.evaluatePlayfield(playfield, e); double fitness = computeFitness(); if (fitness < bestFitness) { bestFitness = fitness; bestResult = result0; } } else { searchers[nextID].search(playfield, tetriminoIndices[nextID], nextID); } totalDropHeight = originalTotalDropHeight; totalRows = originalTotalRows; playfieldUtil.restoreRows(playfield, rows); } 

рдПрдХ рд╡рд░реНрдЧ AIрдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ Searcher, рд▓реЗрдХрд┐рди рдирд┐рдВрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдХреЗрд╡рд▓ рдПрдХ рдЖрдХрд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рд╡рд╕реНрддреБрдУрдВ SearcherрдХреЛ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдЙрдирдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╢реНрд░реЛрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рдХреЛ рдкрд╛рд░рд┐рдд рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ Searcher.searchрд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рдгреА рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ, рдЬреЛ рдЦреЛрдЬ рдХреА рдЧрд╣рд░рд╛рдИ рднреА рд╣реИред рдЬрдм рд╢реНрд░реЛрддрд╛ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЙрд▓ рдХреЛ рдЕрдЧрд▓реЗ Searcherрд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╡рд╣ рд╕рд░рдгреА рдХреЗ рдЕрдВрдд рддрдХ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИ, рддреЛ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЬрдм рд╡рд╣ рдПрдХ рдЙрдЪреНрдЪ рдлрд┐рдЯрдиреЗрд╕ рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рдкрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ Stateрдкрд╣рд▓реЗ рд╕реЗ рдЕрд╡рд░реБрджреНрдз рдПрдХ рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИ Searcherред

AIрдПрдХ рд╡рд┐рдзрд┐ searchрд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдФрд░ рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдкреНрд░рдХрд╛рд░ рдФрд░ рдЕрдЧрд▓реЗ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рд╣реЛрддреЗ рд╣реИрдВред рд╡рд╣ рд▓реМрдЯрддрд╛ рд╣реИStateрд╕реНрдерд┐рддрд┐ рдФрд░ рд░реЛрдЯреЗрд╢рди рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╣ рджреВрд╕рд░реЗ рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ; рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдЗрд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрдХреЛрд░ рдХреА рдлрд┐рд░ рд╕реЗ рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдвреЗрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ рдФрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ SearcherрджреЛрдиреЛрдВ рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛрд╕ рдХреЛ рд░рдЦрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддреА рд╣реИ, рддреЛ рдпрд╣ AI.searchрд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреА nullред

 public State search(int[][] playfield, int[] tetriminoIndices) { this.tetriminoIndices = tetriminoIndices; bestResult = null; bestFitness = Double.MAX_VALUE; searchers[0].search(playfield, tetriminoIndices[0], 0); return bestResult; } 

рдР рдЪреБрдиреМрддреА


рдЪреВрдВрдХрд┐ рдЬрд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг FCEUX рд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕рдВрднрд╡рддрдГ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреЛ рд▓реЛрдЧ рдПрдЖрдИ рдХреЛ рдХрд╣реАрдВ рдФрд░ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдпрд╣ рдЦрдВрдб рдЖрдкрдХреА рдЬрд░реВрд░рдд рдХреА рд╕рднреА рдЪреАрдЬреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг AI, рдЙрджрд╛рд╣рд░рдг PlayfieldUtilрдФрд░ рд╕рд░рдгреА рдмрдирд╛рдПрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЙрд▓ PlayfieldUtil.createPlayfieldрдХрд░рдХреЗ рдЦреЗрд▓ рдореИрджрд╛рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВ ; рдпрд╣ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде рджреЛ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд╣рдордиреЗ рдКрдкрд░ рдЬрд╛рдВрдЪ рдХреА рдереАред рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

 AI ai = new AI(); PlayfieldUtil playfieldUtil = new PlayfieldUtil(); int[] tetriminos = new int[AI.TETRIMINOS_SEARCHED]; int[][] playfield = playfieldUtil.createPlayfield(); Random random = new Random(); 

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рдЦрд╛рд▓реА рд╣реИ, рдФрд░ рд╕рднреА рд╕реЗрд▓ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВ Tetriminos.NONEред рдпрджрд┐ рдЖрдк рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рднрд░рддреЗ рд╣реИрдВ, рддреЛ playfield[rowIndex][AI.PLAYFIELD_WIDTH]рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╡реНрдпрд╛рдкреНрдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓рд┐рдЦрдирд╛ рди рднреВрд▓реЗрдВ ред

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

 tetriminos[0] = random.nextInt(7); tetriminos[1] = random.nextInt(7); 

рдлрд┐рд░ рд╣рдо рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдФрд░ рд╡рд┐рдзрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд░рдгреА рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ AI.searchред рд╡рд╣ рд╡рд╛рдкрд╕ рдЖрдПрдЧрд╛ StateрдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдЧрд░ рд╡рд╣ рд▓реМрдЯрддрд╛ рд╣реИ null, рддреЛ рдЦреЗрд▓ рдЦрддреНрдо рд╣реЛрдирд╛ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИред

 State state = ai.search(playfield, tetriminos); 

рдпрджрд┐ рдЖрдкрдХреЛ рд▓реЙрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдВрдХрдбрд╝рд╛ рдмрдирд╛рдиреЗ рд╕реЗ рдПрдХ рд░рд╛рд╕реНрддрд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЗрд╕реЗ Stateрд╡рд┐рдзрд┐ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВ AI.buildStateListред

 State[] states = ai.buildStatesList(state); 

рдЦреЗрд▓ рдореИрджрд╛рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕реЗ PlayfieldUtil.lockTetriminoрдЗрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗ Stateред рдпрд╣ рд╡рд┐рдзрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рднрд░реА рд╣реБрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░рддреА рд╣реИред

 playfieldUtil.lockTetrimino(playfield, tetriminos[0], state); 

рджреЛрдмрд╛рд░рд╛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, AI.searchрдЖрдкрдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЕрдЧрд▓реЗ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

 tetriminos[0] = tetriminos[1]; tetriminos[1] = random.nextInt(7); 

рдПрдХ рд╕рд╛рде, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 AI ai = new AI(); PlayfieldUtil playfieldUtil = new PlayfieldUtil(); int[] tetriminos = new int[AI.TETRIMINOS_SEARCHED]; int[][] playfield = playfieldUtil.createPlayfield(); Random random = new Random(); tetriminos[0] = random.nextInt(7); tetriminos[1] = random.nextInt(7); while(true) { // ... print playfield ... State state = ai.search(playfield, tetriminos); if (state == null) { break; // game over } playfieldUtil.lockTetrimino(playfield, tetriminos[0], state); tetriminos[0] = tetriminos[1]; tetriminos[1] = random.nextInt(7); } 

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

рдЦреЗрд▓ рдореИрджрд╛рди рдкреНрд░рджрд░реНрд╢рди


рдХрдХреНрд╖рд╛ TetrisFrameрдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреА рдирдХрд▓ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд▓реЗрдЦ рдХреЗ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░рд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред


рдЗрд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВ tetris.gui.Mainред Lua рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд┐рд░рдВрддрд░ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдХрд░ рдЦреЗрд▓ рдХреА рдЧрддрд┐ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 public static final boolean PLAY_FAST = true; 

TetrisFrameрд╕реНрдХреНрд░реАрди рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 4 рддрд░реАрдХреЗ рд╣реИрдВред рд╡рд┐рдзрд┐ displayTetriminoрдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдпрд╣ рдПрдХ рд╡рд┐рд▓рдВрдм рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдПрдиреАрдореЗрд╢рди рдлрд╝реНрд░реЗрдо рдХреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред

 public void displayTetrimino(int type, int rotation, int x, int y, int delay) 

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

 public void lockTetrimino(int type, int rotation, int x, int y, boolean animate) 

updateStatisticsAndNext рдирдП рдмрдирд╛рдП рдЧрдП tetrimino рдХреЗ рд▓рд┐рдП рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдХрд╛рдЙрдВрдЯрд░ рдХреА рд╡реГрджреНрдзрд┐ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдЧрд▓реЗ рдЖрдВрдХрдбрд╝реЗ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред

 public void updateStatisticsAndNext(int activeTetrimino, int nextTetrimino) 

рд╡рд┐рдзрд┐ dropTetriminoрдПрдХ рдЖрдХреГрддрд┐ рдмрдирд╛рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ "рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг" рдХреЗ рдкреНрд░рднрд╛рд╡ рдореЗрдВ рдЙрддрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдмрд┐рдирд╛ рдЗрд╕реЗ рдШреБрдорд╛рдиреЗ рдпрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдмрд┐рдирд╛ред MainрдЬрдм рдпрд╣ AI.searchрд╡рд╛рдкрд╕ рд▓реМрдЯрддрд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рдЕрдВрддрд┐рдо рджреЛ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ nullред рдпрджрд┐ рдкреИрд░рд╛рдореАрдЯрд░ animateрдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ true, рддреЛ рдЕрдЧрд░ рдПрдХ рдЖрдВрдХрдбрд╝рд╛ рдмрдирд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рддреЛ рдЦреЗрд▓ рдХреЗ рдЕрдВрдд рдХрд╛ рдкрд░реНрджрд╛ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛ред рдЕрдиреНрдп рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рддрд░рд╣, рдпрд╣ рд╡рд┐рдзрд┐ рддрдм рддрдХ рдЕрд╡рд░реБрджреНрдз рд╣реЛрддреА рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдПрдиреАрдореЗрд╢рди рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред рдпрд╣ trueрддрднреА рд▓реМрдЯрддрд╛ рд╣реИ рдЬрдм рдпрд╣ рд╡реНрдпрд╕реНрдд рдЦреЗрд▓ рдореИрджрд╛рди рдкрд░ рдПрдХ рдЖрдВрдХрдбрд╝рд╛ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред

 public boolean dropTetrimino(int type, boolean animate) 

рдЗрди 4 рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди TetrisFrameрдЗрд╡реЗрдВрдЯ рдбрд┐рд╕реНрдкреИрдЪ рдереНрд░реЗрдб рдореЗрдВ рд╣реА рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрдХреНрд╖рд╛ рджреЗрдЦреЗрдВ Mainред

рд░реБрдЪрд┐ рдХреЗ рд▓рд┐рдП, рд╡рд╣ MainрдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ RandomizerрдЬреЛ рдирд┐рдВрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рд╕реЗ рдПрдХ рдкрдХреНрд╖рдкрд╛рддреА рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИ ред

рдкреИрдХреЗрдЬ tetris.gui.imagesрдореЗрдВ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред tiles.png- рдпрд╣ рдПрдХ рдкреИрдЯрд░реНрди рдЯреЗрдмрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдЯрд╛рдЗрд▓ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╣реИрдВред background.datрдЯрд╛рдЗрд▓ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдмрдирд╛рддреЗ рд╣реИрдВ; рд╕реЗ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ $BF3Fред рдФрд░ colors.datрдЗрд╕рдореЗрдВ рдмрд╛рдЗрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ 138 рдХреЗ рд╕реНрддрд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдЧ рд░рдВрдЧ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ

ImageLoaderрдПрдирдИрдПрд╕ рдкреИрд▓реЗрдЯреНрд╕ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ ImagePaneрдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрддрд░ рдорд╛рдиреЛрдВ рдХрд╛ рдкреВрд░рд╛ рд╕реЗрдЯ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИред

рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ


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

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

 public interface IChildFilter { public boolean validate(int[][] playfield, int tetriminoType, int x, int y, int rotation); } 

AIрдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдорд┐рд▓рддрд╛ рд╣реИ IChildFilterред рдпрджрд┐ рдЙрдкрд▓рдмреНрдз рд╣реИ, рддреЛ IChildFilter.validateрдпрд╣ рдмрд╛рд▓ рд░рд╛рдЬреНрдп рдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪреЗрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ; рдпрджрд┐ рдпрд╣ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ false, рддреЛ рдмрд╛рд▓ рд░рд╛рдЬреНрдп рдХреА рдХрддрд╛рд░ рдирд╣реАрдВ рд╣реИред

WellFilterрдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИIChildFilterрдЪрд╛рд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ (рдЯреЗрдЯреНрд░рд┐рд╕) рдХреЛ рдЙрдард╛рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗред рдЬреАрд╡рд┐рдд рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА рддрд░рд╣, рд╡рд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рд╕рдмрд╕реЗ рджрд╛рд╣рд┐рдиреЗ рдХреЙрд▓рдо рдореЗрдВ рдПрдХ рдХреБрдЖрдВ рдмрдирд╛рддреА рд╣реИ, рдЬреЛ рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░ рддрдХ рд▓рд╛рдЗрди рд╕реЗ рдмрдврд╝рддреА рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЗрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдмрдЪреНрдЪреЗ рдХреЗ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡рд░реНрдЧ рдХреЛ рд╕рдмрд╕реЗ рд╕рд╣реА рдХреЙрд▓рдо рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЬрдм рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХреЙрд▓рдо рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдкреВрд░реА рдкрдВрдХреНрддрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднрд░реА рд╣реБрдИ рд╣реИ, рддреЛ AI рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИред рдЬрдм рдЗрдирдореЗрдВ рд╕реЗ 4 рдпрд╛ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдиреЗрдВ рддреИрдпрд╛рд░ рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдпрд╣ "рдЫрдбрд╝реА" рдХреЛ рдХреБрдПрдВ рдореЗрдВ рдЧрд┐рд░рдиреЗ рдФрд░ рдЯреЗрдЯреНрд░рд┐рд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдвреЗрд░ рдХреА рдКрдВрдЪрд╛рдИ рдХреЛ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рдпрджрд┐ рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ WellFilterAI рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред


рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Mainрдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ:

 AI ai = new AI(new WellFilter()); 

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдкреИрдЯрд░реНрди рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд▓ рдЕрд╡рд╕реНрдерд╛ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ PatternFilterред


PatternFilterрдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреЗ рд╕рдорд╛рди рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░ рддрдХ рд░реЗрдЦрд╛ рджреНрд╡рд╛рд░рд╛ рдЫрд╡рд┐рдпрд╛рдВ рдмрдирд╛рддрд╛ рд╣реИ WellFilter; рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд╣реА рдХреЙрд▓рдо рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ PatternFilterрдХреЗрд╡рд▓ рдЙрди рдмрдЪреНрдЪреЛрдВ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреИрдЯрд░реНрди рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред

рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ PatternFilterрдХреЛ рдкреИрдХреЗрдЬ рдореЗрдВ рдПрдХ рдЪрд┐рддреНрд░ рдХрд╛ рдирд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ tetris.gui.patterns, рдЬрд┐рд╕реЗ рд╡рд╣ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ 20 ├Ч 10 рдЫрд╡рд┐ рдореЗрдВ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж рдкрд┐рдХреНрд╕реЗрд▓ рд╣реЛрддреЗ рд╣реИрдВред

 AI ai = new AI(new PatternFilter("tetriminos")); 

рдКрдкрд░ рджрд┐рдЦрд╛рдИ рдЧрдИ рдХреЛрдб рдХреА рд▓рд╛рдЗрди рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЗ рд╕рд╛рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рд▓реНрд╣реВрдЯ рдмрдирд╛рддреА рд╣реИред


рдПрдХ рдмрдбрд╝реЗ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдЯреА рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдХреЛрдг рдкрд░ рдШреБрдорд╛рдпрд╛ рдЧрдпрд╛ред


рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдгред рдпрджрд┐ рдЖрдк рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЦреЗрд▓ рдХрд╛ рдирд╛рдо рджреЗрдЦреЗрдВрдЧреЗред


рдЬреИрд╕реЗ WellFilter, рдпрд╣ PatternFilterрдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдкреНрд░рдорд╛рдг рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рд╡рд╣ рдЬрд┐рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╡реЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рдиреАрдЪреЗ рддрдХ рд╕реАрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдЖрдорддреМрд░ рдкрд░ рдЦреЗрд▓ рдЦрддреНрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЖрдЧреЗ рдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд╛рдпрдХ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдЧреЗрдордкреИрдб рд╕рдВрд╕реНрдХрд░рдг


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

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

  • : , .
  • ┬л┬╗ .
  • ┬л┬╗ ┬л┬╗ .
  • .
  • .
  • .
  • .
  • , .
  • A B .
  • ┬л┬╗ ┬л┬╗ 6 16 . ┬л┬╗ ┬л┬╗ , .
  • ┬л┬╗ 3 .
  • 96 . , тАФ .

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

рдПрдЖрдИ Stateрдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ :

 { x, y, rotation, Left, Right, Down, A, B, fallTimer, visited, predecessor } 

рд╡реИрдХрд▓реНрдкрд┐рдХ рдлрд╝реНрд░реЗрдо рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд AI рд╢рд┐рдлреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╢рд┐рдлреНрдЯ рдмрдЯрди рдХреЛ рджрдмрд╛рдПрдВ рдФрд░ рдЫреЛрдбрд╝реЗрдВред рдЗрд╕рд▓рд┐рдП, рдЙрд╕реЗ рдХреЗрд╡рд▓ рддрдм рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрдм рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рди рдХрд┐ рдЗрд╕реЗ рдХрд┐рддрдиреЗ рд╕рдордп рддрдХ рджрдмрд╛рдпрд╛ рдЬрд╛рдПред рдХреЛрдИ рд╕реНрд╡рдд: рд░реЛрдЯреЗрд╢рди рдХреЗ рдмрд╛рдж рд╕реЗ, рдПрдХ рд╣реА рд╡рд┐рдЪрд╛рд░ рдмрдЯрди рдП рдФрд░ рдмреА рдЗрд╕рд▓рд┐рдП рдХреНрд╖реЗрддреНрд░ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ Left, Right, AрдФрд░ Bрдирд┐рдореНрди рдореЗрдВ рд╕реЗ рдПрдХ рдорд╛рди рдпреБрдХреНрдд рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛ рд╕рдХрддреА:

 { RELEASED, PRESSED } 

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

 { RELEASED, PRESSED_FOR_1_FRAME, PRESSED_FOR_2_FRAMES, PRESSED_FOR_3_FRAMES } 

Downрд╡реГрджреНрдзрд┐рд╢реАрд▓ рдореВрд▓реНрдп рд╕реЗ рдмрдврд╝ RELEASEDрдЬрд╛рддрд╛ рд╣реИ PRESSED_FOR_3_FRAMES, рдЬрд┐рд╕ рдкрд░ рдПрдХ рдирд░рдо рд╡рдВрд╢ рд╣реЛрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдпрд╣ рдПрдХ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ RELEASEDрдпрд╛ рд╡рд╛рдкрд╕ рд▓реМрдЯ рд╕рдХрддрд╛ рд╣реИ PRESSED_FOR_2_FRAMES, рдЬрд┐рд╕рд╕реЗ рд╢реБрд░реБрдЖрддреА рджреЗрд░реА рдХреЗ рдмрд╛рдж рд╣рд░ рджреВрд╕рд░реЗ рдлреНрд░реЗрдо рдореЗрдВ рдПрдХ рдирд░рдо рд╡рдВрд╢ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ RELEASEDрд╕реЗ PRESSED_FOR_1_FRAMEрдпрд╛ PRESSED_FOR_2_FRAMESред

рджрд░рдЕрд╕рд▓, Lua рдХреЛрдб рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рдорд╛рди рд╣реИред

рдЗрд╕реА рддрд░рд╣, visitedрдФрд░ predecessor, fallTimerрдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЬрдм рд╕рд╣рд╛рдпрдХ рдХрддрд╛рд░ рд░рд╛рдЬреНрдп рдореЗрдВ рд▓рд┐рдЦ рдореВрд▓реНрдп рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; рдпрд╣ fallTimerрдореВрд▓ рд░рд╛рдЬреНрдп рдХреЗ рдореВрд▓реНрдп рд╕реЗ рдПрдХ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ред рд╢рд░реНрдд рдпреБрдХреНрддfallTimer, рдЬреЛ рдХрд┐ рд╡рдВрд╢ рдЧрддрд┐ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ рдЗрд╕ рдлреНрд░реЗрдо рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рдВрд╢ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд░рд╛рдЬреНрдп рдХреА рдЕрдЧрд▓реА рд╕реНрдерд┐рддрд┐ fallTimer0. рд╣реЛрдЧреАред

рдкреНрд░рддреНрдпреЗрдХ SearcherрдкреВрд░реНрд╡ 8-рдореЗрдВ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд░рд╛рдЬреНрдпреЛрдВ ( 20 ├Ч 10 ├Ч 4 ├Ч 2 ├Ч 2 ├Ч 4 ├Ч 2 A ├Ч 2 B) рд╕реЗ рдпреБрдХреНрдд рдПрдХ рд╕рд░рдгреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ , рдФрд░ BFS рдХреЛ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдП рдЧрдП рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдЫрджреНрдо рдХреЛрдб рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдмрд╛рдж рдХреЗ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░рд╛рдЬреНрдпреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 Slide = (Left == PRESSED) or (Right == PRESSED) Rotate = (A == PRESSED) or (B == PRESSED) if Down == RELEASED or Down == PRESSED_FOR_3_FRAMES then if Down == RELEASED then nextDown = PRESSED_FOR_1_FRAME else nextDown = PRESSED_FOR_2_FRAMES end addChild(Down = nextDown) if not Rotate then addChild(A = PRESSED, Down = nextDown) addChild(B = PRESSED, Down = nextDown) end if Slide then addChild() if not Rotate then addChild(A = PRESSED) addChild(B = PRESSED) end else addChild(Left = PRESSED) addChild(Right = PRESSED) if not Rotate then addChild(Left = PRESSED, A = PRESSED) addChild(Left = PRESSED, B = PRESSED) addChild(Right = PRESSED, A = PRESSED) addChild(Right = PRESSED, B = PRESSED) end end else if Down == PRESSED_FOR_1_FRAME then nextDown = PRESSED_FOR_2_FRAMES else nextDown = PRESSED_FOR_3_FRAMES end addChild(Down = nextDown) if not Rotate then addChild(A = PRESSED, Down = nextDown) addChild(B = PRESSED, Down = nextDown) end end 

рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЫрджреНрдо рдХреЛрдб рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдлрд╝рдВрдХреНрд╢рди addChildрдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рд░реА, рд░реЛрдЯреЗрд╢рди рдФрд░ рд╡рдВрд╢)ред

 nextFallTimer = fallTimer + 1 if Left == PRESSED and testPosition(x - 1, y, rotation) then x = x - 1 elseif Right == PRESSED and testPosition(x + 1, y, rotation) then x = x + 1 end if A == PRESSED and testPosition(x, y, nextClockwiseRotation) then rotation = nextClockwiseRotation elseif B == PRESSED and testPosition(x, y, nextCounterclockwiseRotation) then rotation = nextCounterclockwiseRotation end if Down == PRESSED_FOR_3_FRAMES or nextFallTimer >= dropSpeed then if testPosition(x, y + 1, rotation) then y = y + 1 nextFallTimer = 0 else lockTetrimino() return end end childState = states[y][x][rotation][Left][Right][Down][A][B] if not childState.visited then childState.visited = mark childState.predecessor = state childState.fallTimer = nextFallTimer queue.enqueue(childState) end 

рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рддрд░рд╣, рдпрд╣ AI.searchрд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ Stateред рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ StateрдореЗрдВ рдХрдИ рдмрдЯрди рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдореЗрдВ рджрдмрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдлрд╝реАрд▓реНрдбреНрд╕ x, yрдФрд░ rotationрдЖрдХреГрддрд┐рдпреЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╣реА рдЖрдВрджреЛрд▓рди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдЗрд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓lua/NintendoTetrisAIGamepadVersion.lua рдореЗрдВ рд╕реНрдерд┐рдд рдЪрд▓рд╛рдПрдВ ред

рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдВрдХрдбрд╝реЗ рдХреА рдЧрддрд┐ рдХреЛ рдХреЗрд╡рд▓ рдореЛрдбрд╝рдХрд░, рдПрдХ рдкрд╛рд░реА рдХреЗ рдмрд╛рдж рд╕реАрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдлрд┐рд░ рдиреАрдЪреЗ рдХреА рдУрд░ рдЙрддрд░ рджрд┐рдпрд╛ рдЬрд╛рдПред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рдФрд░ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдВрдХрдбрд╝реЗ рдХреА рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдЧрддрд┐ рдХрд╛ рдПрдЖрдИ рдкрд░ рдмрд╣реБрдд рдХрдо рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛; рдЙрд╕реЗ рдХреЗрд╡рд▓ рдЗрддрдирд╛ рдХрд░рдирд╛ рд╣реИ рдХрд┐ рд╡рд╣ рд╡рд╛рдВрдЫрд┐рдд рдХреЙрд▓рдо рдореЗрдВ рдЖрдВрдХрдбрд╝рд╛ рдкрд╣реБрдВрдЪрд╛рдП, рдФрд░ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдмрд╛рдХреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рдПрдХ рдЕрдиреНрдп рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЦреЛрдЬ рд╕реНрдерд╛рди рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рджреЗрд░реА рдХреЗ рдмрд┐рдирд╛, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдЦреЗрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рдФрд░ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛, AI рдмрд╣реБрдд рдмреБрд░рд╛ рдЦреЗрд▓рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, Tetris рдР, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдЦреЗрд▓рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде, рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдмреЗрдХрд╛рд░ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛


TETRIS

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдПрдХ рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрд╛ рдерд╛ рдЬреЛ рдХрд┐ рдЯреЗрдЯреНрд░рд┐рд╕ рдореЗрдВ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреБрдЫ рдиреБрдХрд╕рд╛рди рдереЗ:

  1. рдмреЙрдЯ рдиреЗ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЧреНрд▓рд╛рдЗрдбрд░ рдФрд░ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдирд┐рдирдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдХреЗ рдмрд╣реБрдд рдиреНрдпреВрдирддрдо рд╕реНрддрд░ рдкрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рд╡рд╣ рдХрднреА рднреА рдЖрдВрдХрдбрд╝реЗ рдиреАрдЪреЗ рдирд╣реАрдВ рдмрдврд╝рд╛рддрд╛, рд▓реЗрдХрд┐рди рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдПрдХ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд░рдо рд╡рдВрд╢ рд╣реИред рдпрд╣реА рд╣реИ, рд╡рд╣ рдПрдХ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ, рдЖрджрд░реНрд╢рд┐рдд рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЦреЗрд▓рддрд╛ рд╣реИред рдХреБрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╣ рдзреЛрдЦрд╛ рджреЗрддрд╛ рд╣реИред
  2. . тАФ , . Double, Triple Tetris, тАФ , . 90. , , 29 - .
  3. . . . , Tetris .

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



рд╡реАрдбрд┐рдпреЛ


рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рд╕рднреА рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдмреЙрдЯ рдХреЛ рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдкреЙрдЗрдВрдЯреНрд╕ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ 19 рдХреЗ рд╕реНрддрд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред





рдбрд╛рдЙрдирд▓реЛрдб


TetrisAI_2018-01-28.zip

рдлрд╝рд╛рдЗрд▓ .zipрдореЗрдВ рд╣реИ:

  • src - рд╕реЛрд░реНрд╕ рдХреЛрдб рдЯреНрд░реА
  • TetrisAI.jar - рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ред
  • lgpl-2.1.txt - рдореБрдлреНрдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд▓рд╛рдЗрд╕реЗрдВрд╕ред



рд▓рд╛рдВрдЪ


рдЖрд╡рд╢реНрдпрдХ рд╢рд░реНрддреЗрдВ


  • Nintaco рдПрдХ NES / Famicom рдПрдореБрд▓реЗрдЯрд░ рд╣реИред
  • Tetris (U) [!].nes - рдирд┐рдирдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рд░реЙрдо рдлрд╝рд╛рдЗрд▓ред

рдкреНрд▓рдЧрдЗрди рд▓реЙрдиреНрдЪ


  1. Nintaco рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рдЦреЛрд▓реЗрдВ Tetris (U) [!].nesред
  2. TetrisAI.jarрдбрд╛рдЙрдирд▓реЛрдб рд╕реЗ рдирд┐рдХрд╛рд▓реЗрдВ .zipред
  3. рдЯреВрд▓ рдЪреБрдирдХрд░ рд░рди рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд┐рдВрдбреЛ рдЦреЛрд▓реЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛рдПрдВ ...
  4. JAR Find JARтАж .
  5. Load JAR, .
  6. Run.
  7. , GAME TYPE MUSIC TYPE . D-pad ( ) A-TYPE . Start (Enter), .
  8. A-TYPE D-pad ( ) LEVEL 9 . , A Start ( X Enter), 19, .

рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдмреЙрдЯ рдХреЗрд╡рд▓ рд╕реНрддрд░ 19 рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдирд┐рдЪрд▓реЗ рд╕реНрддрд░реЛрдВ рдкрд░, рд╡рд╣ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдЧрддрд┐ рдХрд╛ рд╕рдВрджрд░реНрдн


рдЦреЗрд▓ рддреЗрдЬреА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝реЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдорд╢реАрди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЧрддрд┐ | рдореИрдХреНрд╕ред



рд╡рд┐рд╡рд░рдг


рдкрдард╛рд░


10 рдХреЗ рд╕реНрддрд░ рдХреЗ рдиреАрдЪреЗ, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдкрд░ рд╡рдВрд╢ рдЧрддрд┐ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реИред рд▓реЗрдХрд┐рди 10 рдХреЗ рд╕реНрддрд░ рдкрд░ рдФрд░ рдКрдкрд░ рдХрдИ рдкрдард╛рд░ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рдЧрддрд┐ рдХрдИ рд╕реНрддрд░реЛрдВ рддрдХ рд╕реНрдерд┐рд░ рд░рд╣рддреА рд╣реИред рдпрд╣ рдЯреНрд░рд┐рдЧрд░ рддрдВрддреНрд░ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдЧрддрд┐ рдХреЛ рдкреНрд░рддрд┐ рд╡рдВрд╢ рдлреНрд░реЗрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рд╣реИред рдпрд╣реА рд╣реИ, рдЙрдЪреНрдЪ рд╕реНрддрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдмрдЪреЗ рд╣реИрдВ: 10-12, 13-15, 16-18, 19тАУ28 рдФрд░ 29+ 5, 4, 3, 2 рдФрд░ рд╡рдВрд╢ рдХреЗ рд▓рд┐рдП 1 рдлреНрд░реЗрдо рд╣реИрдВред

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

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

рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рд╕рд┐рдВрдЧрд▓, рдбрдмрд▓, рдЯреНрд░рд┐рдкрд▓ рдФрд░ рдЯреЗрдЯреНрд░рд┐рд╕ рдХреЗ рд▓рд┐рдП 40, 100, 300 рдФрд░ 1200 рдЕрдВрдХреЛрдВ рд╕реЗ рдкреБрд░рд╕реНрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЕрдВрдХ рдХреЛ рд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛ 1 рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЕрдзрд┐рдХрддрдо рдЕрдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рдпрдерд╛рд╕рдВрднрд╡ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЦреЗрд▓рдирд╛, рдЯреЗрдЯреНрд░рд┐рд╕ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд▓реЗрд╡рд▓ 19 рд╡рд╣ рдЙрдЪреНрдЪрддрдо рд╣реИ рдЬрд┐рд╕реЗ рд╢реБрд░реБрдЖрддреА рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдмреЙрдЯ рдХреЛ рдкрдард╛рд░ рдкрд░ рд╕реАрдзреЗ 1928 рдореЗрдВ рдХреВрджрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдмрддрд╛рдП рдЧрдП рд▓реЗрд╡рд▓ рдХреИрд▓рдХреБрд▓реЗрд╢рди рдореИрдХреЗрдирд┐рдЬреНрдо рдореЗрдВ рдПрдХ рдмрдЧ рдХреЗ рдХрд╛рд░рдг, рдЧреЗрдо рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд 200 рдХреЗ рдмрдЬрд╛рдп 140 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдХреНрд▓рд┐рдпрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЧреЗрдо 20 рд▓реЗрд╡рд▓ рдкрд░ рдЪрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдмрд╛рдж, рдЧреЗрдо рд╣рд░ 10 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд▓реЗрд╡рд▓ рдмрджрд▓ рджреЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, 230 рдкрдВрдХреНрддрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдмреЙрдЯ рдкрдард╛рд░ рд╕реЗ рдЙрдареЗрдЧрд╛ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ред рдпрд╣реА рд╣реИ, рдЙрд╕реЗ 230 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдлрд╛рдИ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдЯреЗрдЯреНрд░рд┐рд╕ рдбрд╛рдпрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдирд░рдо рд╡рдВрд╢


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

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

рдПрдЖрдИ рдПрд▓реНрдЧреЛрд░рд┐рдердо


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

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

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

рдореВрд▓реНрдпрд╛рдВрдХрди рд╕рдорд╛рд░реЛрд╣


рдореВрд▓реНрдпрд╛рдВрдХрди рд╕рдорд╛рд░реЛрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рднрд╛рд░рд┐рдд рдпреЛрдЧ рд╣реИ:

  • рд╕рд╛рдл рдХреА рдЧрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рджреЛрдиреЛрдВ tetriminos рдХреЗ рдЬреЛрдбрд╝ рд╕реЗ рд╕рд╛рдл рдХреА рдЧрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред
  • тАУ , . тАФ , , .
  • - тАУ .
  • тАУ , -.
  • тАУ , . . .
  • тАУ . , 1. , , .
  • тАУ , . тАФ , тАФ .
  • тАУ . , (20).
  • тАУ . , 0.
  • тАУ , ( ) .
  • : тАФ , ( ) . . . .
  • тАУ . , 1 , 1, тАФ 0.
  • тАУ .
  • тАУ .
  • тАУ .
  • тАУ . .
  • тАУ .

рдорд╢реАрди рд╕реАрдЦрдиреЗ


рдореВрд▓реНрдпрд╛рдВрдХрди рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд╡рдЬрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдлреБрдЯрдиреЛрдЯ [1] рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрдг рдЭреБрдВрдб рдЕрдиреБрдХреВрд▓рди (рдкреАрдПрд╕рдУ) рдкрджреНрдзрддрд┐ рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЕрдЪреНрдЫрд╛ рдЕрднрд┐рд╕рд░рдг рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЬрдбрд╝рддрд╛ рдФрд░ рддреНрд╡рд░рдг рдЧреБрдгрд╛рдВрдХ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред рдФрд░ рдХрдг рдЪрд░рдгреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ рдЙрдирдХреЗ рд╡реЗрдЧ рдореВрд▓реНрдпреЛрдВ рдХреА рд╕реАрдорд╛ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИред

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

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

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

рд╢реБрд░реБрдЖрддреА рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмреЙрдЯреНрд╕ рдмрд╣реБрдд рдЖрдХреНрд░рд╛рдордХ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧреЗред рдпрджрд┐ рд╡реЗ 1928 рдХреЗ рдкрдард╛рд░ рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдП, рддреЛ рд╡реЗ рдЖрдорддреМрд░ рдкрд░ рдЕрдзрд┐рдХрддрдо рд╕реНрдХреЛрд░ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдПред рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╡реЗ рдЕрдХреНрд╕рд░ рдмрд╣реБрдд рдЬрд▓реНрджреА рдлреАрд▓реНрдб рдУрд╡рд░рдлреНрд▓реЛ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░рддреЗ рдереЗред рдЗрд╕рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ, рдмреЙрдЯреНрд╕ рдХреЛ "рд╢рд╛рдВрдд" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рдХрджрдо рдЙрдард╛рдП рдЧрдП:

  1. : Tetris, . ┬л┬╗ . . ; 230 . , Tetris . Single, Double Triple. ; .
  2. . , , 7 . .
  3. , , . , 7 .
  4. , , . , . , .

рдмреЙрдЯреНрд╕ рдХреЛ "рд╢рд╛рдВрдд" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рд╕рднреА рдирд┐рдпрдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкреАрдПрд╕рдУ рдкрджреНрдзрддрд┐ рдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рд░ рджрд┐рдП:

рдкреИрд░рд╛рдореАрдЯрд░рднрд╛рд░
рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рд╕рд╛рдл рд╣реЛ рдЧрдИ.286127095297893900
рдХреБрд▓ рдЕрд╡рд░реБрджреНрдз рдКрдВрдЪрд╛рдИ1.701233676909959200
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛.711304230768307700
рдХреБрд▓ рдЧрд╣рд░реЗ рдХреБрдПрдБ.910665415998680400
рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рдЫреЗрджреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛1.879338064244357000
рдХреБрд▓ рднрд╛рд░рд┐рдд рд╕реНрддрдВрдн рдЫреЗрдж2.168463848297177000
рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рдЫреЗрдж рдХреА рдЧрд╣рд░рд╛рдИ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛-.265587111961757270
рдиреНрдпреВрдирддрдо рд╕реНрддрдВрдн рдЫреЗрдж рдЧрд╣рд░рд╛рдИ.289886584949610500
рдЕрдзрд┐рдХрддрдо рд╕реНрддрдВрдн рдЫреЗрдж рдЧрд╣рд░рд╛рдИ.362361055261181730
рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛-.028668795795469625
рдХреБрд▓ рд▓рд╛рдЗрди рдХреВрджрддрд╛ рд╣реИ.874179981113233100
рдЯреЛрдЯрд▓ рдХреЙрд▓рдо рд╣рд╛рдЗрдЯреНрд╕-.507409683144361900
рдвреЗрд░ рдХреА рдКрдБрдЪрд╛рдИ-2.148676202831281000
рдХреЙрд▓рдо рд╣рд╛рдЗрдЯ рд╕реНрдХреИрдЯрд░-1.187558540281141700
рдХрдмреНрдЬреЗ рд╡рд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛-2.645656132241128000
рдХрдмреНрдЬреЗ рд╡рд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдХреБрд▓ рднрд╛рд░рд┐рдд рд╕рдВрдЦреНрдпрд╛.242043416268706620
рд╕реНрддрдВрдн рдКрдВрдЪрд╛рдИ рдлреИрд▓рд╛рд╡.287838126164431440

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

рдР рддрд╛рдХрдд


рдПрдЖрдИ рдХреА рддрд╛рдХрдд рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирдХрд▓реА рдЦреЗрд▓реЛрдВ рдХреЗ рд▓рдЧрднрдЧ 1.7 рдорд┐рд▓рд┐рдпрди рдкрд░рд┐рдгрд╛рдо (рдЕрдВрдХ рдореЗрдВ) 1928 рдХреЗ рдкрдард╛рд░ рдкрд░ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рдереЗред рд╕реНрдХреЛрд░ 29 рдпрд╛ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рдЦреЗрд▓ рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдирд░рдо рд╡рдВрд╢ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЕрдВрдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдореЗрдВ рдУрд╡рд░рдлреНрд▓реЛ рдХреЗ рдХрд╛рд░рдг рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЦреЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ PRNG рд▓реЙрдЬрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдЕрдиреБрдХреНрд░рдо рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмреАрдЪ, рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд╕реНрдХреЛрд░ 1,313,600 рд╣реИред рдиреНрдпреВрдирддрдо 0. 0.

рдФрд╕рдд 816,379 рд╣реИ, рдФрд░ рдпрд╣ рдЫреЛрдЯрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдбреЗрдЯрд╛ рд╡рд┐рдХреГрдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП 989,200 рдЕрдВрдХ рдХрд╛ рдФрд╕рдд рд╕реНрдХреЛрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдп рдХрд╛ рдмреЗрд╣рддрд░ рд╡рд┐рдЪрд╛рд░ рджреЗрддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдкреАрдПрд╕рдУ рдиреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рддреАрд╕рд░реЗ рдмреИрдЪреЛрдВ рдХреЗ рдФрд╕рдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рдЬрди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рддреАрд╕рд░реЗ рдХрд╛ рдФрд╕рдд рд╕реНрдХреЛрд░ 1 108 860 рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ 75% рдХрд╛ рдФрд╕рдд рд╕реНрдХреЛрд░ 1,000,000 рд╣реИред

рдмреЙрдЯ рдореЗрдВ 47% рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╕реАрдорд╛ рд╕реАрдорд╛ 29 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреА рд╣реИред рдЗрд╕рдореЗрдВ 900% рдЕрдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ 61,000 рд╣реИред 29. рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЧреНрд░рд╛рдлрд╝ 29 рдХреЗ рд╕реНрддрд░ рддрдХ рд╕реНрдХреЛрд░ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рд╕рдВрднрд╛рд╡реНрдпрддрд╛ рдШрдирддреНрд╡

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрднрд╛рд╡рдирд╛ рд▓рдЧрднрдЧ 900,000 рдЕрдВрдХреЛрдВ рддрдХ рд░реИрдЦрд┐рдХ рдШрдЯ рдЬрд╛рддреА рд╣реИред рдлрд┐рд░ рдпрд╣ рдПрдХ рдЙрд▓реНрдЯреЗ рд╕рд┐рдЧреНрдореЙрдпрдб рдХрд░реНрд╡ рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдореВрде рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рд╣реИред рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рдЧреНрд░рд╛рдл рдХреЗ рд╡реНрдпреБрддреНрдкрдиреНрди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо

рдпрджрд┐ рдЖрдк рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓рдЧрднрдЧ 900,000 рддрдХ рдпрд╣ рд╕рдорддрд▓ рд╣реИ, рдФрд░ рдлрд┐рд░ рд▓рдЧрднрдЧ 1,050,000 рдЕрдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХреЗрдВрджреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рддрд░рдг рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡ рдХреЗ рдХрд╛рд░рдг рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 20,000 рдЕрдВрдХреЛрдВ рдХреА рд╡реГрджреНрдзрд┐ рдореЗрдВ рдХреВрджрдирд╛ рдкрд╕рдВрдж рдХрд░рддреА рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдвреЗрд░ рдирд┐рд░реНрдорд╛рдг рдЪрдХреНрд░ рдФрд░ рдЯреЗрдЯреНрд░рд┐рд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реИред

RAM рдФрд░ ROM рдХрд╛ рдЖрд╡рдВрдЯрди


рд╕реАрдкреАрдпреВ рдореЗрдореЛрд░реА рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрдЯрди рдХреНрд▓рд┐рдХ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рдлрд╝реНрд░реЗрдо рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрд╡реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдкреНрд▓рдЧрдЗрди Nintaco API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ ред Nintaco рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдореЗрдореЛрд░реА рдкрддреЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдЧрдИ рдереА, рдФрд░ рдбреЗрдЯрд╛ рдХреНрд░рд┐рд╕реНрдЯрд▓ ROMhacking.net рд╡рд┐рдХреА рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝реА рдЧрдИ рдереА ред рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ, рд╡реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреА рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ Addressesред



рд╕рдВрджрд░реНрдн рд╕рд╛рдордЧреНрд░реА


  1. van den Bergh, F.; Engelbrecht, AP (2006)
    A study of particle swarm optimization particle trajectories
    In: Information Sciences 176 (2006) (pp. 937тАУ971)
    Retrieved from http://researchspace.csir.co.za/dspace/bitstream/handle/10204/1155/van%20den%20bergh_2006_D.pdf

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


All Articles