рдПрдХ рд╕рд░рд▓ рд╢рддрд░рдВрдЬ AI рдмрдирд╛рдПрдБ: 5 рдЖрд╕рд╛рди рдЪрд░рдг



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

рд╕рд░рд▓ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐ рдЬреЛ рд╢рддрд░рдВрдЬ рдЦреЗрд▓ рд╕рдХрддреА рд╣реИ, рдЪрд╛рд░ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ:

  1. 1. рдЪрд▓ рд░рд╣рд╛ рд╣реИ;
  2. 2. рдмреЛрд░реНрдб рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди;
  3. 3. рдорд┐рдиреАрдореИрдХреНрд╕ ;
  4. 4. рдЕрд▓реНрдлрд╛ рдмреАрдЯрд╛ рдХрддрд░рди ред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд╕реЗ рдзреАрд░реЗ-рдзреАрд░реЗ рдПрдЖрдИ рдХреА рдЧреЗрдорд┐рдВрдЧ рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред

Skillbox рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢: рдкрд╛рдпрдерди рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдПрдкреНрд▓рд╛рдЗрдб рдСрдирд▓рд╛рдЗрди рдХреЛрд░реНрд╕ред

рд╣рдо рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ: "рд╣реИрдмрд░" рдХреЗ рд╕рднреА рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП - "рд╣реИрдмрд░" рдкреНрд░реЛрдореЛ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рдХреЛрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдХрд░рддреЗ рд╕рдордп 10,000 рд░реВрдмрд▓ рдХреА рдЫреВрдЯред

рддреИрдпрд╛рд░ рд╕реНрд░реЛрдд рдХреЛрдб GitHub рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред


рдЪрд░рдг 1. рдЪрд╛рд▓ рдХреА рдкреАрдврд╝реА рдХреЗ рд╕рд╛рде рдПрдХ рд╢рддрд░рдВрдЬрдмреЛрд░реНрдб рдХрд╛ рджреГрд╢реНрдп


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


рдЬрдм рдЖрдк рдЪрд┐рддреНрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкреВрд░реНрдг рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдореЗрдВ рдЦреБрд▓реЗрдЧрд╛ред

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

var calculateBestMove =function(game) { //generate all the moves for a given position var newGameMoves = game.ugly_moves(); return newGameMoves[Math.floor(Math.random() * newGameMoves.length)]; }; 

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


рдмреНрд▓реИрдХ рд░реИрдВрдбрдо рддрд░реАрдХреЗ рд╕реЗ рдЪрд▓рддрд╛ рд╣реИред ( рд╕реНрд░реЛрдд рдФрд░ рдЦреЗрд▓ рдСрдирд▓рд╛рдЗрди )

рдЪрд░рдг 2. рд╕реНрдерд┐рддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди


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



рдореВрд▓реНрдпрд╛рдВрдХрди рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдореЗрдВ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рдЕрдзрд┐рдХрддрдо рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрджрдо рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред

 var calculateBestMove = function (game) { var newGameMoves = game.ugly_moves(); var bestMove = null; //use any negative large number var bestValue = -9999; for (var i = 0; i < newGameMoves.length; i++) { var newGameMove = newGameMoves[i]; game.ugly_move(newGameMove); //take the negative as AI plays as black var boardValue = -evaluateBoard(game.board()) game.undo(); if (boardValue > bestValue) { bestValue = boardValue; bestMove = newGameMove } } return bestMove; }; 

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕реНрддрд░ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдЕрд╡рд╕рд░ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рд╕реА рдФрд░ рдХреА рдЖрдХреГрддрд┐ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред


рдХрд╛рд▓реЗ рдХреЛ рд╕рдлреЗрдж рдЯреБрдХрдбрд╝реЗ рд▓реЗрдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓рд╛ред (рд╕реНрд░реЛрдд рдФрд░ рдЦреЗрд▓ рдпрд╣рд╛рдБ рд╣реИрдВ )ред

рд╕реНрдЯреЗрдЬ 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'> рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:



рд╢рддрд░рдВрдЬ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╢рддрд░рдВрдЬ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╡рд┐рдХреА рдкрд░ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред

рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ:

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


All Articles