gpt4 book ai didi

java - 此方法的参数有什么问题/为什么会收到此错误?

转载 作者:行者123 更新时间:2023-12-01 11:38:16 24 4
gpt4 key购买 nike

我在这个问题中包含了我写的三个类。一个是Card类,代表一张扑克牌:

public class Card 
{
int theRank, theSuit, theCard;

public Card(int suit, int rank)
{
theRank = rank;
theSuit = suit;
}

public String getRank()
{
String rankString = "";

switch (theRank)
{
case 1:
rankString = "Ace";
case 2:
rankString = "2";
case 3:
rankString = "3";
case 4:
rankString = "4";
case 5:
rankString = "5";
case 6:
rankString = "6";
case 7:
rankString = "7";
case 8:
rankString = "8";
case 9:
rankString = "9";
case 10:
rankString = "10";
case 11:
rankString = "Jack";
case 12:
rankString = "Queen";
case 13:
rankString = "King";
}

return rankString;
}

public String getSuit()
{
String suitString = "";

switch(theSuit)
{
case 1:
suitString = "Diamonds";
case 2:
suitString = "Hearts";
case 3:
suitString = "Clubs";
case 4:
suitString = "Spades";
}

return suitString;
}
}

另一个是 Deck 类,它表示 Card 对象的 arrayList:

public class Deck 
{

public ArrayList<Card> loadDeck(ArrayList<Card> deck)
{
for (int suit = 1; suit <= 4; suit++)
{
for (int rank = 1; rank <= 13; rank++)
{
deck.add(new Card(suit, rank));
}
}

return deck;
}

public void shuffleDeck(ArrayList<Card> deck)
{
Card temp;
int index;
Random rand = new Random();
for (int i = deck.size() - 1; i > 0; i--)
{
index = rand.nextInt(i + 1);
temp = deck.get(index);
deck.add(index, deck.get(i));
temp = deck.get(i);
}

}

public ArrayList dealHand(ArrayList<Card> deck)
{
Random rand = new Random();
ArrayList<Card> hand = new ArrayList<Card>(8);

for (int i = 0; i <= 6; i++)
{
int suit = rand.nextInt(3);
int rank = rand.nextInt(51);
Card temp = new Card(suit, rank);
hand.add(i, temp);
deck.remove(temp);


}

return hand;
}

public void printHand(ArrayList<Card> hand)
{
for (int i = 0; i <= 6; i++)
{
Card temp = hand.get(0);
System.out.println(temp.getRank() + " of " + temp.getSuit());

}
}

}

然后我有一个包含 main 方法的 GoFish 类:

import java.util.ArrayList;

public class GoFish
{

public static void main(String[] args)
{
ArrayList<Card> deck = new ArrayList<Card>();
deck.loadDeck(deck);
}
}

在 main 方法中,我创建了一个名为“deck”的 Card 对象的数组列表。 loadDeck() 方法应该采用一个空的 arrayList(用于 Card 对象)作为参数,并使用复制一副标准 52 张扑克牌的 Card 对象加载它。我在主方法类中遇到一个我不理解的错误,尽管我认为它与 loadDeck() 方法的参数有关。有什么建议吗?

最佳答案

ArrayList 没有方法 loadDeck()

public static void main(String[] args) 
{
ArrayList<Card> deck = new ArrayList<Card>();
deck.loadDeck(deck);
}

你想要:

public static void main(String[] args) 
{
Deck testDeck = new Deck();
ArrayList<Card> deck = new ArrayList<Card>();
deck = testDeck.loadDeck(deck);
}

****************更新你可能想要这样的东西?************************

public class Deck 
{
private ArrayList<Card> deck;

public Deck()
{
deck = new ArrayList<Card>();
loadDeck();
}

public void loadDeck()
{
for (int suit = 1; suit <= 4; suit++)
{
for (int rank = 1; rank <= 13; rank++)
{
deck.add(new Card(suit, rank));
}
}

return deck;
}

public void shuffleDeck(ArrayList<Card> deck)
{
Card temp;
int index;
Random rand = new Random();
for (int i = deck.size() - 1; i > 0; i--)
{
index = rand.nextInt(i + 1);
temp = deck.get(index);
deck.add(index, deck.get(i));
temp = deck.get(i);
}

}

public ArrayList<Card> dealHand()
{
Random rand = new Random();
ArrayList<Card> hand = new ArrayList<Card>(8);

for (int i = 0; i <= 6; i++)
{
int suit = rand.nextInt(3);
int rank = rand.nextInt(51);
Card temp = new Card(suit, rank);
hand.add(i, temp);
deck.remove(temp);


}

return hand;
}

public void printHand(ArrayList<Card> hand)
{
for (int i = 0; i <= 6; i++)
{
Card temp = hand.get(0);
System.out.println(temp.getRank() + " of " + temp.getSuit());

}
}

public ArrayList<Card> getDeck()
{
return this.deck;
}

}

关于java - 此方法的参数有什么问题/为什么会收到此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29782277/

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