mirror of
https://gitlab.com/arnekeller/kit-programmieren-ws1920-final2.git
synced 2024-11-08 18:00:37 +00:00
Correctly handle wrong start input
This commit is contained in:
parent
74cac150fa
commit
52ab63f578
@ -9,3 +9,4 @@ reset the game
|
|||||||
rollD8 5
|
rollD8 5
|
||||||
start creating,good,task,specifications,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
|
start creating,good,task,specifications,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
|
||||||
start with,less,cards
|
start with,less,cards
|
||||||
|
start wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,spider,spider,spider,spider,spider,snake,snake,snake,snake,snake,tiger,tiger,tiger,tiger,tiger,thunderstorm
|
||||||
|
@ -9,3 +9,4 @@ Error, invalid reset argument: none expected
|
|||||||
Error, not expecting dice roll
|
Error, not expecting dice roll
|
||||||
Error, invalid start argument value(s)
|
Error, invalid start argument value(s)
|
||||||
Error, invalid start arguments
|
Error, invalid start arguments
|
||||||
|
Error, invalid deck: missing or surplus cards
|
||||||
|
82
game_over_no_actions_input.txt
Normal file
82
game_over_no_actions_input.txt
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
start wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,spider,spider,spider,spider,spider,snake,snake,snake,snake,snake,tiger,tiger,tiger,tiger,tiger,thunderstorm
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
draw
|
||||||
|
rollD4 1
|
||||||
|
draw
|
||||||
|
rollD4 1
|
||||||
|
draw
|
||||||
|
rollD4 2
|
||||||
|
draw
|
||||||
|
rollD4 3
|
||||||
|
draw
|
||||||
|
rollD4 4
|
||||||
|
draw
|
||||||
|
rollD6 2
|
||||||
|
draw
|
||||||
|
rollD6 3
|
||||||
|
draw
|
||||||
|
rollD6 4
|
||||||
|
draw
|
||||||
|
rollD6 5
|
||||||
|
draw
|
||||||
|
rollD6 6
|
||||||
|
draw
|
||||||
|
rollD8 4
|
||||||
|
draw
|
||||||
|
rollD8 5
|
||||||
|
draw
|
||||||
|
rollD8 6
|
||||||
|
draw
|
||||||
|
rollD8 7
|
||||||
|
draw
|
||||||
|
rollD8 8
|
||||||
|
draw
|
||||||
|
list-resources
|
||||||
|
start wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,wood,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,plastic,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,metal,spider,spider,spider,spider,spider,snake,snake,snake,snake,snake,tiger,tiger,tiger,tiger,tiger,thunderstorm
|
82
game_over_no_actions_output.txt
Normal file
82
game_over_no_actions_output.txt
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
OK
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
wood
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
plastic
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
metal
|
||||||
|
spider
|
||||||
|
lose
|
||||||
|
spider
|
||||||
|
lose
|
||||||
|
spider
|
||||||
|
lose
|
||||||
|
spider
|
||||||
|
survived
|
||||||
|
spider
|
||||||
|
survived
|
||||||
|
snake
|
||||||
|
lose
|
||||||
|
snake
|
||||||
|
lose
|
||||||
|
snake
|
||||||
|
survived
|
||||||
|
snake
|
||||||
|
survived
|
||||||
|
snake
|
||||||
|
survived
|
||||||
|
tiger
|
||||||
|
lose
|
||||||
|
tiger
|
||||||
|
survived
|
||||||
|
tiger
|
||||||
|
survived
|
||||||
|
tiger
|
||||||
|
survived
|
||||||
|
tiger
|
||||||
|
survived
|
||||||
|
thunderstorm
|
||||||
|
EMPTY
|
||||||
|
OK
|
@ -28,6 +28,11 @@ class MainTest {
|
|||||||
cmpInOut("shack_test_input.txt", "shack_test_output.txt");
|
cmpInOut("shack_test_input.txt", "shack_test_output.txt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void gameOverNoActions() throws IOException {
|
||||||
|
cmpInOut("game_over_no_actions_input.txt", "game_over_no_actions_output.txt");
|
||||||
|
}
|
||||||
|
|
||||||
private void cmpInOut(String in, String out) throws IOException {
|
private void cmpInOut(String in, String out) throws IOException {
|
||||||
System.setIn(new ByteArrayInputStream(readFile(in)));
|
System.setIn(new ByteArrayInputStream(readFile(in)));
|
||||||
ByteArrayOutputStream output = new ByteArrayOutputStream();
|
ByteArrayOutputStream output = new ByteArrayOutputStream();
|
||||||
|
@ -1,17 +1,24 @@
|
|||||||
package edu.kit.informatik.model;
|
package edu.kit.informatik.model;
|
||||||
|
|
||||||
import edu.kit.informatik.Terminal;
|
|
||||||
import edu.kit.informatik.ui.InvalidInputException;
|
import edu.kit.informatik.ui.InvalidInputException;
|
||||||
|
|
||||||
import java.util.ArrayDeque;
|
import java.util.ArrayDeque;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Deque;
|
import java.util.Deque;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static edu.kit.informatik.model.Card.METAL;
|
||||||
|
import static edu.kit.informatik.model.Card.PLASTIC;
|
||||||
|
import static edu.kit.informatik.model.Card.SNAKE;
|
||||||
|
import static edu.kit.informatik.model.Card.SPIDER;
|
||||||
|
import static edu.kit.informatik.model.Card.THUNDERSTORM;
|
||||||
|
import static edu.kit.informatik.model.Card.TIGER;
|
||||||
|
import static edu.kit.informatik.model.Card.WOOD;
|
||||||
import static edu.kit.informatik.model.Item.AXE;
|
import static edu.kit.informatik.model.Item.AXE;
|
||||||
import static edu.kit.informatik.model.Item.BALLOON;
|
import static edu.kit.informatik.model.Item.BALLOON;
|
||||||
import static edu.kit.informatik.model.Item.CLUB;
|
import static edu.kit.informatik.model.Item.CLUB;
|
||||||
@ -32,10 +39,17 @@ public class CardGame {
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param cardStack order: 1st element = 1st to take
|
* @param cardStack order: 1st element = 1st to take
|
||||||
|
* @throws InvalidInputException if card stack has wrong distribution of cards
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public boolean start(Deque<Card> cardStack) {
|
public boolean start(Deque<Card> cardStack) throws InvalidInputException {
|
||||||
if (this.cardStack == null) {
|
if (this.cardStack == null) {
|
||||||
|
if (Collections.frequency(cardStack, WOOD) != 16 || Collections.frequency(cardStack, PLASTIC) != 16
|
||||||
|
|| Collections.frequency(cardStack, METAL) != 16 || Collections.frequency(cardStack, SPIDER) != 5
|
||||||
|
|| Collections.frequency(cardStack, SNAKE) != 5 || Collections.frequency(cardStack, TIGER) != 5
|
||||||
|
|| Collections.frequency(cardStack, THUNDERSTORM) != 1) {
|
||||||
|
throw new InvalidInputException("invalid deck: missing or surplus cards");
|
||||||
|
}
|
||||||
this.cardStack = cardStack;
|
this.cardStack = cardStack;
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@ -60,6 +74,9 @@ public class CardGame {
|
|||||||
clearResources();
|
clearResources();
|
||||||
items.remove(FIREPLACE);
|
items.remove(FIREPLACE);
|
||||||
}
|
}
|
||||||
|
if (cardStack.isEmpty() && getBuildableItems().isEmpty()) {
|
||||||
|
cardStack = null; // game over
|
||||||
|
}
|
||||||
return card;
|
return card;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,6 +137,9 @@ public class CardGame {
|
|||||||
awaitedDiceSize = 6;
|
awaitedDiceSize = 6;
|
||||||
minimumDiceRoll = 4;
|
minimumDiceRoll = 4;
|
||||||
}
|
}
|
||||||
|
if (cardStack != null && cardStack.isEmpty() && getBuildableItems().isEmpty()) {
|
||||||
|
cardStack = null; // game over
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user