Comapring ImageView объекты в JavaFx - PullRequest
0 голосов
/ 18 декабря 2018

Я строю программу для игры «Фаза 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?

...