私の問題は私の教授は私たちに、このメソッドを書く方法についての非常に詳細な指示を出した:カードの手を対処 - 互換性のないタイプのエラーを
「dealAHand方法は、従来の方法を使用して(一枚のカードを扱ってループを持っています - ハンドヘルドカードオブジェクトを含む文字列を除いて、toStringの結果と同様に、Hand内のCardオブジェクトのリストを返す。
I彼が言ったことをやろうとしていますが、互換性のないタイプエラーが続いています。この化身では、crdはカード[]に変換できません。さらに、これは変数handSizeが言及されている唯一の時間です。
必要に応じてドライバを投稿することもできます。何か案は?それらをイントロレベルにしておいてください。
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;
}
}
正確にこのエラーが発生していますか? – Mureinik
dealHandでcrdがnullです。 –
エラーは返されますcrd; – Tonantzin