Подтвердить что ты не робот

Шахматная игра в JavaScript

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

4b9b3361

Ответ 1

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

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

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

  11 - 9 = 2 

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

Источник.

Для создания своего собственного javascript-движка, способного играть в шахматы на базовом уровне, проверьте Шаг за шагом Javascript Chess with CPU oppo

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

Некоторые полезные ресурсы:

Ответ 2

Для алгоритмического обсуждения попробуйте Chess Programming Wiki.

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

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

В 2002 и 2012 годах я написал затем переписанный p4wn, небольшой механизм JavaScript для общедоступного домена. Он использует альфа-бета и кусок квадратного оракула. Вероятно, он слабее Garbochess-JS, но затем у Garbochess есть открывающая книга, которая больше, чем весь движок p4wn.

Ответ 3

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

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