Шахматы в JavaScript [закрыт]

есть ли какой-либо API шахматной игры, чисто написанный на JavaScript ? Никакой Вспышки! Кто-нибудь знает алгоритм(в общем), используемый в шахматных играх ?

3 ответов


Как работает шахматный алгоритм?:

шахматный компьютер пытается сделать следующее сгенерировать дерево позиций платы five или 10 или 20 шагов в будущее. Предполагая, что есть около 20 возможные ходы для любой позиции доски, пятиуровневое дерево содержит 3 200 000 позиции на доске. В 10-уровень дерева содержит около 10,000,000,000,000 (10 триллион) позиций. Глубина дерево, которое может вычислить компьютер контролируемый скоростью компьютер играет в игру. Самый быстрый шахматные компьютеры могут генерировать и оценить миллионы позиций на доске в секунду.

Как только он генерирует дерево, то компьютер должен " оценить плату должностное положение.- То есть компьютер имеет посмотреть на фигуры на доске и решите, является ли это соглашение кусочки-это "хорошо" или "плохо"."Как это делает это с помощью оценки функция. Самым простым функция может просто подсчитать число из части каждая сторона имеет. Если компьютер играет белыми и определенное положение совет 11 белый кусочки и девять черных кусочков, простейшей функцией оценки может быть:

  11 - 9 = 2 

очевидно, что для шахмат, что формула слишком просто, потому что некоторые части они ценнее других. Так формула может применяться вес тип части. Как программист думает об этом, он или она делает функция оценки все больше и больше сложным путем добавления такие вещи, как положение доски, управление центра, уязвимость короля для проверки, уязвимость королевы противника, и множество других параметров. Нет важно, насколько сложна функция gets, однако, конденсируется до одно число, представляющее "доброта" этой позиции правления.

источник.

для создания собственного "движка" javascript, который может играть в шахматы на базовом уровне check шаг за Шаг Javascript шахматы с CPU oppo

Если вы прокрутите вниз, он содержит исходный код этого, должен сказать, очень ограниченный, шахматный движок, основанный исключительно на javascript. Она также имеет рабочую версию игры, чтобы опробовать и все необходимые ресурсы для создания собственного.

полезные ресурсы:


для алгоритмического обсуждения попробуйте Шахматное Программирование Wiki.

методы, подходящие для серьезных шахматных движков не обязательно верно для веб-игр. Реальные шахматные движки работают на порядок быстрее, используя многомегабайтные книги и тратя минуты или часы на каждый ход. Настоящий шахматный движок будет искать глубже, чем 12 слоев, в то время как javascript не пройдет далеко за 6 слоев в разумное время в интернете. Поэтому что-то вроде кусок-квадрат оракул!--2-->, который имеет уменьшающуюся и, возможно, отрицательную отдачу по мере углубления поиска и, следовательно, выходит из моды в шахматных кругах программирования, возможно, хорошо подходит для движка javascript. Если вы сделаете то, что делали люди в 80-х, вы получите быстрый и управляемый двигатель, который будет бить большинство посетителей.

и, конечно, вы не хотите посмотреть, что делают другие люди. Просто убедитесь, что у вас есть некоторые вариации альфа-бета поиск, затем настроить функцию оценки и все остальное, как вы считаете нужным.

в 2002 и 2012 я написал тогда переписал p4wn, небольшой общедоступный движок javascript. Он использует alpha-beta и piece-square oracle. Он, вероятно, слабее, чем Garbochess-JS, но тогда у Garbochess есть открывающая книга, которая больше, чем весь двигатель p4wn.


на Блог Компьютерных Шахмат документирует создание шахматного движка C#. Это не JavaScript, но синтаксис достаточно похож, чтобы вы могли получить хорошее представление о различных компонентах шахматного движка.

также, если вы хотите, чтобы ваш шахматный движок был включен в интернете, вы можете рассмотреть возможность использования C# с GUI Silverlight. Вы получите лучшую производительность от .NET, чем с JavaScript. Как вы узнаете, это будет сильнее (глубже поиск) шахматная программа. Хороший пример шахмат Silverlight можно найти на GeeksWithChess.com