博学谷:【案例】模拟斗地主发牌游戏

本文通过Java实现了一款模拟斗地主发牌的游戏。首先,介绍了需求,包括买牌、洗牌、发牌和看牌四个步骤。在买牌阶段,利用数字和花色数组生成所有扑克牌,再进行编号。接着,使用Collections.shuffle()进行洗牌。发牌过程中,将牌均匀分配给三个玩家和底牌。最后,通过看牌方法展示玩家和底牌的牌面。

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

1.需求

​ 使用一个集合对象存储一副扑克牌,将所有扑克牌的顺序打乱,然后分发给用集合表示的三个玩家和底牌,并打印玩家和底牌的集合内容。

2.步骤

  • 买一副扑克牌,将花色和数字分别进行组合,生成所有的普通牌。手动添加大小王
  • 洗牌 :使用Collections 工具类的shuffle()方法打乱牌的顺序
  • 发牌 : 遍历牌堆,将每一张牌分发到三个玩家集合中,留三张作底牌
  • 看牌 : 分别打印每个玩家集合的内容
2.1.买牌

分析1

  • 创建数字数组 :nums
  • 创建花色数组 : colors
  • 循环嵌套拼接两数组
    • String类的concat方法:colors[i].concat(nums[j])(X.concat(Y)输出结果为XY ; Y.concat(X)数出结果为YX)
package cn.itcast.demo2;

public class SendPokerTest {
   
   
    public static void main(String[] args) {
   
   
        //创建数字数组和花色数组
        String[] nums = {
   
   "3","4","5","6","7","8","9","K","Q","J","A","2"};
        String[] colors = {
   
   "♣","♦","♥","♠"};

        //拼接两数组
        for (int i = 0; i < nums.length; i++) {
   
   
            for (int j = 0; j < colors.length; j++) {
   
   
                colors[j].concat(nums[i]);
                System.out.print(colors[j].concat(nums[i])+" ");

            }
        }

    }
}

分析2

  • 定义一个双列集合,键设置编号,值表示具体的牌 规则:编号越小牌越小(花色不同大小相同的牌怎么设置编号,为什么要设置编号)
  • 定义一个单列集合,存储编号
  • 循环嵌套两个数组,将牌添加进双列集合,将编号添加进单列集合
  • 手动添加大小王
  • 打印
package cn.itcast.demo2;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class SendPokerTest {
   
   
    public static void main(String[] args) {
   
   
        //创建数字数组和花色数组
        String[] numbers = {
   
   "3","4","5","6","7","8","9","10","J","Q","K","A","2"};
        String[] colors = {
   
   "♣","♦","♥","♠"};

        //定义一个num用于表示编号
        int num = 0;

        //定义一个双列集合,存储牌和牌的编号
        Map<Integer,String> pokers = new HashMap<>();

        //定义一个单列集合,存储牌的编号
        List<Integer> list = new ArrayList
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值