当前位置: 首页 > 知识库问答 >
问题:

用HTML/JS/Ajax/Java开发基于浏览器的多人纸牌游戏

党祖鹤
2023-03-14

我目前有一个多人卡牌游戏开发和工作在Java,它正在工作在控制台。游戏的形式与桥牌和黑桃相似,减去了竞价过程。它是一个四人游戏,玩家轮流出一张牌。

我目前正在将其转换为一个基于浏览器的webapp,并添加了spring MVC,使用HTML、JavaScript和AJAX作为UI和与后端的通信。我有一个很好的想法,我想要采取的方法,使这工作的单人对AI允许用户发挥他们的牌,并使用AJAX调用从服务器获得接下来的三个玩法。

然而,我想知道我需要采取什么样的方法来实现多人游戏。我看到过一些关于“套接字编程”的引用,我对此并不熟悉,但这些引用似乎都围绕着Java的小程序,而不是基于浏览器的应用程序。

基本上,我正在寻找一种方法来确保当一个用户开始一个游戏而其他人加入时,我如何确保他们连接到同一个游戏,并且能够看到彼此的玩法?我现在问这个问题之前,我有一个完整的UI开发为单人,因为我想避免一个完全的重新设计支持多人功能。

共有1个答案

长孙淳
2023-03-14

由于您正在创建一个多人游戏,您将需要至少有一个服务器供您的客户机(一个或多个)连接到。由于您希望使这个浏览器基于,所以您很可能需要自己的服务器(而不是让其中一个客户端作为服务器)。当用户加入游戏时,它将登录到该用户所在的服务器上。当玩家执行某个动作时,服务器处理该动作,然后向连接到该房间的每个其他客户端发送通知。此时客户端UI更新。

在过去,您不能使用纯HTML/JavaScript完成此操作,因为您不能打开套接字。这意味着服务器无法通知客户端。然而,在HTML5中,您应该能够使用WebSockets来实现您在中间使用服务器所做的事情。WebSocket API

但是,如果不想使用HTML5 WebSockets,还有一种模仿JavaScript中套接字的技术。也就是说,服务器可以与客户端进行对话。这种技术称为长轮询。客户机向服务器发送请求更新的请求,如果没有可用的更新,服务器将保留该请求,直到更新可用,并将其发送回客户机,在此点他们发出另一个更新请求。简单的长轮询示例

另一个选择,如果你非常熟悉Java,你可能希望查看谷歌网络工具包。GWT是Java的一个子集,它为前端编译成HTML和JavaScript,如果需要,它会创建一个服务器端的Java可执行文件,可以与TomCat或其他web服务一起使用。在这个选项中,您有几个库,允许您编写套接字风格的代码,这些代码将被编译为长轮询JavaScript。

祝你好运!

 类似资料:
  • 我试图用Java实现纸牌游戏“Skat” 规则: 有32张卡片。每张牌在游戏中只存在一次。 颜色有:梅花、黑桃、红心、钻石 价值观是:王牌,国王,王后,杰克,十,九,八,七 那些牌被洗牌了。有三名球员 第一轮:每位玩家有3张牌。然后将两张卡片放入Skat。 第二轮:每位玩家再获赠4张牌。 第三轮:每位玩家再获得3张牌。 期望输出:每个玩家的牌都被展示(每张牌都应该存在一次) 我的产量:钻石七(32

  • 我尝试在Java实施纸牌游戏“滑冰” 规则: 有32张牌。每张牌在游戏中只存在一次。 颜色是:梅花、黑桃、红心、钻石 这些值是:王牌、国王、王后、杰克、十、九、八、七 那些牌被洗牌了。有三个队员 第一回合:每位玩家获赠3张牌。然后将2张牌放入滑板中。 第二回合:每名玩家再获4张牌。 第三回合:每名玩家再获3张牌。 想要的输出:露出的每个玩家的牌(每张牌都要存在一次) 我的输出:钻石七(32次) 我

  • 我在做一个匹配的纸牌游戏,但我不明白如何实际做到这一点。我希望有人能帮我解释一下我能做些什么来解决这个问题。 以下是规格: 在一个对的纸牌游戏中,目标是翻出对匹配的纸牌。 https://en.wikipedia.org/wiki/contension_(游戏)以下是我们考虑的配对变化的规则。 在游戏开始时,有n张牌面朝下,其中n是4的倍数。每种卡片有4张,卡片上标有字母a、b、....例如,如果

  • 问题内容: 我正在开发一个Web应用程序,因为它可以访问下面的数据库,所以我需要能够从Safari,Chrome,Firefox和Internet Explorer中禁用开发人员工具,并在Firefox和所有类似的应用程序中禁用Firebug。有没有办法做到这一点? 注意:数据库提供的AJAX框架要求提供给数据库的任何内容都必须在可修改的Web参数中,并且返回的所有内容都必须使用JavaScrip

  • 本文向大家介绍如何基于js判断浏览器版本,包括了如何基于js判断浏览器版本的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了如何基于js判断浏览器版本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 浏览器类型判断 不考虑对 IE9 以下浏览器的判断 测试 判断IE浏览器的版本 包含edge,ie11,10,9,8,7,6,5,4 判断浏

  • 问题内容: 我正在从Firefox 3.5开始为新服务开发Web应用程序。 界面设计是无表的,仅使用divs + CSS和性能良好的做法。 现在,尽管与Safari兼容仅花费了很少的时间,但IE还是很痛苦。 我的问题是:有什么可以用来加速跨浏览器检查的吗?例如,我已经知道FF和IE之间的许多区别,但是使用特定工具可能会有所帮助。 你能建议一个吗? 谢谢, 猩红 问题答案: 跨浏览器开发 没有工具可