当前位置: 首页 > 知识库问答 >
问题:

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

柴昆杰
2023-03-14

我想用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

我想检查一下是否所有的板条箱都放在瓷砖上。我的意思是,不管哪个盒子在哪个瓷砖上,都有几个盒子,几个瓷砖,每个盒子都应该放在一块瓷砖上,不管哪个盒子在哪个瓷砖上。在游戏中,玩家行走并移动箱子,所以他们的坐标会发生变化。瓷砖坐标不变(如果可能有帮助的话)。这将是我的停止状态。当板条箱放在瓷砖上时,游戏就结束了。我想在另一个循环中做一个循环,然后检查每个对象的每个字段不是一个好的解决方案?那么还有其他方法吗?

共有1个答案

贺跃
2023-03-14

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

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

 类似资料:
  • 问题内容: 我试图遍历2个数组,外部数组则比另一个数组更长。它将循环遍历第一个,如果第二个数组不包含该int,它将返回false。但是我不知道该怎么做。这是我到目前为止所拥有的: 运行时出现此错误: 我想知道是否可以不使用嵌套循环(如上)来完成。我知道我做错了,如果有人可以在此问题上提供帮助,那就太好了。我也不确定要在Java文档中寻找什么类。 问题答案: 您可以检查较大的数组是否包含较小数组中的

  • 问题内容: Swift中是否有一个函数可以检查数组的所有元素是否具有相同的值?就我而言,它是一个type数组。我知道我可以使用一个简单的for循环对其进行迭代,我只是想知道是否内置了某些东西并且速度更快。 问题答案: 任何方法都必须遍历所有元素,直到找到另一个元素: 可以使用以下函数来代替显式循环: 如果数组元素是(例如),则可以从数组元素创建一个(从Swift 1.2开始可用),并检查它是否恰好

  • 如何检查两个数组(循环)是否具有相同顺序的相同元素。例如,让我们以数组[1,2,3,4]为例。 对于[2,3,4,1]、[3,4,1,2]、[4,1,2,3],测试应返回true,但对于[1,3,2,4]、[1,4,2,3]或[1,2,3,5]则不返回true。 我最初的方法是找到第一个匹配项——每个数组中一个相等的元素——并将这两个元素视为各自数组的初始元素,我逐个比较了数组的其余元素。 有没有

  • 问题内容: 我想了解 从另一个数组的所有元素过滤数组 的最佳方法。我尝试使用过滤器功能,但是如何给它提供要删除的值并没有解决。 就像是: 如果过滤器功能没有用,您将如何实现呢? 编辑:我检查了可能重复的问题,它可能对那些容易理解javascript的人有用。选中的答案很容易。 问题答案: 您可以使用函数的参数来避免将过滤器数组存储在全局变量中。

  • 我想了解从另一个数组的所有元素中筛选一个数组的最佳方法。我尝试了筛选函数,但我不知道如何给它我想要删除的值。 类似内容: 如果过滤器功能不是有用的,你将如何实现它? 编辑:我检查了可能重复的问题,对于那些容易理解javascript的人来说,它可能很有用。如果答案被检查为好,事情就会变得简单。

  • 例如,给了我一个数组,我必须检查数组中所有前面元素的总和是否大于下一个元素。 例如,我已经给出了(1,2,3)现在1 2不大于3,所以在这种情况下是错误的。再次给出(1,1,1)。现在 1 1 严格大于 1。