无法比较内存匹配游戏(Java)的图像

时间:2015-12-15 18:16:08

标签: java

我正在寻找一些关于如何实现这一目标的基本建议。我创建了一个图像数组列表(每个图像中有2个),但我无法确定如何确定2个图像是否匹配。因此,如果你们可以告诉我我缺少哪些信息,或者我将如何完成比较数组列表中两个图像的基本步骤,那就太棒了。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您的图片周围有自定义类,则可以通过多种不同的方式确定它们是否匹配。

所以,而不是这个:

ArrayList<BufferedImage> imageList;

你想要像

这样的东西
ArrayList<MemoryCard> cardList;

MemoryCard所在的地方:

BufferedImage image;
//some way to identify this card. 
//Most would use an enum, but you could assign unique ints, Strings, or some other 
//    Object as well if you wanted.

public boolean isMatching(MemoryCard otherCard)
{
    //if (identifierField == otherCard.identifierField)
    //    return true;
    return false;
}

然后,当他们拉出两张牌时,只需检查isMatching,看看他们是否匹配。

值得一提的是,Java中的每个Object都有equals方法,用于类似目的。 (查看“此”对象“”对象)。另一种方法可能是在您的类上重写此方法。但是,如果您不覆盖hashcode,这可能会影响ArrayList和其他集合中的某些功能,尤其是基于散列的实现。

如果您确实要覆盖equals,请确保您知道代码中其他位置可能会产生什么影响。 (谷歌搜索更多关于“Java equals”的信息会得到比我在这里更合适的更好的信息