Created by
Terms in this set (25)
// Changes to DifficultyCard process method
if (parsed) {
if (choiceAsInteger >= 1 && choiceAsInteger < 5) {
if (hand.getCardDescriptionAt(choiceAsInteger - 1).charAt(0) == 'K') {
Card cardToMove = hand.removeCard(hand.getCardNumberAt(choiceAsInteger - 1));
discard.addCard(cardToMove);
return;
} else {
Console.writeLine("Card selected is not a key, discarding 5 cards from the deck.");
}
} else {
Console.writeLine("Invalid card position, discarding 5 cards from the deck.");
}
}
// Changes made to Breakthrough getCardFromDeck method
Console.write("To deal with this you need to either lose a key ");
Console.write("(enter 1-4 to specify position of key) or (D)iscard five cards from the deck:> ");
String choice = Console.readLine();
if (parsed) {
if (choiceAsInteger >= 1 && choiceAsInteger < 5) {
if (hand.getCardDescriptionAt(choiceAsInteger - 1).charAt(0) == 'K') {
Card cardToMove = hand.removeCard(hand.getCardNumberAt(choiceAsInteger - 1));
discard.addCard(cardToMove);
return;
} else {
Console.writeLine("Card selected is not a key, discarding 5 cards from the deck.");
}
} else {
Console.writeLine("Invalid card position, discarding 5 cards from the deck.");
}
}
// Changes made to Breakthrough getCardFromDeck method
Console.write("To deal with this you need to either lose a key ");
Console.write("(enter 1-4 to specify position of key) or (D)iscard five cards from the deck:> ");
String choice = Console.readLine();
Create a new card child class for a Retrieve card. If a player draws a retrieve card they are able to retrieve one card from the discard pile and return it to their hand. There should be two retrieve cards in the deck. These should be added, like the difficulty cards, after the user draws their hand.
CREATE A NEW CLASS CALLED RETRIEVECARD ...
class RetrieveCard extends Card {
protected String cardType;
public RetrieveCard() {
super();
cardType = "Ret";
}
public RetrieveCard(int cardNo) {
cardType = "Ret";
cardNumber = cardNo;
}
@Override
public String getDescription() {
return cardType;
}
@Override
public void retrieve(CardCollection hand, CardCollection discard) {
Console.writeLine(discard.getCardDisplay());
int choiceAsInt = 0;
do {
Console.writeLine("Choose a card to return to your hand:> ");
String choice = Console.readLine();
try {
choiceAsInt = Integer.parseInt(choice);
} catch (Exception e) {
Console.writeLine("Invalid card position");
Console.writeLine();
}
} while (!(choiceAsInt > 0 && choiceAsInt <= discard.getNumberOfCards()));
hand.addCard(discard.removeCard(discard.getCardNumberAt(choiceAsInt - 1)));
}
}
IN THE BREAKOUT CLASS ADD THIS
addRetrieveCardsToDeck() {
for (int i = 0; i < 2; i++) {
deck.addCard(new RetrieveCard());
}
}
IN THE GETCARDFROMDECK METHOD:
} else if (deck.getCardDescriptionAt(0).equals("Ret")) {
Card currentCard = deck.removeCard(deck.getCardNumberAt(0));
Console.writeLine("Retrieve card found!");
currentCard.retrieve(hand, discard);
}
IN THE SETUP GAME METHOD:
addDifficultyCardsToDeck();
addRetrieveCardsToDeck();
deck.shuffle();
class RetrieveCard extends Card {
protected String cardType;
public RetrieveCard() {
super();
cardType = "Ret";
}
public RetrieveCard(int cardNo) {
cardType = "Ret";
cardNumber = cardNo;
}
@Override
public String getDescription() {
return cardType;
}
@Override
public void retrieve(CardCollection hand, CardCollection discard) {
Console.writeLine(discard.getCardDisplay());
int choiceAsInt = 0;
do {
Console.writeLine("Choose a card to return to your hand:> ");
String choice = Console.readLine();
try {
choiceAsInt = Integer.parseInt(choice);
} catch (Exception e) {
Console.writeLine("Invalid card position");
Console.writeLine();
}
} while (!(choiceAsInt > 0 && choiceAsInt <= discard.getNumberOfCards()));
hand.addCard(discard.removeCard(discard.getCardNumberAt(choiceAsInt - 1)));
}
}
IN THE BREAKOUT CLASS ADD THIS
addRetrieveCardsToDeck() {
for (int i = 0; i < 2; i++) {
deck.addCard(new RetrieveCard());
}
}
IN THE GETCARDFROMDECK METHOD:
} else if (deck.getCardDescriptionAt(0).equals("Ret")) {
Card currentCard = deck.removeCard(deck.getCardNumberAt(0));
Console.writeLine("Retrieve card found!");
currentCard.retrieve(hand, discard);
}
IN THE SETUP GAME METHOD:
addDifficultyCardsToDeck();
addRetrieveCardsToDeck();
deck.shuffle();
ADDINGV TGO PLAYGAME CLASS
case "S": {
Console.writeLine("Please input the filename");
String filename = Console.readLine();
saveGame(filename);
break;
}
ADD TO GET CHOICE THE OPTION TO SAVE ON TO THE END OF DISCARD AND USE:
private String getChoice() {
Console.writeLine();
Console.write("(D)iscard inspect, (U)se card, (S)ave Game:> ");
String choice = Console.readLine().toUpperCase();
return choice;
}
CREATE NEW CLASS SAVEGAME TO SAVE:
private boolean saveGame(String fileName) {
try {
BufferedWriter myStream = new BufferedWriter(new FileWriter(fileName));
myStream.append(score + "\n");
int i = 0;
int j = 0;
for (Challenge c : currentLock.getChallenges()) {
if (i > 0 && i < currentLock.getChallenges().size()) {
myStream.append(";");
}
for (String condition : c.getCondition()) {
if (c.getCondition().size() - 1 == j) {
myStream.append(condition);
} else {
myStream.append(condition + ",");
}
j++;
}
j = 0;
i++;
}
myStream.append("\n");
i = 0;
for (Challenge c : currentLock.getChallenges()) {
if (c.getMet()) {
if (currentLock.getChallenges().size() - 1 == i) {
myStream.append("Y");
} else {
myStream.append("Y;");
}
} else {
if (currentLock.getChallenges().size() - 1 == i) {
myStream.append("N");
} else {
myStream.append("N;");
}
}
i++;
}
myStream.append("\n");
i = 0;
for (Card c : hand.getCards()) {
if (hand.getCards().size() - 1 == i) {
myStream.append(c.getDescription() + " " + c.getCardNumber());
} else {
myStream.append(c.getDescription() + " " + c.getCardNumber() + ",");
}
i++;
}
i = 0;
myStream.append("\n");
for (Card c : sequence.getCards()) {
if (sequence.getCards().size() - 1 == i) {
myStream.append(c.getDescription() + " " + c.getCardNumber());
} else {
myStream.append(c.getDescription() + " " + c.getCardNumber() + ",");
}
i++;
}
i = 0;
myStream.append("\n");
for (Card c : discard.getCards()) {
if (discard.getCards().size() - 1 == i) {
myStream.append(c.getDescription() + " " + c.getCardNumber());
} else {
myStream.append(c.getDescription() + " " + c.getCardNumber() + ",");
}
i++;
}
i = 0;
myStream.append("\n");
for (Card c : deck.getCards()) {
if (deck.getCards().size() - 1 == i) {
myStream.append(c.getDescription() + " " + c.getCardNumber());
} else {
myStream.append(c.getDescription() + " " + c.getCardNumber() + ",");
}
i++;
}
myStream.close();
return true;
} catch (Exception e) {
Console.writeLine("File not loaded");
return false;
}
}
ADD A METHOD TO CARDCOLLECTION:
public List<Card> getCards()
{
return cards;
}
ADD A METHOD TO LOCK:
public List<Challenge> getChallenges()
{
return challenges;
}
case "S": {
Console.writeLine("Please input the filename");
String filename = Console.readLine();
saveGame(filename);
break;
}
ADD TO GET CHOICE THE OPTION TO SAVE ON TO THE END OF DISCARD AND USE:
private String getChoice() {
Console.writeLine();
Console.write("(D)iscard inspect, (U)se card, (S)ave Game:> ");
String choice = Console.readLine().toUpperCase();
return choice;
}
CREATE NEW CLASS SAVEGAME TO SAVE:
private boolean saveGame(String fileName) {
try {
BufferedWriter myStream = new BufferedWriter(new FileWriter(fileName));
myStream.append(score + "\n");
int i = 0;
int j = 0;
for (Challenge c : currentLock.getChallenges()) {
if (i > 0 && i < currentLock.getChallenges().size()) {
myStream.append(";");
}
for (String condition : c.getCondition()) {
if (c.getCondition().size() - 1 == j) {
myStream.append(condition);
} else {
myStream.append(condition + ",");
}
j++;
}
j = 0;
i++;
}
myStream.append("\n");
i = 0;
for (Challenge c : currentLock.getChallenges()) {
if (c.getMet()) {
if (currentLock.getChallenges().size() - 1 == i) {
myStream.append("Y");
} else {
myStream.append("Y;");
}
} else {
if (currentLock.getChallenges().size() - 1 == i) {
myStream.append("N");
} else {
myStream.append("N;");
}
}
i++;
}
myStream.append("\n");
i = 0;
for (Card c : hand.getCards()) {
if (hand.getCards().size() - 1 == i) {
myStream.append(c.getDescription() + " " + c.getCardNumber());
} else {
myStream.append(c.getDescription() + " " + c.getCardNumber() + ",");
}
i++;
}
i = 0;
myStream.append("\n");
for (Card c : sequence.getCards()) {
if (sequence.getCards().size() - 1 == i) {
myStream.append(c.getDescription() + " " + c.getCardNumber());
} else {
myStream.append(c.getDescription() + " " + c.getCardNumber() + ",");
}
i++;
}
i = 0;
myStream.append("\n");
for (Card c : discard.getCards()) {
if (discard.getCards().size() - 1 == i) {
myStream.append(c.getDescription() + " " + c.getCardNumber());
} else {
myStream.append(c.getDescription() + " " + c.getCardNumber() + ",");
}
i++;
}
i = 0;
myStream.append("\n");
for (Card c : deck.getCards()) {
if (deck.getCards().size() - 1 == i) {
myStream.append(c.getDescription() + " " + c.getCardNumber());
} else {
myStream.append(c.getDescription() + " " + c.getCardNumber() + ",");
}
i++;
}
myStream.close();
return true;
} catch (Exception e) {
Console.writeLine("File not loaded");
return false;
}
}
ADD A METHOD TO CARDCOLLECTION:
public List<Card> getCards()
{
return cards;
}
ADD A METHOD TO LOCK:
public List<Challenge> getChallenges()
{
return challenges;
}
Currently no error message is displayed if the user attempts to play two consecutive cards of the same tool type. Change the code to notify the user when their card has been disallowed due to this rule. In addition, leverage a score penalty of 1 point (reduce the user's score by one) and notify the user that this has occurred in all cases except where the user's score would then become negative in which case it should be omitted.
Other sets by this creator
Verified questions
Recommended textbook solutions

Information Technology Project Management: Providing Measurable Organizational Value
5th Edition•ISBN: 9781118898208Jack T. Marchewka346 solutions

Service Management: Operations, Strategy, and Information Technology
7th Edition•ISBN: 9780077475864James Fitzsimmons, Mona Fitzsimmons103 solutions

Introduction to Algorithms
3rd Edition•ISBN: 9780262033848 (4 more)Charles E. Leiserson, Clifford Stein, Ronald L. Rivest, Thomas H. Cormen726 solutions

Computer Organization and Design MIPS Edition: The Hardware/Software Interface
5th Edition•ISBN: 9780124077263 (3 more)David A. Patterson, John L. Hennessy220 solutions
Other Quizlet sets
1/4