检查一个数组中的所有元素是否与另一个数组的所有元素具有相同的值



我正在尝试用Java制作一个小游戏swing,但我找不到解决问题的好方法。我有两个阵列,第一个是陨石坑物体

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

我想检查一下所有的板条箱是否都放在瓷砖上。我的意思是,哪个盒子在哪个瓷砖上并不重要,有几个盒子,几个瓷砖,每个盒子都应该放在一个瓷砖上,而哪个盒子在哪块瓷砖上也不重要。在游戏中,玩家走路和移动板条箱,这样他们的咕咕声就会改变。瓷砖坐标不变(如果有帮助的话)。这将是我的停车条件。当板条箱被放在瓷砖上时,游戏就结束了。我想在另一个循环中创建一个循环,然后检查每个对象的每个字段不是一个好的解决方案吗?那么,还有其他方法可以做到这一点吗?

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

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

最新更新