Hallo, ich bin fast mit dem Karten Spiel Spider fertig. Nachdem eine Karte gelegt wurde, gucke ich nach dem Spielstand, also ob das Spiel verloren, gewonnen ist oder noch läuft. Bei der methode isLost() habe ich Probleme. Ich habe es so gemacht, das ich alle Karten, die man nehmen könnte, überprüft habe und bei jeder geguckt habe, ob man sie irgendwo anlegen könnte. Wenn ja, dann würde true zurückgeliefert werden, andernfalls false. Allerdings könnte man einfach eine Karte von Karte zu Karte legen, wie ich in der Anlage zeige. Ich weiß erhlich gesagt 0, wie ich das machen soll. Habt ihr vielleicht eine Idee?
Code:
Code:
Java:
private static boolean isLost() {
Collection<Card> grabable = new ArrayList<>();
for (Collection<Card> cArr : stocks) {
for (Card c : cArr) {
if (c.isGrabable())
grabable.add(c);
}
}
for (Card c : grabable) {
for (ArrayList<Card> stock : stocks) { // stock is ein Array, der alle Karten Lists enthält.
if (stock == c.stock || stock == null || stock.isEmpty())
continue;
Card end = stock.get(stock.size() - 1);
if (end.isHangable(c))
return false;
}
}
return true;
}