码迷,mamicode.com
首页 > 编程语言 > 详细

java斗地主扑克 扑克牌 洗牌 发牌 Collection 集合练习

时间:2018-02-27 23:32:35      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:stat   dip   shuf   shuffle   get   ==   style   lis   player   

package com.swift.poker;

import java.util.ArrayList;
import java.util.Collections;

/*训练考核知识点:Collection接口的基本方法、

训练描述:
按照斗地主的规则,完成洗牌发牌的动作。
    具体规则:
        使用54张牌打乱顺序
        三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。
        
操作步骤描述:
?准备牌:
    牌可以设计为一个ArrayList<String>,每个字符串为一张牌。
    每张牌由花色数字两部分组成,我们可以使用花色集合与数字集合嵌套迭代完成每张牌的组装。
    牌由Collections类的shuffle方法进行随机排序。
?发牌:
    将每个人以及底牌设计为ArrayList<String>,将最后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌。
?看牌:
    直接打印每个集合*/

public class Poker {

    public static void main(String[] args) {

        ArrayList<String> huase=new ArrayList<String>();
        huase.add("?");
        huase.add("?");
        huase.add("?");
        huase.add("方片");
        ArrayList<String> shuzi=new ArrayList<String>();
        shuzi.add("A");
        shuzi.add("2");
        shuzi.add("3");
        shuzi.add("4");
        shuzi.add("5");
        shuzi.add("6");
        shuzi.add("7");
        shuzi.add("8");
        shuzi.add("9");
        shuzi.add("10");
        shuzi.add("J");
        shuzi.add("Q");
        shuzi.add("K");
        ArrayList<String> puke=new ArrayList<String>();
        for(String hua:huase) {
            for(String shu:shuzi) {
                puke.add(hua+shu);
            }
        }
        puke.add("大王");
        puke.add("小王");
        for(String str:puke) {
            System.out.print(str+" ");
        }
        
        //随机洗牌
        Collections.shuffle(puke);
        System.out.println();
        for(String str:puke) {
            System.out.print(str+" ");
        }
        //发牌
        ArrayList<String> player1=new ArrayList<String>();
        ArrayList<String> player2=new ArrayList<String>();
        ArrayList<String> player3=new ArrayList<String>();
        ArrayList<String> dipai=new ArrayList<String>();
        for(int i=0;i<54;i++) {
            if(i<3) {
                dipai.add(puke.get(i));
            }
            else if(i%3==0) {
                player1.add(puke.get(i));
            }
            else if(i%3==1) {
                player2.add(puke.get(i));
            }
            else if(i%3==2) {
                player3.add(puke.get(i));
            }
        }
        //看牌
        look(player1);
        look(player2);
        look(player3);
        look(dipai);
    }

    private static void look(ArrayList<String> pai) {
        System.out.println();
        for(String str:pai) {
            System.out.print(str+" ");
        }
        System.out.println();
        
    }

}

 

java斗地主扑克 扑克牌 洗牌 发牌 Collection 集合练习

标签:stat   dip   shuf   shuffle   get   ==   style   lis   player   

原文地址:https://www.cnblogs.com/qingyundian/p/8480672.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!