扑克牌类
/**
* @ClassName: PockCard
* @Description: 扑克牌
* @Author: Wanglt
* @CreateDate: 2020年3月2日
*
*/
public class PockCard {
// 纸牌编号
private int index;
// 花色
private String colors;
// 数字大小
private String numbers;
// 牌面展示
private String show;
public PockCard(String colors, String numbers, int index) {
super();
this.colors = colors;
this.numbers = numbers;
this.index = index;
this.show = colors + numbers;
}
public String getShow() {
return show;
}
public int getIndex() {
return index;
}
@Override
public String toString() {
return "PockCard" + index + ":" + show;
}
}
游戏类
import java.util.ArrayList;
import java.util.Random;
/**
* @ClassName: Game
* @Description: 按序排放 + 洗牌
* @Author: Wanglt
* @CreateDate: 2020年3月2日
*
*/
public class Game {
// 一套牌
ArrayList<PockCard> pockCards = new ArrayList<>();
// 花色
String[] colors = { "红桃", "黑桃", "梅花", "方片" };
// 数字大小
String[] numbers = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };
// 王
String[] kings = { "小王", "大王" };
public static void main(String[] args) {
Game game = new Game();
game.initCards();
game.showCards();
game.shuffle();
game.showCards();
}
public void initCards() {
for (int i = 0; i < numbers.length; i++) {
for (int j = 0; j < colors.length; j++) {
pockCards.add(new PockCard(colors[j], numbers[i], i * colors.length + j + 1));
}
}
for (int k = 0; k < kings.length; k++) {
pockCards.add(new PockCard("", kings[k], pockCards.size() + 1));
}
System.out.println("=====初始完成=====");
}
public void shuffle() {
Random random = new Random();
int changeCardA = 0;
int changeCardB = 0;
int count = 0;
while (count < pockCards.size()) {
changeCardA = random.nextInt(pockCards.size());
changeCardB = random.nextInt(pockCards.size());
swap(changeCardA, changeCardB);
count++;
}
System.out.println("=====洗牌完成=====");
}
public void swap(int IndexA, int IndexB) {
PockCard temp = pockCards.get(IndexA);
pockCards.set(IndexA, pockCards.get(IndexB));
pockCards.set(IndexB, temp);
}
public void showCards() {
System.out.println("=====当前情况=====");
for (PockCard pc : pockCards) {
System.out.println(pc);
}
}
}