java 斗地主 案例

package zyr.doudizhu;

/*
* 54张牌 3个玩家  没人17张牌  最后3张留作底牌
* 1准备牌
* 2洗牌
* 3发牌
* 4看牌
* */

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

public class Doudizhu {
    public static void main(String[] args) {

        //1准备牌子
        //定义一个存储54牌的arraylist 泛型用string
        ArrayList<String>  porker = new ArrayList<>();

        //定义2个数组 一个存储花色了另一个存储数字号码
        String[] color = {"♠","♥","♣","♦"};
        String[] nums = {"2","1","K","Q","J","10","9","8","7","6","5","4","3"};

        //先存储进去大王小王

        porker.add("大王");
        porker.add("小王");

        //遍历然后把牌放进去
        for(String col:color){
            for(String num:nums){
                porker.add(col+num);
            }
        }


        //洗牌
        Collections.shuffle(porker);


//        for (String sb:porker){
//
//            System.out.println(sb);
//        }

        //发牌
        //定义4个结合 存储玩家的牌和底牌

        ArrayList<String> player01 = new ArrayList<>();
        ArrayList<String> player02 = new ArrayList<>();
        ArrayList<String> player03 = new ArrayList<>();
        ArrayList<String> dipai = new ArrayList<>();


        for(int i=0;i<porker.size();i++)
        {
            //获取每一张牌
            String  p = porker.get(i);
            if (i>=51){
                dipai.add(p);
            }else{
                if(i%3==0){
                    player01.add(p);
                }else if(i%3==1){
                    player02.add(p);
                }else{
                    player03.add(p);
                }
            }

        }


        //展示牌
        show(player01,"玩家1");
        show(player02,"玩家2");
        show(player03,"玩家3");
        show(dipai,"底牌");

        //java的arraylist 可以直接输出
        System.out.println("玩家1"+player01);
        System.out.println("玩家2"+player02);
        System.out.println("玩家3"+player03);
        System.out.println("底牌"+dipai);
    }


    private static void  show(ArrayList<String> arr,String name){
            for(String pai:arr){
                System.out.println(name+pai);
            }
        System.out.println("=================");
    }
}

输入结果如下 

D:\jdk9\bin\java "-javaagent:D:\javaidea\IntelliJ IDEA 2017.3.4\lib\idea_rt.jar=11366:D:\javaidea\IntelliJ IDEA 2017.3.4\bin" -Dfile.encoding=UTF-8 -classpath D:\javacode\out\test\day01;D:\javacode\out\production\day01 zyr.doudizhu.Doudizhu
玩家1♥7
玩家1♥3
玩家1♦7
玩家1♣6
玩家1♠J
玩家1♥4
玩家1♣1
玩家1♣3
玩家1♦4
玩家1♦8
玩家1♥10
玩家1♥8
玩家1♠K
玩家1♣5
玩家1♠Q
玩家1♦Q
玩家1♦9
=================
玩家2♥K
玩家2♠2
玩家2♥2
玩家2♠7
玩家2♠10
玩家2♥1
玩家2♣J
玩家2♠5
玩家2♣2
玩家2♦J
玩家2♥Q
玩家2♣10
玩家2♠3
玩家2♠4
玩家2♣9
玩家2♣4
玩家2♦1
=================
玩家3♣K
玩家3♥J
玩家3♣Q
玩家3小王
玩家3大王
玩家3♦10
玩家3♦2
玩家3♠6
玩家3♥6
玩家3♠1
玩家3♦6
玩家3♦5
玩家3♣8
玩家3♦3
玩家3♥9
玩家3♥5
玩家3♠9
=================
底牌♣7
底牌♦K
底牌♠8
=================
玩家1[♥7, ♥3, ♦7, ♣6, ♠J, ♥4, ♣1, ♣3, ♦4, ♦8, ♥10, ♥8, ♠K, ♣5, ♠Q, ♦Q, ♦9]
玩家2[♥K, ♠2, ♥2, ♠7, ♠10, ♥1, ♣J, ♠5, ♣2, ♦J, ♥Q, ♣10, ♠3, ♠4, ♣9, ♣4, ♦1]
玩家3[♣K, ♥J, ♣Q, 小王, 大王, ♦10, ♦2, ♠6, ♥6, ♠1, ♦6, ♦5, ♣8, ♦3, ♥9, ♥5, ♠9]
底牌[♣7, ♦K, ♠8]

 

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值