使用Asp.net的国际象棋引擎
Chess Engine Using Asp.net
我决定在学期间开始一个项目,使用asp.net创建一个国际象棋引擎。我对如何实现引擎本身有一个很好的想法,我的问题是将其绘制到浏览器中的最佳方式是什么?
我计划只使用asp:image控件,并在每次鼠标按下事件时在棋盘图像上重新绘制棋子。我会有一个ChessPiece对象的2D阵列,它有一个抽象的绘制方法来绘制不同的部分,有点像2D瓷砖地图。这将使用.NET中的Drawing类来完成,但我在MSDN网站上读到asp.NET不支持它。
基本上,我的问题是使用asp.net向客户端绘制服务器端图像的最佳方式是什么。我以前从未做过这样的事情,所以如果你能给我指明正确的方向,我将不胜感激。
干杯,戴夫。
如果是我,我会完全用HTML、CSS和JavaScript制作界面。只需使用HTML和CSS就可以轻松地生成电路板。然后,您需要创建一个包含所有棋子的CSS"精灵"。精灵基本上是将一堆图像拼接到一个图像中(然后创建具有不同名称的CSS类,指定精灵的一部分在同一时间显示)。因此,您可以创建类似<div class="rook white"></div>
的东西来显示CSS精灵中的白色rook。然后,您将为每个棋子制作一个<div></div>
元素,并将它们放入HTML中,以便它们显示在棋盘上的进场方块中。然后,您可以使用JavaScript连接每个片段上的mousedown/mouseup事件。我可能会将棋盘格式以JSON格式存储在内存中,然后当用户试图移动棋子时,我会使用JavaScript验证移动。如果这是一个有效的移动,我会显示一个加载微调器,并通过JavaScript对ASP.NET代码执行Ajax请求。我会使用WebApi托管ASP.NET代码。您的WebApi控制器将接受具有新板状态的POST数据。然后,它可以计算计算机应该进行的移动,并以JSON的形式返回新的板状态。然后,您的JavaScript可以更新其内部JSON,也可以更新HTML接口。实现这样的双向绑定的一个简单方法是使用Angular.js或Knockout.js。如果你使用这两种框架,你可以避免用HTML设置初始板,而是用JSON设置板,并让它相应地创建相应的HTML。在板状态更新后,我会隐藏加载微调器。
如果你想学习,也许有必要弄清楚如何使用画布在客户端绘制这一切-同时更新一些html 5技能。这样你就可以实现漂亮的拖放式动画等…
- 表达式引擎扩展开发-向呈现的条目添加自定义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代码(国际象棋引擎)