package fanXing;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
//这是一张牌
class Card {
private String rank;//点数
private String suit;//花色
public Card(String rank, String suit) {
this.rank = rank;
this.suit = suit;
}
public String getRank() {
return rank;
}
public void setRank(String rank) {
this.rank = rank;
}
public String getSuit() {
return suit;
}
public void setSuit(String suit) {
this.suit = suit;
}
@Override
public String toString() {
return "[" +this.suit + this.rank+"]";
}
}
public class Poker {
public static void main(String[] args) {
//1.创建一副牌
List poker = buyPoker();
System.out.println(poker);
//2.洗牌,最见简单的办法是直接使用collection.shuffle方法
//把元素随机打乱顺序
Collections.shuffle(poker);
//3.发牌,三个玩家,没人五张
//每个玩家就是一个list,把每个人的手牌放到这个list中
//可以把这多个玩家的信息再放到一个List中
//players就表示所有的玩家手牌
//每个元素就是一个玩家的所有手牌(也是一个list)
List> players = new ArrayList<>();
players.add(new ArrayList());
players.add(new ArrayList());
players.add(new ArrayList());
// 给三个玩家发牌,每人发五张牌
//i 表示牌的编号,j表示玩家编号
for (int i = 0;i < 5;i++) {
for (int j = 0;j <3;j++) {
List player = players.get(j);
//remove表示删除List中的指定下标的元素
//remove返回值表示删除的这个元素是啥
player.add(poker.remove(0));
}
}
//到这一步,玩家发牌结束,可以查看玩家的手牌了
for (int i = 0;i < 3;i++) {
System.out.println("玩家"+ i + ":" +players.get(i));
}
}
public static List buyPoker() {
List poker = new ArrayList<>();
String[] suits = {"♥","♠","♣","♦"};
for (int i = 0;i < 4; i++) {
//这个循环用来处理四种花色
//每个花色又有十三张牌
for (int j = 2;j <= 10;j++){
//j表示点数,int 转为 String
//转为string方法:1. ""+j 2. String.valueOf(j)
poker.add(new Card(""+j,suits[i]));
}
poker.add(new Card("J",suits[i]));
poker.add(new Card("Q",suits[i]));
poker.add(new Card("K",suits[i]));
poker.add(new Card("A",suits[i]));
}
return poker;
}
}