我在项目中遇到了一些问题,并希望你能提供帮助.
我有一些像clojure函数
(def player-grid {:width {} :height {}})
(defn contains-coord [grid x y]
(if ((and (= ((grid :width) x) x) (= ((grid :height) y) y)))
true
false))
(defn add-to-grid [grid x y]
(assoc grid :width (into (grid :width) {x x})
:height (into (grid :height) {y y})))
Run Code Online (Sandbox Code Playgroud)
我还有一个html页面,其中有一个由复选框组成的10X10战舰游戏板.我试图找到一种方法来连接这两个,这样当我点击板放船时,坐标被发送到clojure函数.
基本上,我不知道如何将两者结合起来作为一个整体.
我真的很感激这方面的一些建议或例子,因为除了从头开始创建新的html页面之外我在使用compojure和hiccup时没有发现任何有用的东西.
哇 - 你试图连接两个不能连接在一起的东西(但是作为一个初学者,你无法知道它.)
首先,您需要确定您的clojure代码应该存在的位置 - 它应该存在于提供这些网页的Web服务器上,还是应该存在于用于播放战舰的计算机上的Web浏览器中?这两种可能性都有意义.
如果要在服务器上运行clojure代码,则必须在用户单击网格时向服务器写入消息.您必须将每个网格方块链接到一些javascript代码,然后将一条消息发送到您的服务器,并将其发送到名称为" http://battleshipgame.com/game/3243/grid?x=3&y=7 "的网址然后你会用的Compojure处理(和的Compojure路由处理,然后将链接到您的功能.)这样做被称为AJAX,很多人会使用jQuery的功能"点击"到网格空间连接到javascript和"后"将邮件发送到网址.
如果你想在客户端上运行的Clojure代码,那么你不能做到这一点,因为在用户的Web浏览器中运行没有Clojure的解释.不过,最近富希基发布ClojureScript可Clojure的代码转换为JavaScript的.使用ClojureScript,您可以在浏览器中完成您想要的操作.查看ClojureScript编译器中的twitter示例,了解如何执行此操作:https://github.com/clojure/clojurescript/tree/master/samples/twitterbuzz
正如您所看到的,这有点涉及,可能需要您的一些奉献精神来学习如何完成所有这些 - 祝你好运!
| 归档时间: |
|
| 查看次数: |
274 次 |
| 最近记录: |