编写一个程序,从一副52张的牌中随机挑出四张牌

本文介绍了一种使用Java实现的洗牌算法,并详细展示了如何通过数组来表示一副52张的纸牌,包括创建纸牌数组、随机化顺序以及输出特定数量的纸牌。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class dsdsds {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[]deck=new int[52];
		String[]suits={"Spades","Hearts","Diamond","Clubs"};
		String[]ranks={"Ace","2","3","4","5","6","7","8","9","10","Jack","Queen","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("Card number"+deck[i]+":"+rank+"of"+suit);
			
		}
			

// int [] deck=new int [52];  开辟数组

// cardNumber/13 决定牌的花色

//  cardNumbvr%13决定具体花色中的哪张牌


 

当你想要编写这样的程序时,首先需要创建一个表示的对象类,包括花色和点数两个属性。然后,你可以使用Java的`java.util.Random`类生成随机数,并结合数组和ArrayList来存储和抽取四张。以下是一个简单的示例: ```java import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Random; // 定义的类 class Card { String suit; // 花色 (例如 "Hearts", "Diamonds", "Clubs", "Spades") int rank; // 点数 (2~10, J, Q, K, A) public Card(String suit, int rank) { this.suit = suit; this.rank = rank; } @Override public String toString() { return suit + " of " + rank; } } public class Main { public static void main(String[] args) { List<Card> deck = createDeck(); Random random = new Random(); List<Card> selectedCards = selectRandomCards(deck, 4); for (Card card : selectedCards) { System.out.println(card.toString()); } } // 创建52的数组 private static List<Card> createDeck() { String[] suits = {"Hearts", "Diamonds", "Clubs", "Spades"}; int[] ranks = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; List<Card> deck = new ArrayList<>(); for (int i = 0; i < suits.length; i++) { for (int j = 0; j < ranks.length; j++) { deck.add(new Card(suits[i], ranks[j])); } } return deck; } // 随机选择指定数量的卡片 private static List<Card> selectRandomCards(List<Card> deck, int count) { if (count > deck.size()) { throw new IllegalArgumentException("Cannot select more cards than available in the deck."); } List<Card> selected = new ArrayList<>(count); while (selected.size() < count) { int index = random.nextInt(deck.size()); selected.add(deck.remove(index)); } return selected; } } ``` 这个程序随机抽取并打印出四张的花色和号码。运行多次可以看到不同的组合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值