最近、私はデッキがエースを引くたびに、自動的にエースに11の値を割り当て、1の値ではなく私の手札にあるカードの合計金額。 switch
後のループは何もしませんので、forループを使用してswitch文の戻り値を固定する
public class Deck {
private ArrayList<Card> cards;
public Deck(){
this.cards = new ArrayList<Card>();
}
public int valueOfCards(){
int totalValue = 0;
int aces = 0;
for(Card aCard : this.cards){
switch(aCard.getValue()){
case TWO: totalValue += 2; break;
case THREE: totalValue += 3; break;
case FOUR: totalValue += 4; break;
case FIVE: totalValue += 5; break;
case SIX: totalValue += 6; break;
case SEVEN: totalValue += 7; break;
case EIGHT: totalValue += 8; break;
case NINE: totalValue += 9; break;
case TEN: totalValue += 10; break;
case JACK: totalValue += 10; break;
case QUEEN: totalValue += 10; break;
case KING: totalValue += 10; break;
case ACE: totalValue += 11 ; break;
}
}
for(int i = 0; i < aces; i++){
if(totalValue > 10){
totalValue += 1;
}
else{
totalValue += 11;
}
}
return totalValue;
}
}
に減少し、?????????? ? – yashpandey
ユーザハンドがすでに11以上であればエースの値を1にしようとしていた – simplest
[mcve]を投稿して無駄な部分を削除してください(最後のforループのように)考えられるヒント: 'aces = 0 'いつも –