gpt4 book ai didi

java - 类卡不会转换为字符串

转载 作者:行者123 更新时间:2023-12-02 09:52:09 25 4
gpt4 key购买 nike

我正在开发一个基本的扑克应用程序。 Card 和 DeckOfCards 类在大多数情况下似乎工作正常,但是当我尝试处理公共(public)牌(棋盘牌)时,我收到编译器错误。我有点困惑,因为在处理玩家的牌时,我似乎在前面的 for 循环中做了同样的事情。

card.java:

public class Card {
private final String face;
private final String suit;

public Card(String cardFace, String cardSuit) {
this.face = cardFace;
this.suit = cardSuit;
}

public String toString() {
return face + suit;
}
}

DeckOfCards.java:


public class DeckOfCards {

private static final SecureRandom randomNumbers = new SecureRandom();
private static final int NUMBER_OF_CARDS = 52;

private Card[] deck = new Card[NUMBER_OF_CARDS];
private int currentCard = 0;

public DeckOfCards() {
String[] faces = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K"};
String[] suits = {"h", "c", "d", "s"};

for(int count = 0; count < deck.length; count++) {
deck[count] = new Card(faces[count % 13], suits[count/13]);
}
}

public void shuffle() {
currentCard = 0;

for (int first = 0; first < deck.length; first++) {
int second = randomNumbers.nextInt(NUMBER_OF_CARDS);

Card temp = deck[first];
deck[first] = deck[second];
deck[second] = temp;
}
}

public Card dealCard() {
if (currentCard < deck.length) {
return deck[currentCard++];
}
else {
return null;
}
}
}

DeckOfCardsTest.java:


public class DeckOfCardsTest {
public static void main(String[] args) {
DeckOfCards myDeckOfCards = new DeckOfCards();
myDeckOfCards.shuffle();

Scanner input = new Scanner(System.in);

System.out.printf("Enter number of players(max 10): ");
int numPlayers = input.nextInt();

if(numPlayers > 10)
numPlayers = 10;

String[] playerHand = new String[10];
String[] boardCards = new String[5];

for(int i = 0; i < numPlayers; i++) {
playerHand[i] = myDeckOfCards.dealCard() + " " + myDeckOfCards.dealCard();
System.out.printf("Player %d Hand: %s%n", (i + 1), playerHand[i]);
}

for(int i = 0; i < 5; i++) {
boardCards[i] = myDeckOfCards.dealCard();
//^This is the line that throws the error

}

System.out.printf("Flop: %s %s %s%n", boardCards[0], boardCards[1], boardCards[2]);
System.out.printf("Turn: %s%n", boardCards[3]);
System.out.printf("River: %s%n", boardCards[4]);



}
}

编译器错误是:

DeckOfCardsTest.java:25: error: incompatible types: Card cannot be converted to String
boardCards[i] = myDeckOfCards.dealCard();
^

最佳答案

在第一个 for 循环中,您正在执行 myDeckOfCards.dealCard() + ""+ myDeckOfCards.dealCard(),使用 + "" 会转换 Card 类由 dealCard 返回到 String。

因此,要解决您的问题,您可以执行 dealCard().toString()dealCard() + ""

关于java - 类卡不会转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56243578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com