Mein Problem ist mein Professor hat uns sehr detaillierte Anweisungen, wie diese Methode schreiben:eine Hand von Karten Umgang - inkompatible Typen Fehler
„Die dealAHand Methode hat eine Schleife, die eine Karte (mit der bisherigen Methode behandelt - (dealACard) zu einem Zeitpunkt, an dem handSize-Karten ausgeteilt wurden. Die zurückgegebene Zeichenfolge ist eine Liste der Kartenobjekte in der Hand - ähnlich dem Ergebnis von toString, außer dass der hier zurückgegebene String nur handSize-Kartenobjekte enthält.
I Ich versuche zu tun, was er gesagt hat, aber ich bekomme immer wieder inkompatible Typfehler: In dieser Inkarnation steht, dass crd nicht zu Card [] konvertiert werden kann. Darüber hinaus ist dies das einzige Mal, dass die Variable handSize erwähnt wird.
Ich kann auch meinen Treiber bei Bedarf veröffentlichen. Irgendwelche Ideen? Bitte behalten Sie sie intro-level.
public class Card {
private Face face;
private Suit suit;
public Card() {//default
face = Face.ACE;
suit = Suit.HEARTS;
}
public Card(Card existingCard) {//copy
//Card card = new Card(existingCard);
face = existingCard.face;
suit = existingCard.suit;
}
public Card(int n) {//professor written paramaterized
face = Face.values()[n % 13];
suit = Suit.values()[n % 4];
}
public String toString() {
String str = "";
str = "the " + face + " of " + suit;
return str;
}
}
import java.util.Random;
public class Deck {
Card[] deck;
int nextCard;
public Deck() {//default, filling the deck
nextCard = 0;
deck = new Card[52];
for (int i = 0; i < 52; i++) {
deck[i] = new Card(i);
}
}
public Deck(Card[] existingCard) {//copy
for (int i = 0; i < 52; i++) {
deck[i] = existingCard[i];
}
}
public void shuffle() {
Random rn = new Random();
Card temp;
int num;
for (int i = 0; i < 52; i++) {
num = rn.nextInt(52);
temp = deck[i];
deck[i] = deck[num];
deck[num] = temp;
}
nextCard = 0;
}
public Card dealACard() {
nextCard++;
return deck[nextCard - 1];
}
public String dealAHand() {//CHANGED
int handSize = 5;
Card[] crd = new Card[handSize];
String hand = "";
for (int i = 0; i < handSize; i++) {
hand += crd[i].dealACard() + "\n";
}
return hand;
}
public String toString() {
String str = " ";
for (int i = 0; i < 52; i++) {
str += deck[i].toString() + "\n";
}
return str;
}
}
Wo genau erhalten Sie diesen Fehler? – Mureinik
crd ist null in dealAHand. –
Der Fehler ist bei Rückgabe CRD; – Tonantzin