java SE集合类实现斗地主洗牌、牌排序

来源:互联网 发布:三菱plcrs485通讯编程 编辑:程序博客网 时间:2024/06/07 22:43

java的集合方便了我们管理和操作大量的数据,在很多地方都用多,特别在java Web要操作数据库时,那是必不可少的!!!集合类的作用是用于储存、检索和操纵数据,以及将数据从一个方法传输至另一个方法等等。


很简单的代码就可以实现

package list;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.TreeSet;import org.junit.Test;public class faatPaai {    @Test    public void SaiPaai() {        //HashMap的key方便发牌时获取牌        HashMap<Integer,String> paais = new HashMap<Integer,String>();        ArrayList<Integer> arrys = new ArrayList<Integer>();        //牌的四种颜色        String[] colors = { "♠", "♥", "♣", "♦" };        //牌的数字,("A", "2")放在后面方便牌排序        String[] numbers = {  "3", "4", "5", "6", "7", "8", "9", "10",                "J", "Q", "K","A", "2" };        int index = 0;        //数字放在第一个for也是为方便牌排序        for (String number : numbers) {            for (String color : colors) {                paais.put(++index,color.concat(number));                arrys.add(index);            }        }        paais.put(++index,"小王");        arrys.add(index);        paais.put(++index,"大王");        arrys.add(index);        //洗牌        Collections.shuffle(arrys);        //TreeSet类自带排序,方便操作        TreeSet<Integer> peasant1 = new TreeSet<Integer>();        TreeSet<Integer> peasant2 = new TreeSet<Integer>();        TreeSet<Integer> landlord = new TreeSet<Integer>();        TreeSet<Integer> daiPaai = new TreeSet<Integer>();        for (int i = 0; i < paais.size(); i++) {            //牌剩下三张是发给底牌            if (i >= paais.size() - 3) {                daiPaai.add(arrys.get(i));            } else if (i % 3 == 0) {                peasant1.add(arrys.get(i));            } else if (i % 3 == 1) {                peasant2.add(arrys.get(i));            } else if (i % 3 == 2) {                landlord.add(arrys.get(i));            }        }        //发牌        faaiPaai("底牌",daiPaai,paais);        faaiPaai("农民",peasant1,paais);        faaiPaai("农民",peasant2,paais);        faaiPaai("地主",landlord,paais);    }    public void faaiPaai(String name,TreeSet<Integer> personage,HashMap<Integer,String> paais){        System.out.print(name+"牌为:");        for(Integer paaisou : personage){            String paai = paais.get(paaisou);            System.out.print(paai+" ");        }        System.out.println();    }}
0 0
原创粉丝点击