Comapring ImageView объекты в JavaFx
Я строю программу для игры "Фаза 10", которая состоит из 10 фаз, которые игрок должен пройти, чтобы выиграть. В этом методе я хочу проверить, правильно ли введены карты как "серия из 4" (серии состоят из четырех или более карт в числовом порядке. Карты не обязательно должны быть одинакового цвета, и для завершения можно использовать дикие карты). работает) вот что я сделал
//adding images of the cards to the program
Image b1 = new Image("Cards/1b.png");
ImageView oneBlue_1 = new ImageView(b1);
ImageView oneBlue_2 = new ImageView(b1);
//each card is added twice since the deck has two of each color/number combination
Image twoB = new Image("Cards/2b.png");
ImageView twoBlue_1 = new ImageView(twoB);
public HBox p1Run = new HBox();
//the hbox that will contain the run of 4 cards
public void checkRunOf4() {
//check 1, 2, 3, 4
if (!layout.p1Run.getChildren().isEmpty()) {
if ((layout.p1Run.getChildren().get(0).getId()) == cards.oneBlue_1.getId() || layout.p1Run.getChildren().get(0).getId() ==cards.oneBlue_1.getId() ||
layout.p1Run.getChildren().get(0).getId() == cards.oneRed_1.getId() || layout.p1Run.getChildren().get(0).getId()==cards.oneRed_2.getId() ||
layout.p1Run.getChildren().get(0).getId()==cards.oneGreen_1.getId() || layout.p1Run.getChildren().get(0).getId()==cards.oneGreen_2.getId() ||
layout.p1Run.getChildren().get(0).getId()==cards.oneYellow_1.getId() || layout.p1Run.getChildren().get(0).getId()==cards.oneYellow_2.getId()) {
System.out.println("1 is the first card");
}
}
}
Слишком много времени для добавления идентификатора для 108 карт, и даже если бы мы это сделали, этот код не сработал, другая идея - установить идентификатор для всех 108 карт, например, для набора карт setId("1"), и выполнить следующее
layout.p1Run.getChildren().get(0).getId()=="1"
// если true, то фаза завершена
Есть ли другой способ сравнить карты / объекты ImageView?