我一直在尝试为二十一点制作一个得分保存方法(哦,是的,有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:
因此会记住总数,并根据h
或s
输入而增加。
我在另一个程序中看到过这种类型的代码,但它并不适合我有限的编码技巧。我需要一些非常简单易操作的东西。
答案 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);
}
} }