Так что у меня здесь немного проблем в java-игре BlackJack. Я перешел от использования hashmaps для имен и значений карт и преобразовал их в String [] только потому, что это намного проще. Тем не менее, я, казалось, нарушил какой-то код в нем:BlackJack Java String [] не работает
private void createDeck(int numCards, int numSuits) {
deck = new ArrayList<Card>();
cardUsed = new ArrayList<Card>();
if ((numCards % numSuits) > 0) return;
for (int i=0; i < numSuits; i++) {
for(int j=1; j <= (numCards/numSuits); j++) {
deck.add(new Card(new Suit(i), j + "", j));
}
}
}
Это не будет работать, и дает мне нерешенная проблема компиляции: Конструктор карты (костюм, String, Int) не определено. Однако у меня есть параметры карты как Card (Suit, String [], int). Есть ли способ обойти это, по-прежнему используя массив String? Он подчеркивает deck.add(new Card(new Suit(i), j + "", j));
в программе.
Вот источник для Card.java
public class Card {
private String[] cardRank = new String[] {"Ace", "Two", "Three", "Four",
"Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King"} ;
private Suit suit = null;
private int cardValue = 0;
public Card(Suit suit, String[] cardRank, int cardValue) {
this.cardRank = cardRank;
this.suit = suit;
this.cardValue = cardValue;
}
public String toString() {
return cardRank + " of " + suit.getSuitName();
}
public String[] getCardRank() {
return cardRank;
}
public void setCardRank(String[] cardRank) {
this.cardRank = cardRank;
}
public Suit getSuit() {
return suit;
}
public void setSuit(Suit suit) {
this.suit = suit;
}
public int getCardValue() {
return cardValue;
}
public void setCardValue(int cardValue) {
this.cardValue = cardValue;
}
}
Можете ли вы разместить источник Card.java? – hexafraction
Пропустить массив строк вместо строки? Что-то вроде новой String [] {j + ""}? – kosa
'Конструкторская карта (Suit, String, int) не определена' ... это означает, что в' Card' нет конструктора, который принимает аргументы 'Suit' и' int'. –