Javascript — Создание обработки интенсивного веб-кода (шахматный движок)

Я сделал пару шахматных движков в обработка (упрощенный язык Java) и хотел сделать один на веб-сайте. Я предполагаю, что JavaScript был бы наиболее очевидной вещью, чтобы сделать это, но я хотел знать, есть ли другие варианты прежде, чем я войду в это. Я никогда не делал что-то такое интенсивное для веб-обработки.

Я посмотрел вокруг, и кажется, что C ++ можно каким-то образом заставить работать с веб-кодом, но я никогда этого не делал и не знаю об этом много. Можно ли делать такие малозатратные вещи, как рисование в JavaScript и генерация движений в C ++? Есть ли лучший вариант?

редактировать: Я кладу обработка (язык) жирным шрифтом, чтобы дифференцировать его

1

Решение

Если вы ищете кросс-браузерное решение на стороне клиента, то не существует единого кросс-браузерного способа использования C ++ в браузере вашего зрителя. Кросс-браузерные решения состоят из javascript (рекомендуется), java (поэтапный отказ от использования на настольных компьютерах и, как правило, недоступен для мобильных устройств) и Adobe Flash (недоступен для мобильных устройств).

Если вы хотите, чтобы все было на стороне клиента, то я бы предложил написать на javascript на стороне клиента и выполнить как можно больше обработки для веб-работников, которые являются отдельными потоками выполнения. Эти отдельные потоки могут выполнять столько вычислений, сколько вы хотите, но им необходимо использовать обмен сообщениями для обратной связи с основным потоком JavaScript, чтобы фактически изменить DOM или взаимодействовать с пользователем.


Или, как веб-приложение для браузера, вы можете хранить шахматную логику на сервере в C ++ или на любом другом серверном языке, который вы хотите использовать, и использовать клиентские Ajax-вызовы, чтобы попросить сервер рассчитать следующий шаг.

1

Другие решения

Это зависит от того, как вы хотите это сконструировать.

Если вы хотите, чтобы он работал без поддержки на стороне сервера, вы будете в значительной степени ограничены JavaScript. (Конечно, вы можете разместить свой существующий Java-код и библиотеки, доступные как Java-апплет — или что-то во Flash или другой плагин в этом отношении — но особенно с учетом HTML 5 и т. Д., Акцент делается на JavaScript.)

В противном случае вы можете реализовать пользовательский интерфейс и другие элементы с помощью JavaScript и использовать AJAX, чтобы он передавал / переносил тяжелую обработку на внутренний сервер. (На этом этапе вам, по сути, потребуется разместить шахматный движок для использования на вашем веб-сайте.)

1

Напишите шахматный движок на любом языке, который вы пожелаете. Создайте интерфейс для связи с вашим шахматным движком или даже лучше используйте существующий стандартный интерфейс шахматного движка. Используйте любой из следующих двух «стандартных» интерфейсов

http://en.wikipedia.org/wiki/Chess_Engine_Communication_Protocol
http://en.wikipedia.org/wiki/Universal_Chess_Interface

После того, как вы полностью отладили свой шахматный движок и довольны им, вы можете подойти к проблеме написания веб-интерфейса для него как к совершенно независимой проблеме. Вы можете установить связь между сервером шахматного движка и веб-сервером / веб-сайтом с помощью промежуточного уровня по вашему выбору. Один из таких вариантов:

http://en.wikipedia.org/wiki/Ajax_(programming)

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

1