首页 > 编程 > Java > 正文

用java编写模拟斗地主洗牌发牌程序

2019-11-08 18:25:49
字体:
来源:转载
供稿:网友
package com.PRactice_1;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.TreeSet;//public class Pokers {public static void main(String[] args) {//创建一个HashMap集合HashMap<Integer, String> pokers = new HashMap<Integer,String>();//创建花色数组String[] colors = {"♥","♠","♣","♦"};//创建点数数组String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};//创建一副牌 花色+点数int count = 0;//创建一个存储索引的ArrayList集合ArrayList<Integer> indexs = new ArrayList<Integer>();for (int i = 0; i < numbers.length; i++) {for (int j = 0; j < colors .length; j++) {pokers.put(count, colors[j]+numbers[i]);indexs.add(count);count++;}}indexs.add(count);pokers.put(count, "小王");count++;indexs.add(count);pokers.put(count, "大王");//洗牌,洗的是编号Collections.shuffle(indexs);//发牌,发的是编号//创建四个TreeSet集合分别存储三个人的牌和底牌编号//(因为TreeSet集合是有序的,可以保证拿到的编号按从小到大排)TreeSet<Integer> zhangsan = new TreeSet<Integer>();TreeSet<Integer> lisi = new TreeSet<Integer>();TreeSet<Integer> wanger = new TreeSet<Integer>();TreeSet<Integer> dipai = new TreeSet<Integer>();for (int i = 0; i < indexs.size(); i++) {if(i>=indexs.size()-3){dipai.add(indexs.get(i));}else if(i%3==0){zhangsan.add(indexs.get(i));}else if(i%3==1){lisi.add(indexs.get(i));}else if(i%3==2){wanger.add(indexs.get(i));}}System.out.println(zhangsan);//看牌,通过拿到的索引去pokers集合中找到对应的牌lookpokers("张三",zhangsan,pokers);lookpokers("李四",lisi,pokers);lookpokers("王二",wanger,pokers);lookpokers("底牌",dipai,pokers);}private static void lookpokers(String name, TreeSet<Integer> ts,HashMap<Integer, String> pokers) {System.out.print(name+"的牌是:");for (Integer index : ts) {System.out.print(pokers.get(index)+" ");}System.out.println();}

}


上一篇:java 语法

下一篇:Java访问控制符

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表