
рд╢рддрд░рдВрдЬ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓рддрдо рдПрдЖрдИ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЙрд░реА рд╣рд╛рд░реНрдЯрд┐рдХрд╛рдХрд╛ рдХреЗ рдПрдХ рд▓реЗрдЦ рдХрд╛ рд╣рдордиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ред рдпрд╣ 2017 рдореЗрдВ рд╡рд╛рдкрд╕ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рдорд╛рди рд░рд╣реЗред рд▓реЛрд░реА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рд╕рд░рд▓ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐ рдЬреЛ рд╢рддрд░рдВрдЬ рдЦреЗрд▓ рд╕рдХрддреА рд╣реИ, рдЪрд╛рд░ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ:
- 1. рдЪрд▓ рд░рд╣рд╛ рд╣реИ;
- 2. рдмреЛрд░реНрдб рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди;
- 3. рдорд┐рдиреАрдореИрдХреНрд╕ ;
- 4. рдЕрд▓реНрдлрд╛ рдмреАрдЯрд╛ рдХрддрд░рди ред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд╕реЗ рдзреАрд░реЗ-рдзреАрд░реЗ рдПрдЖрдИ рдХреА рдЧреЗрдорд┐рдВрдЧ рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред
Skillbox рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢: рдкрд╛рдпрдерди рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдПрдкреНрд▓рд╛рдЗрдб рдСрдирд▓рд╛рдЗрди рдХреЛрд░реНрд╕ред
рд╣рдо рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ: "рд╣реИрдмрд░" рдХреЗ рд╕рднреА рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП - "рд╣реИрдмрд░" рдкреНрд░реЛрдореЛ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рдХреЛрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдХрд░рддреЗ рд╕рдордп 10,000 рд░реВрдмрд▓ рдХреА рдЫреВрдЯред
рддреИрдпрд╛рд░ рд╕реНрд░реЛрдд рдХреЛрдб
GitHub рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рдЪрд░рдг 1. рдЪрд╛рд▓ рдХреА рдкреАрдврд╝реА рдХреЗ рд╕рд╛рде рдПрдХ рд╢рддрд░рдВрдЬрдмреЛрд░реНрдб рдХрд╛ рджреГрд╢реНрдп
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рд╣рдо
рд╢рддрд░рдВрдЬ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд▓ рдФрд░
рд╢рддрд░рдВрдЬрдмреЛрд░реНрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
ch.js рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдЬреЛ рдЪрд╛рд▓ рдХреА рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЖрдкрдХреЛ рд╕рднреА рд╢рддрд░рдВрдЬ рдирд┐рдпрдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╣рдо рдЯреБрдХрдбрд╝реЛрдВ рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░рд┐рдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХреЗрдВред

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

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

рдореВрд▓реНрдпрд╛рдВрдХрди рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдореЗрдВ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рдЕрдзрд┐рдХрддрдо рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрджрдо рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред
var calculateBestMove = function (game) { var newGameMoves = game.ugly_moves(); var bestMove = null;
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕реНрддрд░ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдЕрд╡рд╕рд░ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рд╕реА рдФрд░ рдХреА рдЖрдХреГрддрд┐ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред

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

рдпрд╣рд╛рдВ, рдмреА 2-рд╕реА 3 рд╡реНрд╣рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрджрдо рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдПрдХ -50 рдЕрдВрдХ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рди рдкрд░ рдкрд╣реБрдВрдЪ рдЬрд╛рдПред
var minimax = function (depth, game, isMaximisingPlayer) { if (depth === 0) { return -evaluateBoard(game.board()); } var newGameMoves = game.ugly_moves(); if (isMaximisingPlayer) { var bestMove = -9999; for (var i = 0; i < newGameMoves.length; i++) { game.ugly_move(newGameMoves[i]); bestMove = Math.max(bestMove, minimax(depth - 1, game, !isMaximisingPlayer)); game.undo(); } return bestMove; } else { var bestMove = 9999; for (var i = 0; i < newGameMoves.length; i++) { game.ugly_move(newGameMoves[i]); bestMove = Math.min(bestMove, minimax(depth - 1, game, !isMaximisingPlayer)); game.undo(); } return bestMove; } };
рдорд┐рдирд┐рдореИрдХреНрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде, рд╣рдорд╛рд░реЗ рдПрдЖрдИ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╢рддрд░рдВрдЬ рдХреА рдмреБрдирд┐рдпрд╛рджреА рд░рдгрдиреАрддрд┐ рдХреЛ рд╕рдордЭрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред
2 рдХреА рдЧрд╣рд░рд╛рдИ рдХреЗ рд╕рд╛рде рдорд┐рдиреАрдорд╛рдХреНрд╕ (рд╕реНрд░реЛрдд рдФрд░ рдЦреЗрд▓
рдпрд╣рд╛рдБ )
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдиреНрдпреВрдирддрдо рдЧрд╣рд░рд╛рдИ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рджрдХреНрд╖рддрд╛ рдЦреЛрдЬ рдХреА рдЧрд╣рд░рд╛рдИ рдХреЗ рд╕рд╛рде рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рдЕрдЧрд▓рд╛ рдХрджрдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рдЪрд░рдг 4. рдЕрд▓реНрдлрд╛ рдмреАрдЯрд╛ рдХреНрд▓рд┐рдкрд┐рдВрдЧ
рдпрд╣ рдПрдХ рдиреНрдпреВрдирддрдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдЦреЛрдЬ рдкреЗрдбрд╝ рдореЗрдВ рдХреБрдЫ рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдЖрдкрдХреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕рдорд╛рди рдорд╛рддреНрд░рд╛ рдЦрд░реНрдЪ рдХрд░рддреЗ рд╣реБрдП, рдЦреЛрдЬ рдХреА рдЧрд╣рд░рд╛рдИ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЕрд▓реНрдлрд╛ рдмреАрдЯрд╛ рдХреНрд▓рд┐рдкрд┐рдВрдЧ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдЬрд╣рд╛рдВ рд╣рдо рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╢рд╛рдЦрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдпрд╣ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирдпрд╛ рдХрджрдо рдкрд┐рдЫрд▓реЗ рдПрдХ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╕рдордп рд╣рдордиреЗ рджреЗрдЦреА рдЧрдИ рд╕реНрдерд┐рддрд┐ рд╕реЗ рднреА рдмрджрддрд░ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдЧрд╛ред
рдЕрдиреБрдХреВрд▓рди рдорд┐рдирд┐рдореИрдХреНрд╕ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред
рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИ рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рдЕрдЪреНрдЫреА рдЪрд╛рд▓ рдХреА рдУрд░ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд░рд╛рд╕реНрддреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред

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

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

рдФрд░ рдЕрдм рд╣рдорд╛рд░рд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдФрд╕рдд рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЦреЗрд▓ рд░рд╣рд╛ рд╣реИред

рд╕реНрд░реЛрдд рдФрд░ рдЦреЗрд▓ рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз
рд╣реИрдВредрдирд┐рд╖реНрдХрд░реНрд╖
рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдмреЗрд╡рдХреВрдл рдЧрд▓рддрд┐рдпрд╛рдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдпрд╣рд╛рдВ рдХреА рд░рдгрдиреАрддрд┐ рдХреЛ рд╢рд╛рдпрдж рд╣реА рд╕рд╣реА рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреАред
рд╣рдорд╛рд░реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб рдХреА рдХреЗрд╡рд▓ 200 рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИрдВред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг GitHub рдкрд░ рджреЗрдЦрд╛ рдЧрдпрд╛ <a href= target
github.com/lhartikk/simple-chess-ai'> рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рд╢рддрд░рдВрдЬ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╢рддрд░рдВрдЬ
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╡рд┐рдХреА рдкрд░ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред
рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ: