X-Git-Url: https://git.wirehaze.ovh/solitaire.git/blobdiff_plain/626d75d21593081644437dc6fa7392d6990df782..refs/heads/main:/src/solitaire/Depot.java?ds=sidebyside diff --git a/src/solitaire/Depot.java b/src/solitaire/Depot.java index ad99aff..2e6e764 100644 --- a/src/solitaire/Depot.java +++ b/src/solitaire/Depot.java @@ -6,6 +6,26 @@ import java.util.Optional; import java.util.stream.Collectors; final class Depot { + private static boolean isValidNextCard(Card lastCard, Card nextCard) { + if (nextCard.getSuit().isRed() == lastCard.getSuit().isRed()) + return false; + + return lastCard.getRank().isSuccessorOf(nextCard.getRank()); + } + + private static boolean isValidRun(List run) { + Card prev = null; + + for (Card next : run) { + if (next.isHidden() || (prev != null && !isValidNextCard(prev, next))) + return false; + + prev = next; + } + + return true; + } + private final List cards; Depot(List cards) { @@ -16,11 +36,12 @@ final class Depot { this.cards.getLast().reveal(); } - private static boolean isValidNextCard(Card lastCard, Card nextCard) { - if (nextCard.getSuit().isRed() == lastCard.getSuit().isRed()) - return false; + @Override + public String toString() { + if (cards.isEmpty()) + return "< >"; - return lastCard.getRank().isSuccessorOf(nextCard.getRank()); + return cards.stream().map(String::valueOf).collect(Collectors.joining("\n")); } private boolean isValidPlacement(Card card) { @@ -30,17 +51,8 @@ final class Depot { return isValidNextCard(cards.getLast(), card); } - private static boolean isValidRun(List run) { - Card prev = null; - - for (Card next : run) { - if (next.isHidden() || (prev != null && !isValidNextCard(prev, next))) - return false; - - prev = next; - } - - return true; + boolean add(Card card) { + return add(List.of(card)); } boolean add(List run) { @@ -55,10 +67,6 @@ final class Depot { return true; } - boolean add(Card card) { - return add(List.of(card)); - } - Optional> remove(int size) { if (size < 1) throw new IllegalArgumentException("Size must be a positive integer"); @@ -79,12 +87,4 @@ final class Depot { return Optional.of(run); } - - @Override - public String toString() { - if (cards.isEmpty()) - return "< >"; - - return cards.stream().map(String::valueOf).collect(Collectors.joining("\n")); - } }