【问题标题】:Checking if all elemnts of one array have same values as all elements of another array检查一个数组的所有元素是否与另一个数组的所有元素具有相同的值
【发布时间】:2014-01-03 03:47:33
【问题描述】:

我正在尝试用 Java 制作一个小游戏,swing,但我找不到解决问题的好方法。我有两个数组,第一个是 Crate 对象

public class Crate {
private static ImageIcon crate = new ImageIcon(Player.class.getResource("/Images/crate.jpg"));
private int x=0;
private int y=0;
private static int Xdisplacement;
private static int Ydisplacement;
private int id;
//getters and setters n stuff

第二个是 Tile 对象。

public class Tile {
private static ImageIcon tile = new ImageIcon(Player.class.getResource("/Images/tile.jpg"));
private int x=0;
private int y=0;
private boolean hasBox=false;
//getters and setters n stuff

我想检查是否所有的箱子都放在了瓷砖上。我的意思是哪个盒子放在哪个瓷砖上并不重要,盒子很少,瓷砖很少,每个盒子都应该放在一个瓷砖上,哪个盒子放在哪个瓷砖上并不重要。在游戏中,玩家四处走动并移动板条箱,因此他们的坐标会发生变化。瓷砖坐标不会改变(如果有帮助的话)。这将是我的停止条件。当板条箱放在瓷砖上时,游戏就结束了。 我想在另一个循环中创建一个循环然后检查每个对象的每个字段不是一个好的解决方案?那么还有其他方法吗?

【问题讨论】:

  • 可能是学习Design Pattern: visitor的好时机。
  • 谢谢,我肯定会的,因为我遇到的模式很少:)问题是我需要一个快速的解决方案。我做错了,但现在有效。谢谢每一位!

标签: java arrays algorithm swing


【解决方案1】:

完整的设计超出了 StackOverflow 的范围,但您可能希望使用 model-view-controller 模式,如图所示 here。答案包括一个非常简单的示例游戏,并引用了一个涉及平铺网格上玩家的更复杂的游戏。

附录:在移动后检查网格占用者的特殊情况下,引用的示例使用嵌套循环来检查当前状态与方法 RCModel#moveBots() 中的副本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-05
    • 2021-06-04
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    相关资源
    最近更新 更多