【发布时间】:2012-02-29 06:53:42
【问题描述】:
我正在使用 Sinatra 将我的跳棋游戏引擎(内置于 Ruby)扩展到网络。
我需要点击两次(往返方格)来构建完整的移动并返回正确的棋盘状态。我已经得到它来渲染正方形,每个看起来像:
<td id=<%= "A3" class= "open-square"><a href="/gameplay/A3></a></td>
如果为空并且
<td id=<%= "A3" class= "open-square"><a href="/gameplay/A3><img checker></a></td>
如果被占用(我已经去掉了 ERB,因为它在这里无关紧要)
我的路线如下所示:
get '/gameplay/:location' do
erb :gameplay
end
它在捕获单个点击方面做得很好,但我需要两次。我从Tom Anderson 那里得到了一个很好的建议:
跳棋有 64 个方格,每个方格处于三种状态之一,所以 - 不使用 cookie - 您可以在浏览器上使用 javascript 创建您的状态 - 64 个字符,例如 'br_bb___...' 黑色、红色和空白,然后将 64 个字符的字符串与 点击方块。然后服务器发回一个新的状态, 本地js用来显示方块。
但我认为这只有在我可以一键完成移动时才有效,但我做不到。我是这个东西的新手,显然很天真,无论你有什么建议都会受到赞赏。
【问题讨论】:
-
我认为最好的方法是先用javascript“预处理”这两次点击,然后在此基础上进行AJAX调用。如果它们作为不同的请求进入,则无法将服务器端的两次点击关联起来。
标签: javascript ruby session sinatra