From e5fa1c365767fbf9c402e165170aba1d5d564831 Mon Sep 17 00:00:00 2001 From: Alexander Hartung Date: Sun, 30 Jan 2022 16:10:00 +0100 Subject: [PATCH] Add Ruleset for AblageStack and Tests --- src/main/java/solitaer/AblageStack.java | 19 ++++++++++++--- src/test/java/solitaer/AblageStackTest.java | 26 +++++++++++++++++---- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/main/java/solitaer/AblageStack.java b/src/main/java/solitaer/AblageStack.java index 7cb9fbe..0e436b6 100644 --- a/src/main/java/solitaer/AblageStack.java +++ b/src/main/java/solitaer/AblageStack.java @@ -3,19 +3,32 @@ package solitaer; public class AblageStack extends BaseStack { private static final long serialVersionUID = 1L; + private Symbol sym; - public AblageStack(int _x, int _y) { + public AblageStack(int _x, int _y, Symbol _sym) { super(); super.setLocation(_x, _y); super.setSize(IMAGE_WIDTH, STACK_HIGHT); super.setOpaque(false); super.setLayout(null); + + this.sym = _sym; } @Override protected boolean cardCheck(Card _topStack, Card _playerCard) { - // TODO Auto-generated method stub - return true; + if(_topStack == null && _playerCard == null) { + return false; + } + if(_playerCard.getSymbol() != this.sym) { + return false; + } else if(_topStack == null) { + //nur ein Ass darf auf einen Leeren Stabel gelegt werden + return _playerCard.getNr() == 1; + } else { + return _topStack.getNr() == _playerCard.getNr() - 1; + } + } } diff --git a/src/test/java/solitaer/AblageStackTest.java b/src/test/java/solitaer/AblageStackTest.java index 4a9283e..6059ac1 100644 --- a/src/test/java/solitaer/AblageStackTest.java +++ b/src/test/java/solitaer/AblageStackTest.java @@ -12,16 +12,34 @@ class AblageStackTest { @ParameterizedTest @MethodSource("testAblageStackTestDaten") - void testRulesetStartStack(String msg, Card _stapel, Card _spieler, boolean _expectedResult) { - AblageStack stack = new AblageStack(0, 0); + void testRulesetAblageStack(String msg, Card _stapel, Card _spieler, boolean _expectedResult) { + AblageStack stack = new AblageStack(0, 0, Symbol.Kreuz); assertEquals(_expectedResult, stack.cardCheck(_stapel, _spieler), msg); } private static Stream testAblageStackTestDaten(){ return Stream.of( - Arguments.of("Ass-Kreuz auf Leeres Feld", + Arguments.of("Ass-Kreuz auf Leeres Kreuz-Feld", null, - new Card(1, Symbol.Kreuz, true), true) + null, false), + Arguments.of("Ass-Kreuz auf Leeres Kreuz-Feld", + null, + new Card(1, Symbol.Kreuz, true), true), + Arguments.of("02-Kreuz auf Leeres Kreuz-Feld", + null, + new Card(2, Symbol.Kreuz, true), false), + Arguments.of("Ass-Herz auf Leeres Kreuz-Feld", + null, + new Card(1, Symbol.Herz, true), false), + Arguments.of("05-Kreuz auf 04-Kreuz", + new Card(4, Symbol.Kreuz, true), + new Card(5, Symbol.Kreuz, true), true), + Arguments.of("05-Herz auf 04-Kreuz", + new Card(4, Symbol.Kreuz, true), + new Card(5, Symbol.Herz, true), false), + Arguments.of("Ass-Kreuz auf König-Kreuz", + new Card(13, Symbol.Kreuz, true), + new Card(1, Symbol.Kreuz, true), false) ); }