规则:
1. 组装54张扑克牌
2. 将54张牌顺序打乱
3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。
4. 查看三人各自手中的牌(按照牌的大小排序)、底牌
l 手中扑克牌从大到小的摆放顺序:大王,小王,2,A,K,Q,J,10,9,8,7,6,5,4,3
l 准备牌:
完成数字与纸牌的映射关系:
使用双列Map(HashMap)集合,完成一个数字与字符串纸牌的对应关系(相当于一个字典)。
l 洗牌:
通过数字完成洗牌发牌
l 发牌:
将每个人以及底牌设计为ArrayList<String>,将最后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌。
存放的过程中要求数字大小与斗地主规则的大小对应。
将代表不同纸牌的数字分配给不同的玩家与底牌。
l 看牌:
通过Map集合找到对应字符展示。
通过查询纸牌与数字的对应关系,由数字转成纸牌字符串再进行展示。

package com.oracle.Demo02; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Map; public class doudizhu { public static void main(String[] args) { //创建扑克牌map Map<Integer,String> pk=new HashMap<Integer,String>(); //装有拍好的ArrayList ArrayList<Integer> pkn=new ArrayList<Integer>(); //组装牌 String[] color= {"♥","♠","♣","♦"}; String[] number= {"2","A","K","Q","J","10","9","8","7","6","5","4","3"}; //循环打印花色 int index=2;//从2开始,因为大小王需要单独等撰, /*双层for循环,先循环数字因为每个数字有四个花色*/ for(String num:number) { //在循环花色 for(String col:color) { pk.put(index, col+num); pkn.add(index++); } } //封装 大小王 pk.put(0, "大王"); pkn.add(0); pk.put(1, "小王"); pkn.add(1); /*System.out.println(pk); System.out.println(pkn);*/ //洗牌,打乱顺序 Collections.shuffle(pkn); //发牌 造四个容器。 ArrayList <Integer> bottom=new ArrayList <Integer> ();//底牌 ArrayList <Integer> player1=new ArrayList <Integer> ();//玩家1 ArrayList <Integer> player2=new ArrayList <Integer> ();//玩家2 ArrayList <Integer> player3=new ArrayList <Integer> ();//玩家3 //底牌 遍历过程中,将牌发到三个玩家和底牌中
for(int i=0;i<pkn.size();i++) {
//先发底牌
if(i<3) {
bottom.add(pkn.get(i));
}
else if(i%3==0) {
player1.add(pkn.get(i));
}
else if(i%3==1) {
player2.add(pkn.get(i));
}
else if(i%3==2) {
player3.add(pkn.get(i));
}
}
//给牌排序
Collections.sort(bottom);
Collections.sort(player1);
Collections.sort(player2);
Collections.sort(player3);
//看牌+调方法
look("底牌",bottom,pk);
look("渣渣辉",player1,pk);
look("系兄弟",player2,pk);
look("砍我 ",player3,pk);
}
public static void look(String name,ArrayList <Integer> player,Map<Integer,String> pk) {
//分类
System.out.println(name+":");
for(int i:player) {
System.out.print(pk.get(i)+" ");
}
System.out.println();
}
}
代码实现:
原文:https://www.cnblogs.com/layuechuquwan/p/11444817.html