import java.util.*;
import java.util.Random;
public class DeckOfCards
{
private Card deck[];
private final int TOTAL = 52;
private int SWAPS=999999;
private Random randomCard;
private int currentCard=0;
private int cardsUsed;
private int cardReset=0;
private int cardsDealt;
//------------------------------------------
//Constructor (Instantiates a deck)
//Cards are unshuffled
//------------------------------------------
public DeckOfCards ()
{
String face[] = { "Ace", "Deuce", "Three", "Four", "Five", "Six",
"Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King" };
String suit[] = { "Hearts", "Diamonds", "Clubs", "Spades" };
deck = new Card[TOTAL];
currentCard = 0;
randomCard = new Random();
for ( int index = 0; index<52; index++ )
{
deck[index ] = new Card ( face[ index % 13 ], suit[ index %4 ] );
}
cardReset=0;
}
//-------------------------------------
//Shuffle the deck of 52 cards.
//-------------------------------------
public void shuffle()
{
currentCard= 0;
int card2;
int card1;
for ( int firstCard = 0; firstCard < SWAPS; firstCard++ )
{
card2 = randomCard.nextInt( TOTAL );
Card temp = deck[card1];
deck[ card1 ] = deck[ card2 ];
deck[ card2 ] = temp;
}
}
//----------------------------
//Deals a card from the deck
//----------------------------
public Card dealCard()
{
if (cardsDealt == 52)
shuffle();
cardsDealt++;
return deck[cardsDealt - 1];
}
//---------------------------
//Cards left in the deck
//---------------------------
public int cardsLeft()
{
return 52 - cardsDealt;
}
}
Error:
cannot find symbol
symbol : constructor Card(java.lang.String,java.lang.String)
location: class Card
deck[index ] = new Card ( face[ index % 13 ], suit[ index %4 ] );
-Do I need to initiate a constructor?
import javax.swing.*;
import java.util.Random;
public class DeckOfCardsDriver
{
//----------------------------------------------------
//Main method that creates a new DeckofCards, shuffles
//the deck, and then deals two five-card playing hands
//for a game of poker.
//----------------------------------------------------
public static void main (String[] args)
{
DeckOfCards cards = new DeckOfCards ();
DeckOfCards.shuffle();
DeckOfCards.dealCard();
//------------------------------
// deals and print two five-cards
//-------------------------------
DeckOfCards cards = new DeckOfCards [10];
for(int index = 0; i<cards.length; index++)
{
System.out.println(cards[index].getFace() + " of " + cards[index].getSuitName());
System.out.println();
}
}
}
Errors:
java:24: non-static method shuffle() cannot be referenced from a static context
DeckOfCards.shuffle();
java:25: non-static method dealCard() cannot be referenced from a static context
DeckOfCards.dealCard();
java:30: cards is already defined in main(java.lang.String[])
DeckOfCards cards = new DeckOfCards [10];
java:30: incompatible types
found : DeckOfCards[]
required: DeckOfCards
DeckOfCards cards = new DeckOfCards [10];
java:32: cannot find symbol
symbol : variable i
location: class DeckOfCardsDriver
for(int index = 0; i<cards.length; index++)
java:32: cannot find symbol
symbol : variable length
location: class DeckOfCards
for(int index = 0; i<cards.length; index++)
java:34: array required, but DeckOfCards found
System.out.println(cards[index].getFace() + " of " + cards[index].getSuitName());
java:34: array required, but DeckOfCards found
System.out.println(cards[index].getFace() + " of " + cards[index].getSuitName());
DeckOfCards.java:44: cannot find symbol
symbol : constructor Card(java.lang.String,java.lang.String)
location: class Card
deck[index ] = new Card ( face[ index % 13 ], suit[ index %4 ] );
public class Card
{
public final static int ACE = 1;
public final static int TWO = 2;
public final static int THREE = 3;
public final static int FOUR = 4;
public final static int FIVE = 5;
public final static int SIX = 6;
public final static int SEVEN = 7;
public final static int EIGHT = 8;
public final static int NINE = 9;
public final static int TEN = 10;
public final static int JACK = 11;
public final static int QUEEN = 12;
public final static int KING = 13;
public final static int CLUBS = 1;
public final static int DIAMONDS = 2;
public final static int HEARTS = 3;
public final static int SPADES = 4;
private final static int NUM_FACES = 13;
private final static int NUM_SUITS = 4;
private int face, suit;
private String faceName, suitName;
//-----------------------------------------------------------------
// Creates a random card.
//-----------------------------------------------------------------
public Card ()
{
face = (int) (Math.random() * NUM_FACES) + 1;
setFaceName();
suit = (int) (Math.random() * NUM_SUITS) + 1;
setSuitName();
}
//-----------------------------------------------------------------
// Creates a card of the specified suit and face value.
//-----------------------------------------------------------------
public Card (int faceValue, int suitValue)
{
face = faceValue;
setFaceName();
suit = suitValue;
setSuitName();
}
//-----------------------------------------------------------------
// Sets the string representation of the face using its stored
// numeric value.
//-----------------------------------------------------------------
private void setFaceName()
{
switch (face)
{
case ACE:
faceName = "Ace";
break;
case TWO:
faceName = "Two";
break;
case THREE:
faceName = "Three";
break;
case FOUR:
faceName = "Four";
break;
case FIVE:
faceName = "Five";
break;
case SIX:
faceName = "Six";
break;
case SEVEN:
faceName = "Seven";
break;
case EIGHT:
faceName = "Eight";
break;
case NINE:
faceName = "Nine";
break;
case TEN:
faceName = "Ten";
break;
case JACK:
faceName = "Jack";
break;
case QUEEN:
faceName = "Queen";
break;
case KING:
faceName = "King";
break;
}
}
//-----------------------------------------------------------------
// Sets the string representation of the suit using its stored
// numeric value.
//-----------------------------------------------------------------
private void setSuitName()
{
switch (suit)
{
case CLUBS:
suitName = "Clubs";
break;
case DIAMONDS:
suitName = "Diamonds";
break;
case HEARTS:
suitName = "Hearts";
break;
case SPADES:
suitName = "Spades";
break;
}
}
//-----------------------------------------------------------------
// Determines if this card is higher than the passed card. The
// second parameter determines if aces should be considered high
// (beats a King) or low (lowest of all faces). Uses the suit
// if both cards have the same face.
//-----------------------------------------------------------------
public boolean isHigherThan (Card card2, boolean aceHigh)
{
boolean result = false;
if (face == card2.getFace())
{
if (suit > card2.getSuit())
result = true;
}
else
{
if (aceHigh && face == ACE)
result = true;
else
if (face > card2.getFace())
result = true;
}
return result;
}
//-----------------------------------------------------------------
// Determines if this card is higher than the passed card,
// assuming that aces should be considered high.
//-----------------------------------------------------------------
public boolean isHigherThan (Card card2)
{
return isHigherThan (card2, true);
}
//-----------------------------------------------------------------
// Returns the face (numeric value) of this card.
//-----------------------------------------------------------------
public int getFace ()
{
return face;
}
//-----------------------------------------------------------------
// Returns the suit (numeric value) of this card.
//-----------------------------------------------------------------
public int getSuit ()
{
return suit;
}
//-----------------------------------------------------------------
// Returns the face (string value) of this card.
//-----------------------------------------------------------------
public String getFaceName ()
{
return faceName;
}
//-----------------------------------------------------------------
// Returns the suit (string value) of this card.
//-----------------------------------------------------------------
public String getSuitName ()
{
return suitName;
}
//-----------------------------------------------------------------
// Returns the string representation of this card, including
// both face and suit.
//-----------------------------------------------------------------
public String toString ()
{
return faceName + " of " + suitName;
}
}

New Topic/Question
Reply




MultiQuote




|