Java 斗地主案例(入门级)

本文介绍了一种简单的斗地主游戏发牌算法实现,包括牌的生成、洗牌和发牌等步骤。通过Java代码实现了从创建牌组到最终分配给玩家的过程。

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

package DouDiZhu;

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

/*
    流程:
        1.准备牌
        2.洗牌
        3.发牌
        4.看牌
        5.叫地主
 */
public class Test {
    public static void main(String[] args) {
        /*
            1.准备牌
         */
        //创建扑克集合
        ArrayList<String> poker = new ArrayList<>();
        //创建花色、数字集合
        ArrayList<String> color = new ArrayList<>();
        ArrayList<String> number = new ArrayList<>();
        //花色加入元素
        color.add("♣");
        color.add("♥");
        color.add("♦");
        color.add("♠");
        //数字加入元素
        for (int i = 2;i < 11;i++){
            number.add(i+"");
        }
        number.add("J");
        number.add("Q");
        number.add("K");
        number.add("A");
        //增强for循环嵌套生成牌
        for (String c : color) {
            for (String n : number) {
                poker.add(c+n);
            }
        }
//        System.out.println(poker);

        /*
            2.洗牌
         */
        //static void shuffle(List<?> list):使用默认随机源对指定列表进行置换。
        Collections.shuffle(poker);
        /*
            3.发牌
         */
        //创建三个玩家牌集合和一个底牌集合
        ArrayList<String> player1 = new ArrayList<>();
        ArrayList<String> player2 = new ArrayList<>();
        ArrayList<String> player3 = new ArrayList<>();
        ArrayList<String> diPai = new ArrayList<>();
        //发牌
        for (int i = 0; i < poker.size(); i++) {
            String pai = poker.get(i);
            if (i>=51) {
                diPai.add(pai);
            }else if (i % 3 == 0) {
                player1.add(pai);
            }else if (i % 3 == 1) {
                player2.add(pai);
            }else {
                player3.add(pai);
            }
        }
        /*
            4.看牌
         */
        showPoker(player1);
        showPoker(player2);
        showPoker(player3);

    }
    public static void showPoker(ArrayList<String> player){
        System.out.println(player);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值