If anyone can help me figure out the what the missing return statements are, I think it might be the fact that I need to add a return false in the getValue()?
Code:
import java.util.*; public class Card { // instance variables //suits private int suit; private int spades; private int hearts; private int diamonds; private int clubs; //values private int value; private int ace; private int jack; private int queen; private int king; // constants representing the suits and values public static final int SPADES = 3; public static final int HEARTS = 2; public static final int DIAMONDS = 1; public static final int CLUBS = 0; public static final int ACE = 1; public static final int JACK = 11; public static final int QUEEN = 12; public static final int KING = 13; //constructors //constructor that creates a random, valid card public Card() { Random gen = new Random(); suit = gen.nextInt(4); spades = 3; hearts = 2; diamonds = 1; clubs = 0; value = gen.nextInt(13); ace =1; jack = 11; queen = 12; king = 13; } //constructor that accepts two parameters. //First parameter is the suit //Second parameter is the card value public Card(int suit, int value) { this.suit = suit; this.spades = spades; this.diamonds = diamonds; this.clubs = clubs; this.ace = ace; this.jack = jack; this.queen = queen; this.king = king; } //override equals() method inherited from object public boolean equals(Object obj) { //check to see if object is a reference to the cards //and if so, check if its value and suit equals the currecnt value and suit if(obj instanceof Card) { Card crd = (Card) obj; if ((value == crd.value) && (suit == crd.suit)) return true; else return false; } else return false; } // override close () method from the object class public Object clone() { //create card that has the same instant values as the current card Card newCard = new Card(); newCard.value = value; newCard.suit = suit; return newCard; } //a compareValue() method that takes another card object and //returns true if the current object has a greater value and //false otherwise. public boolean compareValue(Card other) { if(value >= value) { return true; } else return false; } //Getter method public String getSuitAsString() { //Return a String representing the card's suit switch ( suit ) { case SPADES: return "Spades"; case HEARTS: return "Hearts"; case DIAMONDS: return "Diamonds"; case CLUBS: return "Clubs"; default: return "??"; } } public String getValueAsString() { //Return a String representing the card's value switch ( value ) { case 1: return "Ace"; 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"; default: return "??"; } } public String toString() { //Return a String representation of this card return getValueAsString() + " of " + getSuitAsString(); } //Getter method for the value public String getValue() { if (value == ace) return "Ace"; else if (value == jack) return "Jack"; else if (value == queen) return "Queen"; else if (value == king) return "King"; } //Getter method for the suit public String getSuit() { if (suit == spades) return "Spades"; else if (suit == hearts) return "Hearts"; else if (suit == diamonds) return "Diamonds"; else if (suit == clubs) return "Clubs"; } }
Comment