Java小实验————斗地主
早期使用的JavaSE用到的技术栈有:Map集合,数组,set集合,只是简单实现了斗地主的模拟阶段,感兴趣的小伙伴可以调试增加功能
代码如下:
import java.util.*;public class Poker {public static void main(String[] args){/*数字对应编号*/Map<Integer,String> pokermap = new HashMap<>();/*记录54个牌的编号*/List<Integer> pokernumber = new ArrayList<>();/*1.准备牌的阶段0--大王,,1--小王*/int ideax=0;//初始化扑克牌编号pokermap.put(ideax,"大王");pokernumber.add(ideax);ideax++;pokermap.put(ideax,"小王");pokernumber.add(ideax);ideax++;String[] color = {"♣","♦","♥","♠"};String[] number = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};for (int i = 0; i <number.length; i++) {for (int j=0;j<color.length;j++){pokermap.put(ideax,color[j]+number[i]);pokernumber.add(ideax);ideax++;}}/*2.洗牌阶段利用collections工具类解决*/Collections.shuffle(pokernumber);//随机打乱顺序//System.out.println(pokernumber);/*3.发牌阶段*///定义三个玩家和底牌TreeSet<Integer> player1 = new TreeSet<>();TreeSet<Integer> player2 = new TreeSet<>();TreeSet<Integer> player3= new TreeSet<>();TreeSet<Integer> dp= new TreeSet<>();for (int i = 0; i <pokernumber.size(); i++) {if(i>50){dp.add(pokernumber.get(i));} else if (i%3==0) {player1.add(pokernumber.get(i));} else if (i%3==1) {player2.add(pokernumber.get(i));} else if (i%3==2) {player3.add(pokernumber.get(i));}}/*4.用户玩家看牌阶段*/lookpoker("张三",player1,pokermap);lookpoker("李四",player2,pokermap);lookpoker("IU",player3,pokermap);lookpoker("底牌",dp,pokermap);}private static void lookpoker(String name, TreeSet<Integer> player, Map<Integer, String> pokermap) {System.out.println(name+"手中的牌为:");for(Integer pokerNumber : player){String poker = pokermap.get(pokerNumber);System.out.print(poker);}System.out.println();}}