LinkedList实现扑克牌的生成以及自动洗牌功能 java
package com.xzy;
import java.util.LinkedList;
import java.util.Random;
/**
* LinkedList实现扑克牌的生成以及自动洗牌功能
*
* @author 娟娟
*
*/
public class Main {
public static void main(String[] args) {
Main m = new Main();
LinkedList<Poker> list = m.creatPoker();
m.desplay(list);
System.out.println("---------");
m.ruffle(list);
m.desplay(list);
}
//生成扑克牌
public LinkedList<Poker> creatPoker() {
LinkedList<Poker> pokers = new LinkedList<>();
String[] colors = {"梅花","方块","黑桃","红桃"};
String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
for(int i =0; i < numbers.length; i++) {
for(int j = 0; j < colors.length;j++) {
pokers.add(new Poker(colors[j], numbers[i]));
}
}
return pokers;
}
//显示扑克牌
public void desplay(LinkedList<Poker> list) {
for(int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
if(i % 4 == 3) {
System.out.println();
}
}
}
//洗牌
public void ruffle(LinkedList<Poker> pokers) {
Random random = new Random();
for (int i = 0; i < 100; i++) {
int a = random.nextInt(pokers.size());
int b = random.nextInt(pokers.size());
Poker p1 = pokers.get(a);
Poker p2 = pokers.get(b);
pokers.set(a, p2);
pokers.set(b, p1);
}
}
}
// 扑克牌
class Poker {
String color;
String number;
public Poker(String color,String number) {
this.color = color;
this.number = number;
}
@Override
public String toString() {
return "{" + color + number + "}";
}
}