私はこれを以前に投稿し、私の質問の大部分は答えられましたが、コードに最後のエラーが 1 つだけあります。
SO基本的に私はJavaでブラックジャックのゲームを作っています。カードクラス、デッキクラス、メインがあります。私が抱えている問題は私のメインにあります。私のデッキ クラスでは、配列リストで 52 枚のカードのデッキを作成します。次に、一番上のカードを受け取り、それをユーザーの手の中にあるカードである手の配列リストに追加するメソッド ディールがあります。ユーザーがこれ以上続行したくない場合、カードの配付は停止します。私のメインの最後の部分は、ハンド配列リストの値を取得し、それらを合計して 21 と比較し、ユーザーがオーバーしたかどうかを確認します。カードの値を int の合計に保持しようとしていることに気付きましたが、それらを比較できるように配列リストに値を保持するには何を使用すればよいでしょうか? ヘルプ/提案やアドバイスをいただければ幸いです
このコードで発生しているエラーは次のとおりです。
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");
}
ここに興味がある人のために、私のカードとデッキのクラスがあります:
public class Card
{
private int rankValue, suitValue;
private String ranks[] = {"Hearts", "Clubs", "Spades", "Diamonds"};
private String suits[] = {"Ace", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"};
public Card(int rank, int suit)
{
rankValue = rank;
suitValue = suit;
}
public String convertToString(int rank){
return ranks[rank];
}
public void setRank(int rank){
rankValue = rank;
}
public void setSuit(int suit){
suitValue = suit;
}
public int getRank(){
return rankValue;
}
public int getSuit(){
return suitValue;
}
public String toString(){
String name = ranks[rankValue] + " of " + suits[suitValue];
return name;
}
}
デッキクラス:
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;
}
}