带循环和计数器的BlackJack仿真中的问题

时间:2014-03-13 22:47:18

标签: java eclipse

这基本上就是我要做的事情。我正在模拟二十一点,它要求用户输入。我没有合并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);
}

}

0 个答案:

没有答案