Hi, I'm getting a syntax error when I'm trying to instansiate a card object with this constructor:
Card card = new Card(((Card)card).value, ((Card)card).suit);
C:\java\War>javac TryDeal.java
TryDeal.java:13: variable card might not have been initialized
Card card = new Card(((Card)card).value, ((Card)card).suit);
^
1 error
Here are my classes :
class TryDeal
{
public static void main(String[] args)
{
Card card = new Card(((Card)card).value, ((Card) card).suit);
CardDeck deck = new CardDeck();
deck.shuffle();
Hand myHand = deck.dealHand(5);
Hand yourHand = deck.dealHand(5);
Card myCard = (Card)myHand.getCard();
Card yourCard = (Card)yourHand.getCard();
Hand returnHand = myCard.addCardBackInHand(card);
System.out.println("\nYour hand is"+yourCard);
System.out.println("\nMy hand is"+myCard);
System.out.println("\nMy return hand is"+returnHand);
}
}
class Card extends Hand implements Comparable
{
public Card(int value, int suit) throws IllegalArgumentException
{
if(value >= ACE && value <= KING)
this.value = value;
else
throw new IllegalArgumentException("Invalid card value"
if(suit >= HEARTS && suit <= SPADES)
this.suit = suit;
else
throw new IllegalArgumentException("Invalid suit"
}
public int compareTo(Object card)
{
if(this.suit != ((Card)card).suit)
return suit < ((Card)card).suit ? -1: 1;
else
if(this.value == ((Card)card).value)
return 0;
else
return value < ((Card)card).value ? -1 : 1;
}
public Card addCardBackInHand(Card card)
{
return (Card)hand.push(card);
}
public String toString()
{
String cardStr;
switch(value)
{
case ACE: cardStr = "A";
break;
case JACK: cardStr = "J";
break;
case QUEEN: cardStr = "Q";
break;
case KING: cardStr = "K";
break;
default: cardStr = Integer.toString(value);
break;
}
switch(suit)
{
case CLUBS: cardStr += "C";
break;
case DIAMONDS: cardStr += "D";
break;
case HEARTS: cardStr += "H";
break;
case SPADES: cardStr += "S";
break;
}
return cardStr;
}
// Suit values
public static final int HEARTS = 0;
public static final int CLUBS = 1;
public static final int DIAMONDS = 2;
public static final int SPADES = 3;
// Card face values
public static final int ACE = 1;
public static final int JACK = 11;
public static final int KING = 12;
public static final int QUEEN = 13;
protected int suit;
protected int value;
}
I'm kind of lost on what to do next. Any help will be greatly appreciated....gemann
Card card = new Card(((Card)card).value, ((Card)card).suit);
C:\java\War>javac TryDeal.java
TryDeal.java:13: variable card might not have been initialized
Card card = new Card(((Card)card).value, ((Card)card).suit);
^
1 error
Here are my classes :
class TryDeal
{
public static void main(String[] args)
{
Card card = new Card(((Card)card).value, ((Card) card).suit);
CardDeck deck = new CardDeck();
deck.shuffle();
Hand myHand = deck.dealHand(5);
Hand yourHand = deck.dealHand(5);
Card myCard = (Card)myHand.getCard();
Card yourCard = (Card)yourHand.getCard();
Hand returnHand = myCard.addCardBackInHand(card);
System.out.println("\nYour hand is"+yourCard);
System.out.println("\nMy hand is"+myCard);
System.out.println("\nMy return hand is"+returnHand);
}
}
class Card extends Hand implements Comparable
{
public Card(int value, int suit) throws IllegalArgumentException
{
if(value >= ACE && value <= KING)
this.value = value;
else
throw new IllegalArgumentException("Invalid card value"
if(suit >= HEARTS && suit <= SPADES)
this.suit = suit;
else
throw new IllegalArgumentException("Invalid suit"
}
public int compareTo(Object card)
{
if(this.suit != ((Card)card).suit)
return suit < ((Card)card).suit ? -1: 1;
else
if(this.value == ((Card)card).value)
return 0;
else
return value < ((Card)card).value ? -1 : 1;
}
public Card addCardBackInHand(Card card)
{
return (Card)hand.push(card);
}
public String toString()
{
String cardStr;
switch(value)
{
case ACE: cardStr = "A";
break;
case JACK: cardStr = "J";
break;
case QUEEN: cardStr = "Q";
break;
case KING: cardStr = "K";
break;
default: cardStr = Integer.toString(value);
break;
}
switch(suit)
{
case CLUBS: cardStr += "C";
break;
case DIAMONDS: cardStr += "D";
break;
case HEARTS: cardStr += "H";
break;
case SPADES: cardStr += "S";
break;
}
return cardStr;
}
// Suit values
public static final int HEARTS = 0;
public static final int CLUBS = 1;
public static final int DIAMONDS = 2;
public static final int SPADES = 3;
// Card face values
public static final int ACE = 1;
public static final int JACK = 11;
public static final int KING = 12;
public static final int QUEEN = 13;
protected int suit;
protected int value;
}
I'm kind of lost on what to do next. Any help will be greatly appreciated....gemann