我正在创建一个服务器,客户可以在其中连接以玩猜谜游戏,他们也可以从中获得积分。目前我唯一的问题是,每当我的客户猜对数字时,它就会跳转到服务器并说“服务器为空”。我希望猜谜游戏一直持续到客户输入“再见”-给出了他/她的分数。这是我的代码,您能否指出我哪里出错了,并建议我如何实现我想要的。我认为问题出在协议(protocol)中,我可能只需要将while放在正确的位置,所以这是第一个。谢谢大家!补充一下,变量的命名很奇怪我知道它以前是一个敲敲笑话服务器协议(protocol)importjava.util.*;publicclassKKProtocol{intguess=0,number=
我使用HTML5WebSockets和java作为后端开发了一个类似breakout的游戏,并且最近将我的游戏部署在Glassfish服务器上,该服务器运行在20美元的Digitaloceandroplet(3GB内存,2cpu)上。在开发游戏时,我与IntelliJ和一位同事一起使用Netbeans,在我们的PC上运行的Glassfish服务器上部署我们的WAR文件时,一切都按预期工作。但是,当在droplet上部署完全相同的WAR文件时,球的移动速度似乎快了3倍。我尝试通过在虚拟机上安装与Droplet相同的Ubuntu服务器并执行与安装OpenJDK、Glassfish等相同的步
我正在用Java设计一个国际象棋游戏(没有AI,只有用户控制),并且还在习惯OOP。我有两个问题。除了Game、Cell、Piece和Board对象之外,我还想拥有一个Player对象。我的问题是,我真的需要吗?当然我不需要,但是这两种选择都被认为是更好的设计吗?一方面,似乎Player对于包含有关玩家棋子的信息很有用,并且应该包含诸如takeTurn()之类的方法。(对于我的实现,我还想跟踪所有可能的移动,所以我将有一个方法getAllMoves())。另一方面,Player不就是对现有数据的重组吗?每个Piece都已经表明它属于哪个玩家。由于我的游戏不包含AI,因此takeTurn
我正在使用java.awt.Robot在java中创建一个机器人。该机器人在浏览器上运行良好(我还使用MicrosoftWord对其进行了测试!)但是当我在游戏中运行它时,唯一可用的功能是mouseMove。我想构建一个只需为我按下键盘按钮的机器人。我实例化机器人类Robotr=newRobot();然后我做一些简单的事情:按z,按1,移动鼠标并单击鼠标右键。r.keyPress(KeyEvent.VK_Z);r.keyRelease(KeyEvent.VK_Z);r.keyPress(KeyEvent.VK_1);System.out.println("Press1button");
我想用线程创建一个[1人vsPC]游戏。我们的棋盘上有10*10个两种颜色的形状,如下所示:whenthePlayerclicksonBLUECircles,TheircolorturnsintoGray.attheothersidePCshouldturnallREDRectanglesintoGray.theWINNERiswhoClearsallhis/herownShapesEarlier.播放器的代码工作正常,但是,我的问题在于实现游戏的PC端,正如我在此article中所读到的我应该使用SwingWorker在GUI中实现线程。这是我第一次使用SwingWorkers,我不
在我的方法newminimax499中,我有一个利用内存和alphabeta修剪的minimax算法。该方法通常适用于3x3游戏,但是当我玩4x4游戏时,我会得到奇怪的、意想不到的计算机位置选择。他仍然从不输,但他似乎并不是为了赢而比赛。为了说明这里的问题,我们使用2个3x3和4x4游戏的场景。首先是一个3x3游戏的场景,其中玩家是X并迈出第一步:这还不错,事实上,这正是人们希望计算机执行的操作。现在来看一个4x4游戏的场景。同样,O是计算机,X启动:如您所见,计算机只是将Os一个接一个地按系统顺序排列,只有在它有可能获胜时才打破该顺序来阻止X。这是非常防守的打法,不像在3x3比赛中看
我正在编写一个简单的自上而下的太空游戏,并且正在扩展它以允许通过网络与多个玩家一起玩。我读了很多书,但这是我第一次这样做,我希望能得到一些关于选择合理设计的建议。我的GUI是使用Swing编写的。每秒30次,计时器触发,并根据内存中gameWorld对象中的数据重新绘制我的GUI(本质上是带有位置的船舶和射弹列表等)。游戏世界的物理更新也是使用这个计时器进行的。因此,对于单人游戏实现,一切都发生在EDT上,并且效果很好。现在,我有单独的线程处理来自其他玩家的传入数据包。我想根据这些数据包包含的内容更新我的gameWorld对象中的数据。我的问题是,我应该使用invokeLater来进行
当我在我的Java程序中使用运算符%时,我总是得到否定的答案。示例:-1%100给出-1。虽然这在数学上是正确的,但我想得到正常的数学解,即99。换句话说,我想得到最小的正整数解。在Java中是否有任何简单的解决方案(也许是我在数学中忽略的东西?——我找不到)?我还想澄清一下,如果API中有某些东西可以执行此操作,那么链接会很棒。 最佳答案 你能做到吗?intd=100;intx=-1%d;if(x这应该适用于任何正的d。 关于java-我如何处理非负面模组?,我们在StackOverf
我正在使用cardLayout更改“View”(此类有一个JFrame变量)。当用户点击新游戏按钮时,会发生这种情况:publicclassViewsextendsJFrameimplementsActionListener{privateJFrameframe;privateCardLayoutcl;privateJPanelcards;privateGamegame;publicvoidactionPerformed(ActionEvente){Stringcommand=e.getActionCommand();if(command.equals("Newgame")){cl.s
假设我正在实现我自己的拼字游戏版本。我目前有一个包含大量Squares的Board类。Square又由IBonus和Piece组成。奖励实现实际上是拼字游戏的常见奖励,但我可能会尝试添加一些新的和扭曲的奖励来为游戏增添趣味——这里的灵active是最重要的!经过一段时间的思考,我得出的结论是,要让IBonus实现正常工作,他们需要知道整个Board及其当前位置(在Board,所以它知道它在哪里,它可以检查与奖金在同一个方格中的棋子)。这让我印象深刻,因为它基本上需要了解大量信息。所以,我天真的实现是将Board作为参数传递给IBonus.calculate()方法,IBonus.cal