List集合——斗地主

本文通过Java的List集合实现斗地主游戏的准备、洗牌、发牌和看牌流程,详细讲解了斗地主游戏在编程中的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:
使用List集合,模拟3人斗地主:准备牌、洗牌、发牌、看牌。

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

public class List_DDZ {
    public static void main(String[] args) {
        //准备阶段
        //创建存储牌的集合
        List<String> pakerBox=new ArrayList<>();
        //创建存储花色的集合
        List<String> colors=new ArrayList<>();
        colors.add("♠");
        colors.add("♥");
        colors.add("♣");
        colors.add("♦");
        //创建存储数字2-10和JQKA的集合
        List<String> nums=new ArrayList<>();
        for (int i = 2; i <=10 ; i++) {
            nums.add(i+"");
        }
        nums.add("J");
        nums.add("Q");
        nums.add("K");
        nums.add("A");
        //将花色和数字进行组合,并存放到存储牌的集合中
        for(String color:colors){
            for (String num:nums){
                String card=color+num;
                pakerBox.add(card);
            }
        }
        //添加大小王
        pakerBox.add("大王🃏");
        pakerBox.add("小王🃏");
        //看一下牌库
        //System.out.println(pakerBox);
        //洗牌
        Collections.shuffle(pakerBox);
        //发牌
        //创建4个集合分别存储3个人和底牌
        List<String> p1=new ArrayList<String>();
        List<String> p2=new ArrayList<String>();
        List<String> p3=new ArrayList<String>();
        List<String> dipai=new ArrayList<String>();
        for (int i = 0; i <pakerBox.size() ; i++) {
            //根据索引获取牌
            String card=pakerBox.get(i);
            //准备底牌
            if (i<3){
                dipai.add(card);
            }else {
                //三个玩家
                if (i%3==0){
                    p1.add(card);
                }else if (i%3==1){
                    p2.add(card);
                }else {
                    p3.add(card);
                }
            }

        }
        //查看牌
        System.out.println(p1);
        System.out.println(p2);
        System.out.println(p3);
        System.out.println(dipai);
    }
}

执行结果:

农民1[4,10,10,8,5,6,5,8,10, ♠Q, ♥K, 大王🃏,6, ♦Q, ♣J,4,10]
农民2[9,3,3, ♠K,7,2, ♣K,7, ♠J,9,5,7, ♣A,5,3, ♦A,2]
地主:[4,8, 小王🃏, ♦K,9,2,9,6, ♠A, ♣Q,4, ♥J,2,6, ♥Q,8,3]
底牌:[♥A,7, ♦J]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值