java中的黑杰克纸牌游戏有问题吗

java中的黑杰克纸牌游戏有问题吗,java,Java,我在早些时候发布了这篇文章,我的大部分问题都得到了回答,但我的代码中只有最后一个错误 所以基本上我在用java做一个黑杰克游戏。我有一个纸牌课,一个甲板课和我的主要课程。我遇到的问题主要是我自己的问题。在我的牌组类中,我在arraylist中创建了52张牌组。然后我有了一个方法交易,它将获取最上面的卡片并将其添加到手牌列表中,该列表是用户手中的卡片。一旦用户不想再继续,卡就会停止发放。我的main的最后一部分获取了hand arraylist中的值,并将它们相加,然后将它们与21进行比较,以查看

我在早些时候发布了这篇文章,我的大部分问题都得到了回答,但我的代码中只有最后一个错误

所以基本上我在用java做一个黑杰克游戏。我有一个纸牌课,一个甲板课和我的主要课程。我遇到的问题主要是我自己的问题。在我的牌组类中,我在arraylist中创建了52张牌组。然后我有了一个方法交易,它将获取最上面的卡片并将其添加到手牌列表中,该列表是用户手中的卡片。一旦用户不想再继续,卡就会停止发放。我的main的最后一部分获取了hand arraylist中的值,并将它们相加,然后将它们与21进行比较,以查看用户是否进行了检查。我意识到我正试图在int total中保存一个卡片值,但是我将使用什么来保存arraylist中的值,以便比较它们?欢迎提供任何帮助/建议或建议

我在这段代码中遇到的错误是:

 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转换为字符串值。因此,在我的卡片类中,我有两个字符串数组,一个用于西服,一个用于军衔。你所说的方法会在套牌类中下注吗?如果你想看一下,我也在我的卡片和套牌类中进行了编辑