package ArrayList;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Poker {
/**
* @param args
*
* 模拟实现斗地主发牌的全过程
* 1.准备一副扑克牌
* a.定义一个ArrayList集合来存放54张牌
* b.定义一个String类型的数组 存放花色种类
* c.定义一个String类型的数组 存放扑克的值
* d.最后把大小王添加到ArrayList中去
* 2.洗牌
* 通过集合的一个操作类Collections提供的shuffle()方法进行随机打乱扑克牌的顺序
* 3.发牌
* a.定义三个玩家和一个底牌集合容器
* b.实现如何三个玩家轮流拿牌
* 发牌思路分析:
* 如果当前的下标大于51 剩下的拍留给第底牌。
* 下标小于51,下标对3求于 0%3=0 1%3=1 2%3=2 3%3=3 4%3=1 5%3=2 ...依次类推
* 4.看牌
* 遍历所有玩家的牌
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建一副扑克牌
List<String> poker = new ArrayList<String>();
String[] color = {"♥","♠","♦","♣"};
String[] poks = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
for(int i=0;i<color.length;i++){
for(int j=0;j<poks.length;j++){
poker.add(poks[j]+color[i]);
//System.out.print(color[i]+poks[j]);
}
}
//添加大小王
poker.add("大王");
poker.add("小王");
/**
*查看所有的牌
for(String s : poker){
System.out.print(s);
}
**/
//洗牌
Collections.shuffle(poker);
//创建 三个玩家和一个底牌集合容器
List<String> game1 = new ArrayList<String>();
List<String> game2 = new ArrayList<String>();
List<String> game3 = new ArrayList<String>();
List<String> dipai = new ArrayList<String>();
//发牌
for(int i=0;i<poker.size();i++){
if(i>=51){
dipai.add(poker.get(i));
}else if(i%3==0){
game1.add(poker.get(i));
}else if(i%3==1){
game2.add(poker.get(i));
}else if(i%3==2){
game3.add(poker.get(i));
}
}
//对每个人的牌进行排序(字符串不太好用)
//Collections.sort(game1);
//Collections.sort(game2);
//Collections.sort(game3);
//Collections.sort(dipai);
//遍历打印玩家的牌
System.out.println("玩家1:");
for(String s : game1){
System.out.print(s+" ");
}
System.out.println();
System.out.println("玩家2:");
for(String s : game2){
System.out.print(s+" ");
}
System.out.println();
System.out.println("玩家3:");
for(String s : game3){
System.out.print(s+" ");
}
System.out.println();
System.out.println("底牌:");
for(String s : dipai){
System.out.print(s+" ");
}
}
}
利用ArrayList实现斗地主发牌
最新推荐文章于 2022-11-22 14:00:00 发布