制作处理密集型web代码(国际象棋引擎)
Making processing intensive web code (chess engine)
我在Processing(一种简化的Java语言)中制作了一些国际象棋引擎,并想在网站上制作一个。我猜JavaScript将是最明显的东西,但我想知道在我进入它之前是否还有其他选择。
我环顾四周,似乎C++可以以某种方式与web代码配合使用,但我从未这样做过,也不太了解它。有可能在JavaScript中进行低强度的绘图和C++中的移动生成吗?有更好的选择吗?
编辑:我用粗体显示处理(语言),以区分
如果您正在寻找一个跨浏览器的客户端解决方案,那么在查看器的浏览器中没有单一的跨浏览器方法可以使用C++。跨浏览器解决方案包括javascript(推荐)、java(在台式机上逐步淘汰,通常在移动设备上不可用)和Adobe Flash(在移动设备中不可用)。
如果你想把它全部放在客户端,我建议你用客户端javascript编写,并在webworker中尽可能多地进行处理,webworker是独立的执行线程。这些单独的线程可以进行任意多的计算,但需要使用消息传递与主javascript线程进行通信,以便实际修改DOM或与用户交互。
或者,作为一个浏览器web应用程序,你可以用C++或任何你想使用的服务器端语言在服务器上保留国际象棋逻辑,并使用客户端Ajax调用来要求服务器计算下一步行动。
这取决于您想要如何构建它。
如果你想让它在没有服务器端支持的情况下运行,那么你几乎只能使用JavaScript。(当然,您实际上可以托管现有的Java代码和库,这些代码和库可以作为Java小程序提供,也可以作为Flash或其他插件提供,但特别是在HTML 5等的情况下,重点是JavaScript。)
否则,您可以使用JavaScript实现UI和其他元素,并使用AJAX让它将繁重的处理通信/卸载到后端服务器。(此时,您基本上需要托管一个国际象棋引擎,以便在您的网站上使用。)
用您想要的任何语言编写国际象棋引擎。创建一个与国际象棋引擎通信的接口,或者更好地使用现有的标准国际象棋引擎接口。使用以下两个"标准"接口之一
http://en.wikipedia.org/wiki/Chess_Engine_Communication_Protocolhttp://en.wikipedia.org/wiki/Universal_Chess_Interface
一旦你彻底调试了你的国际象棋引擎并对它感到满意,你就可以把为它编写web UI的问题作为一个完全独立的问题来处理。您可以通过自己选择的中间层来完成国际象棋引擎服务器和网络服务器/网站之间的通信。其中一个选项是:
http://en.wikipedia.org/wiki/Ajax_(编程)
此外,如果您使用标准的国际象棋接口,您可以将自己的国际象棋引擎换成满足您选择的接口的任何第三方国际象棋引擎。
- 表达式引擎扩展开发-向呈现的条目添加自定义javascript
- 谷歌文档表面引擎
- 自定义运行时Can'在谷歌应用引擎中看不到我的自定义日志
- 从js引擎的角度来看闭包和构造函数是如何工作的
- Javascript-模板引擎
- 如何使用jQuery验证引擎验证组
- javascript中的表达式引擎字段
- 布局引擎和javascript引擎之间的区别
- 使用Node.js在应用程序引擎上进行本地单元测试
- 扩展Nashorn-ecma引擎以添加新的运算符和类型
- Javascript图形布局引擎
- 自定义警报/弹出窗口和保持JS引擎
- 你知道使用javascript游戏引擎的简单方法吗
- JavaScript游戏引擎——编辑器中的代码运行:)检查器中的错误
- 在谷歌应用引擎上用jQuery处理json表单
- AngularJS模板引擎的替代方案
- Rails引擎:使主机应用程序javascript可用于Mounted Engine
- 余烬引擎未捕获错误:找不到模块余烬视图/views/select
- 使用Asp.net的国际象棋引擎
- 制作处理密集型web代码(国际象棋引擎)