Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

JAVA - Using Linked List Define a Class Card that will store the face value of t

ID: 3685444 • Letter: J

Question

JAVA - Using Linked List

Define a Class Card that will store the face value of the Card and the Suit Value Include a minimun of 5 fields: Face Value as Integer Face Value as String Suit Value as Integer Suit Value as String Card number of 1 to 52 (or 0 to 51) Include a method to return the value of both for printing. I suggest you use toString(). Create a class for the Deck of Cards containing a set of operations that do the following: Initializes a Linked List that contains all 52 cards in order. Draws one card at a time from the Deck and removes the card from the deck. Checks to see if there are any cards in the deck. Keeps track of how many cards are left in the deck. Shuffles the deck. Print the deck for debugging purposes as you test your game., Initializes an empty hand of cards., Prints the hand of cards..

Explanation / Answer

Sample Node Class

public class Node
{

private Comparable data;

private Node next;

public Node(){

next = null;

}

public Node(Comparable c){

data = c;

next = null;

}
public Node(Comparable c, Node n){

data = c;

next = n;

}
public Comparable getData(){

return data;

}
public void setData(Comparable c){

data = c;

}

public Node getNext(){

return next;

}

public void setNext(Node n){

next = n;

}

}

Sample LinkedList class

public class LinkedList {
private Node first = null;
private Node current = null;
private Node pre = null;
public boolean isEmpty(){
return true;
}
public boolean contains(Comparable item){
current = first;
pre = null;
while ((current != null)&&(current.getData().compareTo(item) < 0)){
pre = current;
current = current.getNext();
}
return ((current != null) && (current.getData().compareTo(item) == 0));
}
public int size(){
int count = 0;
current = first;
pre = null;
while (current != null){
   pre = current;
current = current.getNext();
count++;
}
return count;
}
public void add(Comparable c){
Node temp = new Node(c);
if (pre == null){
first = temp;
}
else
{
pre.setNext(temp);
}
temp.setNext(current);
current = temp; }
public void remove(Comparable c){
if (pre == null){
first = first.getNext();
}else{
current = current.getNext();
if (pre == null){
first = current;
}else{
pre.setNext(current);
}
}
}
public void clear(){
first = null;
}
public void print(){
Node current = first;
while (current != null){
System.out.println(current.getData());
current = current.getNext();
}
}
}

Sample Card class
public class Card implements Comparable<Card> {
private int rank;
private int suit;
public Card(int suit, int rank){
this.rank = rank;
this.suit = suit;
}
public int getRank(){
return rank;
}
public int getSuit(){
return suit;
}
public String toString(){
switch(suit){
case 1:
switch(rank)
{
case 11: return "Jack of Hearts";
case 12: return "Queen of Hearts";
case 13: return "King of Hearts";
case 14: return "Ace of Hearts";
default: return rank + " of Hearts";
}
case 2:
switch(rank)
{
case 11: return "Jack of Diamonds";
case 12: return "Queen of Diamonds";
case 13: return "King of Diamonds";
case 14: return "Ace of Diamonds";
default: return rank + " of Diamonds";
}
case 3:
switch(rank)
{
case 11: return "Jack of Clubs";
case 12: return "Queen of Clubs";
case 13: return "King of Clubs";
case 14: return "Ace of Clubs";
default: return rank + " of Clubs";
}
case 4:

switch(rank)
{
case 11: return "Jack of Spades";
case 12: return "Queen of Spades";
case 13: return "King of Spades";
case 14: return "Ace of Spades";
default: return rank + " of Spades";
}
}//end Switch Statement
return null;
}
public int compareTo(Card a) {
if (this.rank < a.rank){
return -1;
}
if (this.rank > a.rank){
return 1;
}
if (this.rank == a.rank){
if (this.suit < a.suit){
return -1;
}

if (this.suit > a.suit){
return 1;
}
}
return 0;
}
}


Sample CardDeck class - a linked list of card
import java.util.Random;
public class CardDeck {
private LinkedList cards=new LinkedList();
private int numCards;
public void Deck(){
for (int a = 1; a <= 4; a++){
for (int b = 1; b <= 14; b++){
cards.add(new Card(a,B)/>);
}
}
public void drawFromDeck(){
Random rand = new Random();
int index = rand.nextInt(cards.size());
cards.remove(index);
numCards--;
}
public int getTotalCard(){
return cards.size();
}
}


Sample code for Main class
public class Main {
public static void main(String[] args){
LinkedList myList = new LinkedList();
CardDeck myCards = new CardDeck();
myCards.Deck();
myList.print();
}
}
note-the above code samples can help to answer the given question.