Java扑克牌洗牌代码


public class p18 {

	public static void main(String[] args) {
		//扑克牌洗牌 52张
		//数组下标就是值
		//0--12   13--25  26--38    39--51
		//黑桃,       红心,      方块,      梅花
		
		//每组13个元素, 元素 / 13 =花色
		//元素 % 13 = 牌面数值
		
		//生成一个0--51的随机数字 然后交换值就洗牌了
		
		//牌的花色数组
		String[] cardcolor = {"黑桃", "红心", "方块", "梅花"};
		//牌面数值
		String[] cardvalue = {"A","2","3","4","5","6","7","8","9","10","K","Q","J"};

		final int n = 52;   //52张牌
		int[] cards = new int[n];

		//把cards数组赋值 新牌
		for (int i = 0; i < cards.length; i++) {
			cards[i] = i;	
		}
		
		

		//洗牌前的打印出来
		System.out.println("洗牌前: ");
		for (int i = 0; i < cards.length; i++) {
			  
			System.out.printf("[%d] %s-%s  ,",cards[i],cardcolor[i / 13],cardvalue[i%13]);
		}
		System.out.println("");
		System.out.println("洗牌后: ");
		
		
		//进行洗牌
		//随机生成0--51之间的数字newIndex; cards[i]和cards[newIndes]交换
		for (int i = 0; i < cards.length; i++) {
			int newIndex = (int)(Math.random() * n); //生成随机数
			int temp = cards[i];
			cards[i] = cards[newIndex];  //交换牌的位置
			cards[newIndex] = temp;
		} 
		
		//洗牌后打印出来
		for (int i = 0; i < cards.length; i++) {
			
					
			System.out.printf("[%d] %s-%s  ,",cards[i],cardcolor[cards[i]/ 13],cardvalue[cards[i]%13]);
		}
	}

}


猜你喜欢

转载自blog.csdn.net/qq_43314793/article/details/90106850