用java编写战舰 游戏吗_如何在Java中正确建模战舰游戏

我正在尝试为我的小组在大学里做的“游戏”项目创建战舰游戏.我之前从未真正使用过GUI,几乎所有输出都在Eclipse控制台中.

首先,我创建了一个GUI类,它实际上是我的“跑步者”类.它加载了一个JFrame.

我有第二个类GUIGrid,它为将要显示的两个游戏板设置一个维度,并使用嵌套for循环从GUICells创建网格.

这包含侦听器等以检测鼠标正在做什么并存储每个单元格的x和y坐标.我运行了一小段测试代码,因此我可以点击任一网格上的任意位置,弹出窗口会告诉我该单元格的确切位置.

除了这些类之外,我还有一个Ship类,它有五个子类用于ship和Player类,它们存储玩家的名字并创建一个Ship对象数组供他们使用.

最后,我有我的逻辑课程.我有一个GridLogic类和一个CellLogic类.前者使用嵌套for循环来创建CellLogic对象的2D数组.然后,CellLogic类存储关于单元是否受到攻击的坐标和信息等内容.

我的问题(最后!)是 – 这是建模系统的正确方法吗?当我查看CellLogic和CellGUI类时,它们似乎有相似的东西.此外,虽然我可以让GUI响应鼠标点击,但我真的很难将GUI连接到Logic.例如,我不知道如何将船只添加到网格上,然后存储哪些位置将船舶存储在2D阵列中.在没有发布大量代码的情况下,我希望有人能够告诉我,我是否至少在正确的轨道上,或者我是否将系统分开了太多.

解决方法:

虽然我认为分离听起来不错,但可以说得更清楚.使用MVC模式,您可以清楚地定义模型(船舶和网格),控制器(您的逻辑)和视图(绘制网格的jframe).

现在基本上,模型不知道其他任何东西,控制器知道视图和模型,视图知道如何绘制模型并调用控制器作为对用户输入的反应.即:用户点击,视图只调用控制器,其中包含坐标和发生的事件.此控制器现在修改网格并发出重绘.

所以在我的pov中,你可能不需要一个cellGUI类,只是一个绘制所有内容的视图(但是,如果你在cellgui类中存储x,y,你可以像这样建模……).但是你不需要一个celllogic课程.你需要一个知道的“更高”的控制器,如何修改整个网格以及发生了什么,如果已经存在某些东西等等.

标签:java,oop,swing

来源: https://codeday.me/bug/20190825/1722328.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值