这基本上就是我要做的事情。我正在模拟二十一点,它要求用户输入。我没有合并if语句以确保起始牌值在2-20之内(在这个版本的二十一点牌中A值只值1点,所以最小牌是2,最大值是20)。假设用户的手在该范围内。模拟编号也必须是正数。假设用户输入正数。随机数的范围是1-13,11,12和13对应于值10.我也不知道当随机数是11,12或13时如何使随机数等于10。
错误
胸围计数为0或与模拟中已经发生的绘制/回合数相匹配。转弯计数与模拟匹配或者比模拟多一个。
关于如何让胸围正确计数的任何想法?
固定
检查编辑我做了什么来修复它以及可能/可能不正确的解释为什么它是错误的。
import java.util.*;
public class BlackJack {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random r = new Random();
Scanner console = new Scanner(System.in);
System.out.print("What is the value of your starting hand: ");
int value = console.nextInt();
System.out.println();
System.out.print("How many deals do you want to simulate: ");
int simulate = console.nextInt();
int turn = 0;
int bust = 0;
do {
// draw a card
turn += 1;
int value1 = value + (r.nextInt(13)+1);
if (value1 > 21) {
bust += 1;
} else {
//draw another card
value1 = value1 + (r.nextInt(13)+1);
if (value1 > 21) {
bust += 1;
}
}
} while (turn <= simulate);
System.out.println(bust);
System.out.println(turn);
}
}