java中的黑杰克纸牌游戏有问题吗
我在早些时候发布了这篇文章,我的大部分问题都得到了回答,但我的代码中只有最后一个错误 所以基本上我在用java做一个黑杰克游戏。我有一个纸牌课,一个甲板课和我的主要课程。我遇到的问题主要是我自己的问题。在我的牌组类中,我在arraylist中创建了52张牌组。然后我有了一个方法交易,它将获取最上面的卡片并将其添加到手牌列表中,该列表是用户手中的卡片。一旦用户不想再继续,卡就会停止发放。我的main的最后一部分获取了hand arraylist中的值,并将它们相加,然后将它们与21进行比较,以查看用户是否进行了检查。我意识到我正试图在int total中保存一个卡片值,但是我将使用什么来保存arraylist中的值,以便比较它们?欢迎提供任何帮助/建议或建议 我在这段代码中遇到的错误是:java中的黑杰克纸牌游戏有问题吗,java,Java,我在早些时候发布了这篇文章,我的大部分问题都得到了回答,但我的代码中只有最后一个错误 所以基本上我在用java做一个黑杰克游戏。我有一个纸牌课,一个甲板课和我的主要课程。我遇到的问题主要是我自己的问题。在我的牌组类中,我在arraylist中创建了52张牌组。然后我有了一个方法交易,它将获取最上面的卡片并将其添加到手牌列表中,该列表是用户手中的卡片。一旦用户不想再继续,卡就会停止发放。我的main的最后一部分获取了hand arraylist中的值,并将它们相加,然后将它们与21进行比较,以查看
1 error found:
File: E:\Documents\Java Files\Assignment 3\CardGameTester.java [line: 33]
Error: Type mismatch: cannot convert from Card to int
int total;
for(int index = 0; index <= hand.size(); index++)
{
total = hand.get(index);
}
System.out.println("Your total value for you cards are: " + total);
if(total == 21){
System.out.println("Congrats, you have won for not going over 21");
}
else
{
System.out.println("Sorry, you lose for going over 21");
}
我的主要问题是:
1 error found:
File: E:\Documents\Java Files\Assignment 3\CardGameTester.java [line: 33]
Error: Type mismatch: cannot convert from Card to int
int total;
for(int index = 0; index <= hand.size(); index++)
{
total = hand.get(index);
}
System.out.println("Your total value for you cards are: " + total);
if(total == 21){
System.out.println("Congrats, you have won for not going over 21");
}
else
{
System.out.println("Sorry, you lose for going over 21");
}
甲板等级:
import java.util.ArrayList;
import java.util.Collections;
public class Deck
{
private ArrayList<Card> cards = new ArrayList<Card>();
public Deck()
{
for(int a = 1; a <= 4; a++)
{
for(int b = 1; b <= 13; b++)
{
Card c = new Card(a,b);
cards.add(c);
}
}
shuffle();
}
public void shuffle(){
Collections.shuffle(cards);
}
public Card deal(){
int index = 0;
Card c = cards.remove(index);
index++;
return c;
}
}
import java.util.ArrayList;
导入java.util.Collections;
公务舱甲板
{
私有ArrayList卡=新ArrayList();
公共甲板()
{
对于(int a=1;a
卡片类可能有一个int-value
字段,可由getValue()访问
您的卡
类应该有一个名为intValue
或getValue
的方法来获取卡的整数值。然后在每张卡上调用它,并将返回的数字相加。不过,处理软ACE会有点棘手
另外,使用foreach,而不是手动索引
int total;
for(Card card: hand)
{
total += card.value();
}
该消息告诉您卡不是“int”,这当然是完全正确的。我建议您阅读有关面向对象编程的知识。基本思想是类包含属性,这些属性可能是简单类型,如int或其他类的其他实例。不同的类具有不同的操作集和属性。编译器知道卡具有特定的操作和f或者该参考仅允许使用卡片或看起来像卡片的东西。我不想深入了解更多细节,因为在互联网上有很多很好的讨论和教程,可以很容易找到。“我代码中的最后一个错误”希望我每次听到都有5美元。;)什么是hand.get(index)
return?我怀疑这是一张卡
,但你试图将其分配给int
。索引通过arraylist,对于索引到达的每个点,它将获取该卡的值并将其分配给total。我意识到我做错了,但我不确定正确的方法。为此,我应该让事情发生变化ted转换为字符串值。因此,在我的卡片类中,我有两个字符串数组,一个用于西服,一个用于军衔。你所说的方法会在套牌类中下注吗?如果你想看一下,我也在我的卡片和套牌类中进行了编辑