Java Tic-Tac-Toe体系结构

Java Tic-Tac-Toe体系结构,java,Java,我现在脑子里有个大屁:) 我的计划是用Java构建一个简单的基于swing的tic-tac-toe应用程序。我曾计划该应用程序允许一名玩家、两名玩家本地和两名玩家远程选项。我有一个和两个玩家的本地版本工作得很好,但我正在努力让我的头脑围绕两个玩家的远程选项 值得注意的是,在Netbeans项目中,我将gui与逻辑放在一个单独的包中 我已经绞尽脑汁考虑了所有的选择 就像有一个客户机-服务器体系结构,但是如果客户机运行在不同于逻辑的pc上,那么这会无缘无故地降低单播放器和双播放器本地版本的速度 我认

我现在脑子里有个大屁:)

我的计划是用Java构建一个简单的基于swing的tic-tac-toe应用程序。我曾计划该应用程序允许一名玩家、两名玩家本地和两名玩家远程选项。我有一个和两个玩家的本地版本工作得很好,但我正在努力让我的头脑围绕两个玩家的远程选项

值得注意的是,在Netbeans项目中,我将gui与逻辑放在一个单独的包中

我已经绞尽脑汁考虑了所有的选择

  • 就像有一个客户机-服务器体系结构,但是如果客户机运行在不同于逻辑的pc上,那么这会无缘无故地降低单播放器和双播放器本地版本的速度

  • 我认为整个应用程序(gui+逻辑)应该分布在家庭无线网络上的各种pc之间。这样,玩家就可以玩一人和两人本地游戏,而不需要任何不必要的延迟时间,并查看是否还有其他人可以玩两人远程版本。如果我这样做的话,问题是谁的逻辑充当服务器-这是如何工作的

  • 选项2是否是实现这一目标的最佳/唯一方式,因为这不仅仅是一个网络游戏

    还有其他办法吗

    我知道做一个只有远程游戏选项的tic-tac-toe游戏是一个简单的客户端-服务器架构,但是在同一个应用程序中有一个玩家和一个网络版本是很棘手的

    谢谢


    Paul。

    从技术上讲,您可以在不使用实际服务器的情况下实现这一点——您可以将其设置为客户端/主机

    当用户想成为主机时,他会发送UDP广播数据包,其中包含关于什么ip以及他想玩什么游戏的信息。每个想加入的人都可以抓住这个包

    当用户想要加入时,他会收听广播数据包,并加入他收到的那个


    每个玩家都可以按照自己的逻辑,将自己的移动发送给其他玩家——另一方应该只检查移动是否合法——因为可能有人想入侵你的游戏:D

    应用程序应该安装在每个客户端上。对于远程2人模式,您应该实现自己的P2P协议,以将动作从一个玩家发送到另一个玩家,并跟踪游戏的发展

    简单地说,每个客户端都应该在本地拥有自己的游戏模型,当本地玩家“移动”或远程用户(通过协议)发送“移动”时,客户端会更新该模型


    当然,如果您需要跟踪分数、分数等统计信息,则需要一个中央服务器来存储这些信息。但实际的游戏应该在P2P模式下进行,不需要服务器。

    如果我妻子试图破解我的游戏,她就有大麻烦了:)。谢谢你们的帮助,有时候帮我把这些事情说清楚。