Java实现斗地主的洗牌、发牌、看牌

本文介绍了如何通过Java编程实现斗地主游戏中的洗牌、发牌和看牌功能,包括创建牌盒、使用ArrayList存储牌、利用Collections.shuffle打乱牌序、按规则分配给三个玩家和查看各自手牌的步骤。
摘要由CSDN通过智能技术生成

需求

//斗地主
/*

  • 需求:
  • 通过程序实现斗地主过程中的洗牌、发牌、看牌
  • 思路:
  • 1、创建一个牌盒,定义一个集合对象,用ArrayList实现
  • 2、向牌盒里装牌
  • 3、洗牌,将牌序打乱,用 Collections和shuffle()方法实现
  • 4、发牌,遍历集合,给三个玩家发牌
  • 5、看牌、三个玩家分别遍历自己的牌
  • */

代码实现

package doudizhu;
import java.util.ArrayList;
import java.util.Collections;

public class PokerDemo {
    public static void main(String[] args) {
        //创建一个牌盒,定义一个集合对象,用ArrayList实现
        ArrayList<String> array=new ArrayList<>();

        //向牌盒里装牌
        //定义花色数组
        String[] colors={"♦","♣","♥","♠"};
        //定义点数数组
        String[] numbers={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
        for (String color:colors){  //拼接数组
            for (String number:numbers){
                array.add(color+number);
            }
        }
        array.add("小王");
        array.add("大王");

        //洗牌,将牌序打乱,用Collections和shuffle()方法实现
        Collections.shuffle(array);

        //发牌,遍历集合,给三个玩家发牌
        ArrayList<String> play01=new ArrayList<>(); //三个玩家
        ArrayList<String> play02=new ArrayList<>();
        ArrayList<String> play03=new ArrayList<>();
        ArrayList<String> dipai=new ArrayList<>(); //用来存储三张底牌

        for (int i=0;i< array.size();i++){
            String poker= array.get(i); //获取每张扑克
            if (i>=array.size()-3){  //最后三张牌为底牌
                dipai.add(poker);
            }else if(i%3==0){
                play01.add(poker);
            }else if (i%3==1){
                play02.add(poker);
            }else if (i%3==2){
                play03.add(poker);
            }
        }
        //看牌、三个玩家分别遍历自己的牌
        lookPoker("玩家1",play01);
        lookPoker("玩家2",play02);
        lookPoker("玩家3",play03);
        lookPoker("底牌",dipai);
    }
    //看牌方法
    public static void lookPoker(String name,ArrayList<String> array){
        System.out.println(name+"的牌是:");
        for (String poker:array){
            System.out.print(poker +" ");
        }
        System.out.println();
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值