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