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

a program that simulates the \"war\" card game that For example: 2. Requirements

ID: 3767491 • Letter: A

Question

a program that simulates the "war" card game that
For example: 2. Requirements:
--PROCESSING:
pre-game:
input from file warScoreData.txt, 2 lines at a time until you reach the end of file,
count each user,
input user name,
input user score.
find user with the highest score
if count = 0 and reached end of file then go play game
if count > 0 then output the user name with the highest score and their score

play game:.
For the computer player:
generate a random number from 2-14 to represent a card value for the computer
Output the computer's card's value, outputting 2-10 as that value, but output 11 as Jack, 12 as Queen, 13 as King, and 14 as Ace
generate a random number from 0-3 to represent a card's suit for the computer
Output the computer's card's suit, but output 0 as Spades, 1 as Diamonds, 2 as Hearts, and 3 as Clubs
For the human player:
generate a random number from 2-14 to represent a card value for the user
Output the user's card's value, outputting 2-10 as that value, but output 11 as Jack, 12 as Queen, 13 as King, and 14 as Ace
generate a random number from 0-3 to represent a card's suit for the user
Output the user's card's suit, but output 0 as Spades, 1 as Diamonds, 2 as Hearts, and 3 as Clubs
Determine the winner:
If the computer's card's value is LESS than the human's card's value, output "Human wins!"
If the computer's card's value is EQUAL TO the human's card's value, output "It's a tie."
If the computer's card's value is GREATER than the human's card's value, output "Computer wins!"

***always input each user's name and append output each user's name on one line in the file and their final score on the next line in the file.

For example:
Computer's card is a Jack of Spades
Human's card is a 10 of Clubs
Computer wins!

Replay if there is a tie and deal 2 new cards, one for the computer and one for the user.
Keep track of the score: number of computer wins and number of user wins.

Use a structure specification named PlayingCard, with two whole number data members named suit
and value. Create two PlayingCard records, one for the human player
and one for the computer player.
Write a void function to take a PlayingCard object as a parameter, and output its value and suit, like this: Jack of
Clubs.
Write a value-returning function named getYesOrNo, to prompt the user for the "Continue? [Y/N]"
input. It needs no parameters. It should include the validation loop, moved into it from main. It can
return either an int, char, or bool -- your choice.

For example:
Computer's card is a 2 of Diamonds
Human's card is a 8 of Hearts
--<< Human wins! >>--
Computer wins: 0, Human wins: 1

Continue? [Y/N] x
Continue? [Y/N] 100
Continue? [Y/N] y

Computer's card is a 2 of Spades
Human's card is a Ace of Hearts
--<< Human wins! >>--
Computer wins: 0, Human wins: 2

Continue? [Y/N] y

Computer's card is a Queen of Diamonds
Human's card is a 7 of Diamonds
--<< Computer wins! >>--
Computer wins: 1, Human wins: 2

Continue? [Y/N] Q
Continue? [Y/N] n

What is your name? John

***output John on one line at the end of the warScoreData.txt file and John's final score on the next line at the end of the file.

Explanation / Answer


// import needed classes and packages
import java.util.Scanner;
import java.text.NumberFormat;
import java.io.IOException;
import java.util.Locale;
import java.text.DecimalFormat;

public class Card
{public static void main(String[] args) throws IOException
   {
  
   Card heartCard;
   Card diamondCard;
   Card spadeCard;
   Card clubCard;
   int countingPlays = 0;


   Scanner keyboard = new Scanner(System.in);

  
   CardPile deckOfCards = new CardPile();

  
   CardPile player1Pile = new CardPile();

  
   CardPile player2Pile = new CardPile();

  
   for(int i = 2; i < 15; i++)
   {
       char heart = 'u0003';
       char diamond ='u0004';
       char spade = 'u0005';
       char club = 'u0006';

       deckOfCards.add(heartCard = new Card(heart, i));
       deckOfCards.add(diamondCard = new Card(diamond, i));
       deckOfCards.add(spadeCard = new Card(spade, i));
       deckOfCards.add(clubCard = new Card(club, i));
   }

  
   System.out.println("Deck Of Cards: " + deckOfCards);


   deckOfCards.shuffle();

  
   System.out.println("Deck of Cards after shuffled: " + deckOfCards);

  
   System.out.println("" + deckOfCards.size());

  
   for(int i = 0; i < 26; i++)
   {
       player1Pile.add(deckOfCards.getTopCard());
       player2Pile.add(deckOfCards.getTopCard());
   }

  
   System.out.println("Deck of Cards after removing cards into two piles: " + deckOfCards);
   System.out.println("Player 1's Cards: " + player1Pile);
   System.out.println("Player 2's Cards: " + player2Pile);

  
   System.out.println("" + player1Pile.size());
   System.out.println("" + player2Pile.size());


   System.out.println("Lets have a war!!!");
   System.out.println(" Player 1 Player 2");
   System.out.println(" ----------------");

  
   try
   {  
       do
       {
           Card player1RemovedTopCard = player1Pile.getTopCard();
           Card player2RemovedTopCard = player2Pile.getTopCard();

          
           if(player1RemovedTopCard.compareTo(player2RemovedTopCard) < player2RemovedTopCard.compareTo(player1RemovedTopCard))
           {
               System.out.println("Player 1: " + player1RemovedTopCard + " Player 2: " + player2RemovedTopCard);
               System.out.println("Player 2 is the Winner");
               player2Pile.add(player1RemovedTopCard);
               player2Pile.add(player2RemovedTopCard);
               System.out.println("Player 1 has: " + player1Pile.size() + " cards left.");
               System.out.println("Player 2 has:" + player2Pile.size() + " cards left.");
               System.out.println(" ");
               keyboard.nextLine();
           }
          
           else if(player1RemovedTopCard.compareTo(player2RemovedTopCard) > player2RemovedTopCard.compareTo(player1RemovedTopCard))
           {
               System.out.println("Player 1: " + player1RemovedTopCard + " Player 2: " + player2RemovedTopCard);
               System.out.println("Player 1 is the Winner");
               player1Pile.add(player1RemovedTopCard);
               player1Pile.add(player2RemovedTopCard);
               System.out.println("Player 1 has: " + player1Pile.size() + " cards left.");
               System.out.println("Player 2 has:" + player2Pile.size() + " cards left.");
               System.out.println(" ");
               keyboard.nextLine();
           }
          
           else
           {
               System.out.println("Player 1: " + player1RemovedTopCard + " Player 2: " + player2RemovedTopCard);
               System.out.println("WAR!!!!!!!");
              
               if(player1Pile.size() == 1 || player2Pile.size() == 1)
               {
                   Card player1RemovedTopCard2 = player1Pile.getTopCard();

                   Card player2RemovedTopCard2 = player2Pile.getTopCard();
                   System.out.println("Player1's 2nd card is: " + player1RemovedTopCard2 + " Player2's 2nd card is: " + player2RemovedTopCard2);
                   if(player1RemovedTopCard2.compareTo(player2RemovedTopCard2) > player2RemovedTopCard2.compareTo(player1RemovedTopCard2))
                   {
                       System.out.println("Player 1 is the winner of the War! ");
                       player1Pile.add(player1RemovedTopCard);
                       player1Pile.add(player1RemovedTopCard2);
                       player1Pile.add(player2RemovedTopCard);
                       player1Pile.add(player2RemovedTopCard2);
                       System.out.println("Player 1 has: " + player1Pile.size() + " cards left.");
                       System.out.println("Player 2 has: " + player2Pile.size() + " cards left.");
                       System.out.println(" ");
                       keyboard.nextLine();
                   }
                   else if(player1RemovedTopCard2.compareTo(player2RemovedTopCard2) < player2RemovedTopCard2.compareTo(player1RemovedTopCard2))
                   {
                       System.out.println("Player 2 is the winner of the War! ");
                       player2Pile.add(player1RemovedTopCard);
                       player2Pile.add(player1RemovedTopCard2);
                       player2Pile.add(player2RemovedTopCard);
                       player2Pile.add(player2RemovedTopCard2);
                       System.out.println("Player 1 has: " + player1Pile.size() + " cards left.");
                       System.out.println("Player 2 has: " + player2Pile.size() + " cards left.");
                       System.out.println(" ");
                       keyboard.nextLine();
                    }
                    else
                    {
                       if(player2Pile.size() == 0)
                       {
                           player1Pile.add(player2RemovedTopCard2);
                           player1Pile.add(player2RemovedTopCard);
                           player1Pile.add(player1RemovedTopCard2);
                           player1Pile.add(player1RemovedTopCard);
                       }
                       else
                       {
                           player2Pile.add(player2RemovedTopCard2);
                           player2Pile.add(player2RemovedTopCard);
                           player2Pile.add(player1RemovedTopCard2);
                           player2Pile.add(player1RemovedTopCard);
                       }
                   }
               }
              
               else if(player1Pile.size() == 2 || player2Pile.size() == 2)
               {
                   Card player1RemovedTopCard2 = player1Pile.getTopCard();
                   Card player1RemovedTopCard3   = player1Pile.getTopCard();

                   Card player2RemovedTopCard2 = player2Pile.getTopCard();
                   Card player2RemovedTopCard3   = player2Pile.getTopCard();

                   do
                   {
                       System.out.println("Player1's 3rd card is: " + player1RemovedTopCard3 + " Player2's 3rd card is: " + player2RemovedTopCard3);
                       if(player1RemovedTopCard3.compareTo(player2RemovedTopCard3) > player2RemovedTopCard3.compareTo(player1RemovedTopCard3))
                       {
                           System.out.println("Player 1 is the winner of the War! ");
                           player1Pile.add(player1RemovedTopCard);
                           player1Pile.add(player1RemovedTopCard2);
                           player1Pile.add(player1RemovedTopCard3);
                           player1Pile.add(player2RemovedTopCard);
                           player1Pile.add(player2RemovedTopCard2);
                           player1Pile.add(player2RemovedTopCard3);
                           System.out.println("Player 1 has: " + player1Pile.size() + " cards left.");
                           System.out.println("Player 2 has: " + player2Pile.size() + " cards left.");
                           System.out.println(" ");
                           keyboard.nextLine();
                       }
                       else if(player1RemovedTopCard3.compareTo(player2RemovedTopCard3) < player2RemovedTopCard3.compareTo(player1RemovedTopCard3))
                       {
                           System.out.println("Player 2 is the winner of the War! ");
                           player2Pile.add(player1RemovedTopCard);
                           player2Pile.add(player1RemovedTopCard2);
                           player2Pile.add(player1RemovedTopCard3);
                           player2Pile.add(player2RemovedTopCard);
                           player2Pile.add(player2RemovedTopCard2);
                           player2Pile.add(player2RemovedTopCard3);
                           System.out.println("Player 1 has: " + player1Pile.size() + " cards left.");
                           System.out.println("Player 2 has: " + player2Pile.size() + " cards left.");
                           System.out.println(" ");
                           keyboard.nextLine();
                        }
                   
                    }while(player1RemovedTopCard3.compareTo(player2RemovedTopCard3) == player2RemovedTopCard3.compareTo(player1RemovedTopCard3));
               }
              
               else if(player1Pile.size() == 3 || player2Pile.size() == 3)
               {
                   Card player1RemovedTopCard2 = player1Pile.getTopCard();
                   Card player1RemovedTopCard3   = player1Pile.getTopCard();
                   Card player1RemovedTopCard4 = player1Pile.getTopCard();

                   Card player2RemovedTopCard2 = player2Pile.getTopCard();
                   Card player2RemovedTopCard3   = player2Pile.getTopCard();
                   Card player2RemovedTopCard4 = player2Pile.getTopCard();

                   do
                   {
                       System.out.println("Player1's fourth card is: " + player1RemovedTopCard4 + " Player2's fourth card is: " + player2RemovedTopCard4);
                       if(player1RemovedTopCard4.compareTo(player2RemovedTopCard4) > player2RemovedTopCard4.compareTo(player1RemovedTopCard4))
                       {
                           System.out.println("Player 1 is the winner of the War! ");
                           player1Pile.add(player1RemovedTopCard);
                           player1Pile.add(player1RemovedTopCard2);
                           player1Pile.add(player1RemovedTopCard3);
                           player1Pile.add(player1RemovedTopCard4);
                           player1Pile.add(player2RemovedTopCard);
                           player1Pile.add(player2RemovedTopCard2);
                           player1Pile.add(player2RemovedTopCard3);
                           player1Pile.add(player2RemovedTopCard4);
                           System.out.println("Player 1 has: " + player1Pile.size() + " cards left.");
                           System.out.println("Player 2 has: " + player2Pile.size() + " cards left.");
                           System.out.println(" ");
                           keyboard.nextLine();
                       }
                       else if(player1RemovedTopCard4.compareTo(player2RemovedTopCard4) < player2RemovedTopCard4.compareTo(player1RemovedTopCard4))
                       {
                           System.out.println("Player 2 is the winner of the War! ");
                           player2Pile.add(player1RemovedTopCard);
                           player2Pile.add(player1RemovedTopCard2);
                           player2Pile.add(player1RemovedTopCard3);
                           player2Pile.add(player1RemovedTopCard4);
                           player2Pile.add(player2RemovedTopCard);
                           player2Pile.add(player2RemovedTopCard2);
                           player2Pile.add(player2RemovedTopCard3);
                           player2Pile.add(player2RemovedTopCard4);
                           System.out.println("Player 1 has: " + player1Pile.size() + " cards left.");
                           System.out.println("Player 2 has: " + player2Pile.size() + " cards left.");
                           System.out.println(" ");
                           keyboard.nextLine();
                        }
                   
                    }
                    while(player1RemovedTopCard4.compareTo(player2RemovedTopCard4) == player2RemovedTopCard4.compareTo(player1RemovedTopCard4));
               }
              
               else if(player1Pile.size() >= 4 || player2Pile.size() >= 4)
               {
                   Card player1RemovedTopCard2 = player1Pile.getTopCard();
                   Card player1RemovedTopCard3   = player1Pile.getTopCard();
                   Card player1RemovedTopCard4 = player1Pile.getTopCard();
                   Card player1RemovedTopCard5 = player1Pile.getTopCard();

                   Card player2RemovedTopCard2 = player2Pile.getTopCard();
                   Card player2RemovedTopCard3   = player2Pile.getTopCard();
                   Card player2RemovedTopCard4 = player2Pile.getTopCard();
                   Card player2RemovedTopCard5 = player2Pile.getTopCard();
                   do
                   {
                       System.out.println("Player1's 5th card is: " + player1RemovedTopCard5 + " Player2's 5th card is: " + player2RemovedTopCard5);
                       if(player1RemovedTopCard5.compareTo(player2RemovedTopCard5) > player2RemovedTopCard5.compareTo(player1RemovedTopCard5))
                       {
                           System.out.println("Player 1 is the winner of the War! ");
                           player1Pile.add(player1RemovedTopCard);
                           player1Pile.add(player1RemovedTopCard2);
                           player1Pile.add(player1RemovedTopCard3);
                           player1Pile.add(player1RemovedTopCard4);
                           player1Pile.add(player1RemovedTopCard5);
                           player1Pile.add(player2RemovedTopCard);
                           player1Pile.add(player2RemovedTopCard2);
                           player1Pile.add(player2RemovedTopCard3);
                           player1Pile.add(player2RemovedTopCard4);
                           player1Pile.add(player2RemovedTopCard5);
                           System.out.println("Player 1 has: " + player1Pile.size() + " cards left.");
                           System.out.println("Player 2 has: " + player2Pile.size() + " cards left.");
                           System.out.println(" ");
                           keyboard.nextLine();
                        }
                       else if(player1RemovedTopCard5.compareTo(player2RemovedTopCard5) < player2RemovedTopCard5.compareTo(player1RemovedTopCard5))
                       {
                           System.out.println("Player 2 is the winner of the War! ");
                           player2Pile.add(player1RemovedTopCard);
                           player2Pile.add(player1RemovedTopCard2);
                           player2Pile.add(player1RemovedTopCard3);
                           player2Pile.add(player1RemovedTopCard4);
                           player2Pile.add(player1RemovedTopCard5);
                           player2Pile.add(player2RemovedTopCard);
                           player2Pile.add(player2RemovedTopCard2);
                           player2Pile.add(player2RemovedTopCard3);
                           player2Pile.add(player2RemovedTopCard4);
                           player2Pile.add(player1RemovedTopCard5);
                           System.out.println("Player 1 has: " + player1Pile.size() + " cards left.");
                           System.out.println("Player 2 has: " + player2Pile.size() + " cards left.");
                           System.out.println(" ");
                           keyboard.nextLine();
                        }
                  
                   }while(player1RemovedTopCard5.compareTo(player2RemovedTopCard5) == player2RemovedTopCard5.compareTo(player1RemovedTopCard5));
               }
           }
          
           countingPlays++;
           if(countingPlays >= 10)
           {
               player1Pile.shuffle();
               player2Pile.shuffle();
               System.out.println("Cards Shuffled");
               countingPlays = 0;
           }
      
       }while(player1Pile.size() > 0 || player2Pile.size() > 0);
   }

  
   catch (IndexOutOfBoundsException theException)
       {
           if(player1Pile.size() == 0)
           {
               System.out.println("Winner is Player 2" );
           }
           else
           System.out.println("Winner is Player 1" );

       }

   }


import java.util.*;

public class CardPile
{
  
   private ArrayList<Card> pile;
   public CardPile()
   {
       pile = new ArrayList<Card>();
   }

   public void add(Card aCard)
   {
       pile.add(aCard);
   }

  
   public Card getTopCard()
   {
       return pile.remove(0);
   }

  
   public String toString()
   {
       return pile.toString();
   }

  
   public int size()
   {
       return pile.size();
   }

  
   public void clear()
   {
       pile.clear();
   }


   public void shuffle()
   {
       Random rand = new Random();

       for (int i=0; i<2000; i++)  
       {
           if (size() > 0)          
           {
               Card topCard = pile.remove(0);                    
               int newPosition = rand.nextInt(pile.size());  
               pile.add(newPosition, topCard);                  
           }
       }
   }
}

import java.util.*;

public class Card implements Comparable
{
  
   private int rank;
   private char suit;

  
   public Card()
   {
       suit = 'u0003';
       rank = 0;
   }

  
   public Card(char theSuit, int theRank)
   {
       this.suit = theSuit;
       this.rank = theRank;
   }

  
   public int getRank()
   {
       return rank;
   }

  
   public char getSuit()
   {
       return suit;
   }

  
   public String toString()
   {
      
       if(rank == 11)
       {
           return suit + "" + 'J';
       }
       else if(rank == 12)
       {
           return suit + "" + 'Q';
       }
       else if(rank == 13)
       {
           return suit + "" + 'K';
       }
       else if(rank == 14)
       {
           return suit + "" + 'A';
       }
       else
       return suit + "" + rank;
   }

  
   public int compareTo(Object anotherCard)
   {
       Card another = (Card)anotherCard;
       if(this.rank > another.rank)
       {
           return 1;
       }
       else if(this.rank < another.rank)
       {
           return -1;
       }
       else
           return 0;
   }


}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at drjack9650@gmail.com
Chat Now And Get Quote