Question: Creating a version of the card game SET in Java and I need help with the creation of the Deck class. Standard 81 card deck
Creating a version of the card game SET in Java and I need help with the creation of the Deck class. Standard 81 card deck and it needs to be shuffled. I have the Card class and a Triad class which I'm using to determine if the cards are a Set or not (below). Based off my classes could use help creating this Deck class thanks.
import com..set.Card.Color; import com..set.Card.Shading; import com..set.Card.Shape; import com..set.Card.Number;
public class Card { //public enum declarations public enum Shape{Oval, Squiggle, Diamond}; public enum Shading{Solid, Striped, Outlined}; public enum Number{One, Two, Three}; public enum Color{Red, Green, Purple}
// class number variable declaration Shading shading; Shape shape; Color color; Number number; //Constructor public Card(Shape shape, Color colors, Shading shading, Number number) { this.shape = shape; this.color = colors; this.shading = shading; this.number = number; }
public Shading getShading() { return shading; } public Shape getShape() { return shape; } public Color getColor() { return color; } public Number getNumber() { return number; } @Override public String toString() { String cardString = ""; cardString += shape +" "; cardString += color +" "; cardString += shading +" "; cardString += number; return cardString; } }
*******************************************************************************************************
import java.util.Arrays;
import com.DustinNichols.set.Card;
public class Triad { private Card[] cards = new Card[3];
public Triad(Card cardOne, Card cardTwo, Card cardThree) { cards[0] = cardOne; cards[1] = cardTwo; cards[2] = cardThree; }
private boolean allSameOrDifferent(Enum a, Enum b, Enum c) { if (a == b && b == c) return true; else if (a != b && a != c && b != c) return true; else return false; }
public boolean isSet() { if (allSameOrDifferent(cards[0].getShape(),cards[1].getShape(),cards[2].getShape()) && allSameOrDifferent(cards[0].getColor(),cards[1].getColor(),cards[2].getColor()) && allSameOrDifferent(cards[0].getShading(),cards[1].getShading(),cards[2].getShading()) && allSameOrDifferent(cards[0].getNumber(),cards[1].getNumber(),cards[2].getNumber())) return true; else return false; }
@Override public String toString() { String triadString = ""; String[] triadCards = new String[0]; for (Card card: cards){ if (triadCards.length == 0){ triadCards = card.toString().split(" "); for (int i = 0; i < triadCards.length; i ++) { triadCards[i] = String.format("%-20s",triadCards[i]); } } else { String [] cardStrings = card.toString().split(" "); for (int i = 0; i < cardStrings.length; i++){ triadCards[i] += " | " + String.format("%-20s",cardStrings[i]); } } } triadString += String.join(" ",triadCards); return triadString; }
public static void main(String[] args){ Card testCard = new Card(Card.Shape.Squiggle,Card.Color.Purple,Card.Shading.Striped,Card.Number.Three); Card testCard2 = new Card(Card.Shape.Diamond,Card.Color.Purple,Card.Shading.Striped,Card.Number.Three); Card testCard3 = new Card(Card.Shape.Diamond,Card.Color.Purple,Card.Shading.Striped,Card.Number.Three); Triad testTriad = new Triad(testCard, testCard2, testCard3); System.out.println(testTriad); System.out.println(testTriad.isSet());
} }
Never mind, sorry I figured it out, I dont need the answer, thankyou.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
