斗地主案例

这是一个用Java实现的斗地主游戏程序,包括牌的初始化、洗牌、发牌和查看牌的过程。程序通过ArrayList存储54张牌,并使用Collections.shuffle进行洗牌,然后按照特定规则将牌发给三位玩家和底牌。
摘要由CSDN通过智能技术生成

斗地主案例

package Demo04;

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> poker=new ArrayList<>();
        String[]colors={"♠","♥","♣","♦"};
        String[]numbers={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
        poker.add("大王");
        poker.add("小王");
        for(String number:numbers){
            for (String color : colors) {
                //System.out.println(color+number);
                //把组装好的牌放在扑克中
                poker.add(color+number);
            }
            //System.out.println(poker);
        }
        //洗牌使用Collections中的方法
        Collections.shuffle(poker);
        System.out.println(poker);
        //3.发牌 定义四个集合储存玩家的牌和底牌
        ArrayList<String> player01 =new ArrayList<>();
        ArrayList<String> player02 =new ArrayList<>();
        ArrayList<String> player03 =new ArrayList<>();
        ArrayList<String> dipai =new ArrayList<>();
    /*
    遍历poker集合,获取每一张牌
    使用poker集合的索引%3给3个玩家轮流发牌
    剩余3张牌给底牌
        先判断底牌(>=51),否则牌发没了

     */
        for (int i = 0; i < poker.size(); i++) {
            //获取每一张牌
            String p=poker.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 if(i%3==2){
                player03.add(p);
            }
        }
        //4.看牌
        System.out.println("老村长 :"+player01);
        System.out.println("刘二狗 :"+player02);
        System.out.println("廖大阳 :"+player03);
        System.out.println("底牌   :"+dipai);
    }
}

老村长 :[♦9, ♥2, 大王, ♣A, ♣Q, ♣2, ♠8, ♣K, ♦3, 小王, ♠7, ♦5, ♥3, ♣J, ♠4, ♥K, ♠5]
刘二狗 :[♥7, ♥J, ♠9, ♥6, ♥4, ♦A, ♦4, ♦7, ♥10, ♠10, ♦8, ♦Q, ♥5, ♥A, ♦10, ♠A, ♥9]
廖大阳 :[♣5, ♠K, ♣10, ♦2, ♦J, ♣7, ♠Q, ♠3, ♠2, ♦K, ♠J, ♣9, ♣8, ♥Q, ♣4, ♦6, ♠6]
底牌 :[♣3, ♥8, ♣6]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值