import java.util.Scanner;
import java.util.Random;
public class blackJack {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int cards[] = {2,3,4,5,6,7,8,9,10};
String card[] = {"H", "D", "C", "S"};
String suit[] = {"A","K","Q","J"};
//System.out.println(cards[2]);
Random random = new Random();
System.out.println(cards[random.nextInt(cards.length)] +card[random.nextInt(card.length)]);
}
}
我正在尝试从卡片和套装中随意创建,因为你可以拥有心形,黑桃,俱乐部或钻石,或者你可以拥有心灵,黑桃,俱乐部或钻石。
答案 0 :(得分:1)
没有理由为面卡和低级卡片设置单独的阵列。使一个cards
数组保存所有卡值,另一个保存套装:
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String suits[] = {"H", "D", "C", "S"};
String cards[] = {"2", "3", "4", "5", "6", "7", "8", "9", "10",
"J", "Q", "K", "A" };
Random random = new Random();
System.out.println(cards[random.nextInt(cards.length)]
+ suits[random.nextInt(suits.length)]);
}
答案 1 :(得分:0)
有零的原因你需要有整数/字符串二分法,因为你永远不需要将它们视为整数 - 只需对所有值使用字符串。
此外,从统计分布的角度来看,获得一个随机数并使用它来选择这两个值可能会更好:
public static void main (String[] args) {
Scanner input = new Scanner (System.in);
String suits[] = {"H","D","C","S"};
String cards[] = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
Random random = new Random ();
int num = random.nextInt (cards.length * suits.length);
System.out.println (cards[num % cards.length] + suits[num / suits.length]);
}
但请记住,这种随机卡片选择方案仅适用于鞋子中有无数个套牌的情况。赌场喜欢使用多个套牌来减少卡片计数的影响,但即使他们也不能做无限套牌: - )
为了正确模仿赌场,你会创建一个包含x
卡片组的鞋子结构,你可以简单地选择随机发牌(并从鞋子中取出)。
然后,当鞋子在交易后达到一个确定的大小(例如,低至原始大小的20%,赌场计数卡的另一种方式),你重新调用“shuffle” - 引用,因为你需要根据我的另一个答案here,当你可以根据需要使用Fisher Yates进行随机播放时,实际上是在洗牌。
答案 2 :(得分:0)
我试图让这个答案有点乐趣(以积极的方式,而不是d ***),但后来我发现了一个可怕的日食虫......
首先,答案(好吧,不是答案,但我的建议 - 只是不要担心兰特功能,它很好)
public static void gen() {
String card[] = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String suit[] = {"\u2661", "\u2662", "\u2663", "\u2660"};
System.out.println(
card[(int)(Math.random()*card.length)]
+suit[(int)(Math.random()*suit.length)]);
}
现在,错误 - ? while printing heart symbol
Eclipse根本不接受心脏符号!如果我从http://www.fileformat.info/info/unicode/char/2661/index.htm剪切并粘贴,它只适用于所有其他套装,除了心脏!
所以我很抱歉这是我能做的最好的事情。
答案 3 :(得分:-1)
如果您担心卡片组的随机性。尝试一下fisher yates shuffling算法。