gpt4 book ai didi

java - 使用 HTML/JS/AJAX/Java 开发基于浏览器的多人纸牌游戏

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:20:21 25 4
gpt4 key购买 nike

我目前有一个用 Java 开发和运行的多人纸牌游戏,它正在控制台中运行。该游戏在格式上与 Bridge and Spades 相似,只是减少了竞价过程。这是一个四人游戏,玩家轮流打一张牌。

我目前正在努力将其转换为基于浏览器的 Web 应用程序,并且正在添加 Spring MVC,并将 HTML、JavaScript 和 AJAX 用于 UI 以及与后端的通信。我很清楚我想采用这种方法来让单人游戏对抗 AI,允许用户打牌并使用 AJAX 调用从服务器获取接下来的三场比赛。

但是,我想知道我需要采取什么样的方法才能使其成为多人游戏。我看到过一些对“套接字编程”的引用,我对此并不熟悉,但它们似乎围绕着 Java applet,而不是基于浏览器的应用程序。

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

最佳答案

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

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

但是,如果您不想使用 HTML5 WebSockets,还有另一种技术可以模仿 JavaScript 中的 Sockets。也就是说,服务器可以与客户端对话。这种技术称为长轮询。客户端向服务器发送请求更新,如果没有可用的更新,服务器将保留请求直到有更新可用并将其发送回客户端,此时他们会发出另一个更新请求。 Simple Long Polling Example

另一种选择,如果您对 Java 非常熟悉,不妨查看 Google Web Toolkit . GWT 是 Java 的一个子集,它被编译成用于前端的 HTML 和 JavaScript,如果需要,它还可以创建一个服务器端 java 可执行文件,您可以将其与 TomCat 或其他 Web 服务一起使用。在此选项中,您有一些库允许您编写将被编译成长轮询 JavaScript 的套接字样式代码。

祝你好运!

关于java - 使用 HTML/JS/AJAX/Java 开发基于浏览器的多人纸牌游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13237330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com