一.介绍
从一副52张的牌中随机挑出4张牌。所有的牌可以用一个名为deck的数组表示,这个数组用从0到S1的初始值来填充。
牌号从0到12、13到25、26到38以及39到51分别表示13张黑桃、13张红桃、13张方块、13张梅花。cardNumber/13决定牌的花色,而cardNumber%13决定是具体花色中的哪张牌.在打乱数组deck之后,从deck中选出前四张牌。程序显示这四张牌号所对应的牌。
二.代码
package com.zhuo.base.com.zhuo.base;
public class DeckOfcard {
public static void main(String[] args) {
int [] deck = new int[52];
String[] suits = {
"Spades", "Hearts", "Diamonds", "Clubs"};
String[] ranks = {
"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Gueen", "king"};
/*初始化*/
for (int i = 0; i < deck.length; i++)
deck[i] = i;
/*洗牌*/
for (int i = 0; i < deck.length; i++) {
int index = (int)(Math.random() * deck.length);
int temp = deck[i];
deck[i] = deck[index];
deck[index] = temp;
}
/*显示前四张牌*/
for (int i = 0; i < 4; i++) {
String suit = suits[deck[i] / 13];
String rank = ranks[deck[i] % 13];
System.out.println("Cart number" + deck[i] + ": " + rank + " of " + suit);
}
}
}
三.结果显示
Cart number35: 10 of Diamonds
Cart number5: 6 of Spades
Cart number38: king of Diamonds
Cart number20: 8 of Hearts
Process finished with exit code 0