制作处理密集型Web代码(国际象棋引擎)

时间:2013-02-24 06:18:57

标签: javascript c++ chess

我在处理(一种简化的Java语言)中制作了一些国际象棋引擎,并希望在网站上制作一个。我猜JavaScript是最明显的东西,但是我想知道在进入之前是否还有其他选择。我从来没有为网络制作过程密集的东西。

我环顾四周,看起来C ++可以以某种方式与网络代码一起工作,但我从来没有这样做,也不了解它。有可能做一些低强度的事情,比如用JavaScript绘制和用C ++生成移动吗?有更好的选择吗?

修改:我将处理(语言)用粗体区分以区分

3 个答案:

答案 0 :(得分:1)

这取决于你想要如何构建它。

如果你想让它在没有服务器端支持的情况下运行,你几乎只限于JavaScript。 (当然,您实际上可以托管您现有的Java代码和库,可以作为Java小程序使用 - 或者Flash或其他插件中的内容 - 但特别是HTML 5等,重点是JavaScript。)

否则,您可以使用JavaScript实现UI和其他元素,并使用AJAX将繁重的处理通信/卸载到后端服务器。 (此时,您基本上需要托管国际象棋引擎才能在您的网站上使用。)

答案 1 :(得分:1)

如果您正在寻找跨浏览器客户端解决方案,那么在您的查看器浏览器中没有单一的跨浏览器方式来使用C ++。跨浏览器解决方案包括javascript(推荐),java(在桌面上逐步淘汰,通常在移动设备上不可用)和Adobe Flash(移动设备上不可用)。

如果您想要所有客户端,我建议您使用客户端javascript编写并尽可能多地处理webworkers中的处理,这些是独立的执行线程。这些单独的线程可以根据需要进行尽可能多的计算,但需要使用消息传递回主javascript线程,以便实际修改DOM或与用户交互。


或者,作为浏览器web-app,您可以使用C ++或您想要使用的任何服务器端语言将国际象棋逻辑保留在服务器上,并使用客户端Ajax调用来请求服务器计算下一步。

答案 2 :(得分:1)

用你想要的任何语言写下国际象棋引擎。创建一个与您的国际象棋引擎通信的界面,甚至更好地使用现有的标准国际象棋引擎界面。使用以下两个“标准”接口之一

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

一旦你完全调试了你的国际象棋引擎并对它感到满意,你就可以解决为它编写Web用户界面的问题,这是一个完全独立的问题。您可以通过您选择的中间层完成国际象棋引擎服务器和Web服务器/网站之间的通信。一个这样的选择是:

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

此外,如果您使用标准的国际象棋界面,您可以将您自己的国际象棋引擎更换为满足您选择的界面的任何第三方国际象棋引擎。