package com.zgm.doudizhu;
import java.util.*;
public class Game {
/**
* 1. List集合存储 54个编号
* 2. Map <key,value> key 对应的是编号 , value 是 牌的花色(红方梅黑)+ 具体的一张牌 ,比如 黑桃2
*
* 3. 用2个数组 存放 花色+ 13张牌
*
* 4. 将牌的信息 存入到 list和map
*
* 5. 发牌了... (需要打乱顺序)
*
* 6. 看一下 自己是什么牌 (看牌)
*/
public static void main(String[] args) {
//存54个号
List<Integer> list = new ArrayList<>();
//编号 key 对应的是编号 value 是 牌的花色(红方梅黑)+ 具体的一张牌
Map<Integer,String> map=new HashMap<>();
//数组存放4色
String []color={"♠","♣","♦","♥"};
//数组存放13张牌
String [] pai={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
//记录牌的下标0-53
int index=0;
for (String num:pai){//循环次数 4*13
for (String col:color)
{
map.put(index,col+num);
list.add(index);
index++;
}
}
//处理大小王
map.put(52,"小王");
map.put(53,"大王");
list.add(52);
list.add(53);
//打乱发牌的顺序
Collections.shuffle(list);//0-53
ArrayList<Integer> p1 = new ArrayList<>();
ArrayList<Integer> p2 = new ArrayList<>();
ArrayList<Integer> p3 = new ArrayList<>();
ArrayList<Integer> difai = new ArrayList<>();
//开始发牌
for (int i = 0; i <list.size() ; i++) {
//去除3张为底牌
if (i<3) {
difai.add(list.get(i));
}//剩余51
else if (i%3==0){
p1.add(list.get(i));
} else if (i%3==1){
p2.add(list.get(i));
} else{
p3.add(list.get(i));
}
}
//为自己的牌 排序
Collections.sort(p1);
Collections.sort(p2);
Collections.sort(p3);
Collections.sort(difai);
//看牌
show("老王",p1,map);
show("老1",p2,map);
show("老2",p2,map);
show("底牌",difai,map);
}
private static void show(String name, List<Integer> list, Map<Integer, String> map) {
//搜索看到名字
System.out.print(name+": ");
for (Integer in:list) {
String value=map.get(in);
System.out.print(value+" ");
}
System.out.println();
}
}
用Java模拟斗地主游戏
最新推荐文章于 2023-04-02 13:56:59 发布