从单个int返回多个

时间:2015-03-15 20:50:15

标签: java random int

我一直在尝试为二十一点制作一个得分保存方法(哦,是的,有100页的代码页面可供参考,没有人有我正在寻找的片段)

我想要的只是一个返回的int数组,一个介于1和11之间的值,然后重复它,返回一个不同的随机值。

我已经尝试过几十种方法,而且我要么不熟练才能使它工作,或者该方法不适合我的其余代码。

这是我最近尝试的内容。

import java.util.Random;
import java.util.Scanner;

class jacktest
{
    public static void main ( String[] args )
    {
            Random r = new Random();

            Scanner input = new Scanner(System.in);
            String name;
            boolean playing = true;
            boolean notplaying = true;
            int ncard = 1 + r.nextInt(11);

            for (i=0; i>11; ++i);

            System.out.println("two cards from the same int: "+ncard +ncard);
    }
}
有人可以给我一些折磨,并向我解释一下,为什么ncard + ncard会在两次出现时都使用相同的数字?

或者什么是获得相同结果的更好方法?

由于

PS:我希望程序说出类似的内容,

your first card is a 8 
your second card is 4
total 12 H or S (hit or stick)
Hit: 5
Total:17 H or S (hit or stick)
S
Sticking at 17
DEALERS turn:

因此会记住总数,并根据hs输入而增加。

我在另一个程序中看到过这种类型的代码,但它并不适合我有限的编码技巧。我需要一些非常简单易操作的东西。

2 个答案:

答案 0 :(得分:1)

for-statement的工作方式是重复它的阻塞。

 int ncard = 1 + r.nextInt(11);
 for (i=0; i>11; ++i);  // get rid of this semicolon, the smeicolon creates a block
 System.out.println("two cards from the same int: "+ncard +ncard);

如果它会像这样读到

 int ncard = 1 + r.nextInt(11);
 for (i=0; i>11; ++i)  // indent next line to make it look nice
     System.out.println("two cards from the same int: "+ncard +ncard);

根本不运行,因为我从不大于11。更合理

 int ncard = 1 + r.nextInt(11);
 for (int i=0; i<11; ++i){
     System.out.println("two cards from the same int: "+ncard +ncard);
 }

现在为每次重复实际获得一张新的ncard你应该做

 for (i=0; i<11; ++i){
     int ncard = 1 + r.nextInt(11);
     System.out.println("two cards from the same int: "+ncard +ncard);
 }

现在,如果你做了

,就扩展你的编辑
 int card1 = 1 + r.nextInt(11);
 int card2 = 1 + r.nextInt(11);

您可以在创建条件之后

 if(card1 + card2 <= 17){
     // don't hit.
 }

答案 1 :(得分:0)

你的循环以你的分号结束,并在循环中输入你的随机和打印:

class jacktest
{
    public static void main ( String[] args )
    {
            Random r = new Random();

            Scanner input = new Scanner(System.in);
            String name;
            boolean playing = true;
            boolean notplaying = true;


            for (i=0; i>11; ++i) {
                int ncard = 1 + r.nextInt(11);
                System.out.println("two cards from the same int: "+ncard +ncard);
            }


} }