OK I'M HAVING A LOT OF TROUBLE HERE. I AM WONDERING WHY MY OUTPUT IS NOT WHAT IS EXPECTED FOR THE CARDS. THE OUTPUT IS " PLAYERONES CARD IS A .....". WHY ARE THERE ALL THESE WEIRD NUMBER LETTER COMBINATIONS FOR THE CARDS?? ALSO I TRIED TO MAKE A METHOD THAT RETURNS THE INDEX OF THE LARGEST VALUE IN THE ARRAY. THAT ISN'T WORKING EITHER. IT ALWAYS SAYS THE LARGEST VALUE IS 0. IF ANYBODY CAN HELP ME WITH ANY OF THIS I'D APPRECIATE IT.
package cardGame;
public class Deck {
private Card[] deck;
private int cardsUsed;
public Deck(){
deck = new Card[52];
int cardCt = 0;
for(int suit = 0; suit <= 3; suit++){
for(int value = 2; value <=14; value++){
deck[cardCt] = new Card(value, suit);
cardCt++;
}
}
cardsUsed = 0;
}
public void Shuffle(){
for(int i = 51; i > 0; i--){
int rand = (int)(Math.random()*(i+1));
Card temp = deck[i];
deck[i] = deck[rand];
deck[rand] = temp;
}
cardsUsed = 0;
}
public Card Deal(){
cardsUsed++;
return deck[cardsUsed - 1];
}
public int cardsLeft() {
return 52 - cardsUsed;
}
//prints the deck
/*public void PrintDeck(){
for(int i = 0; i < deck.length; i++){
System.out.println(deck[i]);
}
}
*/
}
//end class
package cardGame;
public class Card {
private static final int CLUBS = 0, DIAMONDS = 1, HEARTS = 2, SPADES = 3;
private static final int JACK = 11, QUEEN = 12, KING = 13, ACE = 14;
private int suit;
private int value;
public Card(){
value = 0;
suit = 0;
}
public Card(int val, int su){
value = val;
suit = su;
}
public String getSuitAsString(){
switch(suit){
case CLUBS: return "clubs";
case DIAMONDS: return "diamonds";
case HEARTS: return "hearts";
case SPADES: return "spades";
default: return "invalid";
}
}
public String getValueAsString(){
switch(value){
case 2: return "2";
case 3: return "3";
case 4: return "4";
case 5: return "5";
case 6: return "6";
case 7: return "7";
case 8: return "8";
case 9: return "9";
case 10: return "10";
case 11: return "jack";
case 12: return "queen";
case 13: return "king";
case 14: return "ace";
default: return "invalid";
}
}
}
//end class
package cardGame;
public class Hand {
private Card hand[];
public Hand(){
hand = new Card[17];
}
public void addCard(Card c, int i){
hand[i] = c;
}
public static int indexLargestElement(int[] playersHand, int noOfElements){
int i;
int maxI = 0;
for(i = 0; i < noOfElements; i++){
if(playersHand[maxI] < playersHand[i])
maxI = i;
}
return maxI;
}
}
//end class
package cardGame;
import java.util.Scanner;
public class GamePlay {
static Scanner keyboard = new Scanner(System.in);
public static void main(String[] args) {
Deck deck;
Hand playerOne;
Hand playerTwo;
Hand playerThree;
deck = new Deck();
playerOne = new Hand();
playerTwo = new Hand();
playerThree = new Hand();
System.out.println("Welcome to this card simulation. \n To shuffle the cards, type \"shuffle\" and press enter.");
String answer = keyboard.next();
String shuffle = "shuffle";
deck.Shuffle();
System.out.println("Cards are shuffled");
for(int i = 0; i < 17; i++){
playerOne.addCard(deck.Deal(), i);
playerTwo.addCard(deck.Deal(), i);
playerThree.addCard(deck.Deal(), i);
}
for(int i = 0; i < 17; i++){
System.out.println("player ones cards are " + playerOne);
System.out.println("player twos cards are " + playerTwo);
System.out.println("player threes cards are " + playerThree);
}
System.out.println("There is " + deck.cardsLeft() + " card left in the deck");
int[] test = {1,4,3,7,6,3,2,4,6,23,4,5,8,7,9,0,7};
test = new int[17];
System.out.println( "The largest value is " + Hand.indexLargestElement(test, 0));
}
}
//end main class
THIS IS WHAT MY OUTPUT LOOKS LIKE
Welcome to this card simulation.
To shuffle the cards, type "shuffle" and press enter.
shuffle
Cards are shuffled
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
player ones cards are cardGame.Hand@757aef
player twos cards are cardGame.Hand@d9f9c3
player threes cards are cardGame.Hand@9cab16
There is 1 card left in the deck
The largest value is 0


