[Java进阶]学习笔记10:斗地主案例

在这里插入图片描述
在这里插入图片描述

代码实现:

package DouDiZhou;

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

public class Game {
    public static void main(String[] args) {
        //准备牌
        Collection<String> cardTest = prepare();
        ArrayList<String> card = (ArrayList)cardTest;

        //洗牌
        wash(card);

        //发牌
        ArrayList<String>[] cardDevide = deal(card);

        //看牌
        System.out.print("马保国:");
        look(cardDevide[0]);
        System.out.print("90公斤:");
        look(cardDevide[1]);
        System.out.print("80公斤:");
        look(cardDevide[2]);
        System.out.print("底牌:");
        look(cardDevide[3]);




    }

    //准备牌
    public static Collection<String> prepare(){
        List<String> card = new ArrayList<>();

        //花色
        List<String> color = new ArrayList<>();
        //字母
        List<String> character = new ArrayList<>();

        color.add("黑桃");
        color.add("红桃");
        color.add("梅花");
        color.add("方块");

        character.add("A");
        character.add("J");
        character.add("Q");
        character.add("K");

        for(int i=2;i<=10;i++){
            character.add(String.valueOf(i));
        }

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

        for(int i=0;i<color.size();i++){
            for(int j=0;j<character.size();j++){
                card.add(color.get(i) + character.get(j));
            }
        }

        return card;
    }

    //洗牌
    public static ArrayList<String> wash(ArrayList<String> card){
        List<String> cardWash = (List)card;
        Collections.shuffle(cardWash);
        return card;
    }

    //发牌
    public static ArrayList<String>[] deal(ArrayList<String> card){
        ArrayList<String>[] cardDevide = new ArrayList[4];

        for(int i=0;i<4;i++){
            cardDevide[i] = new ArrayList<>();
        }


        for(int i=0;i<card.size();i++){
            if(i>=51){
                cardDevide[3].add(card.get(i));
            } else if (i%3==1){
                cardDevide[1].add(card.get(i));
            } else if (i%3==2){
                cardDevide[2].add(card.get(i));
            } else if (i%3==0){
                cardDevide[0].add(card.get(i));
            }
        }
        return cardDevide;
    }

    //看牌
    public static void look(ArrayList<String> card){
        for(String s:card){
            System.out.print(s+" ");
        }
        System.out.println();
    }
}

运行结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值