Reputation: 3346
it is possible using a list like
private LinkedList<Object> deckOfCards = new LinkedList<Object>();
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 13; j++) {
deckOfCards.add(new Card(Rank.values()[j].toString(), Suit.values()[i].toString(), number[j], Image[j]));
}
}
}
and when i do
public Object pickRandomCard() {
Random randomNumbers = new Random();
rand = randomNumbers.nextInt(deckOfCards.size());
System.out.println(deckOfCards.get(rand).toString());
return deckOfCards.get(rand).toString();
}
//***********************
public void setImage(ImageIcon Image) {
this.cardImage = Image;
}
public ImageIcon getImage() {
return deckOfCards.get(rand).getImage();
}
i receive The method getImage() is undefined for the type LinkedList
At the moment i can return the name of card, but not the image, how i can do that?
contructor
package game;
import javax.swing.ImageIcon;
public class Card { private String face; private String suit; private int number; private ImageIcon Image;
Card(String faceCard, String faceSuit, int value, ImageIcon ImageO) {
face = faceCard;
suit = faceSuit;
number = value;
Image = ImageO;
}
public String toString() {
return face + " of " + suit;
}
public ImageIcon getImage() {
return Image;
}
public int toInt() {
return number;
}
public String suit(){
return suit;
}
}
Upvotes: 0
Views: 848
Reputation: 87543
Use Card
instead of Object
:
private LinkedList<Card> deckOfCards = new LinkedList<Card>();
...
public Card pickRandomCard() {
...
Upvotes: 1
Reputation: 324128
I believe you want:
private LinkedList<Card> deckOfCards = new LinkedList<Card>();
Upvotes: 0