【Java学习】使用ArrayList集合模拟斗地主的实现<一>(五)

前言

🚀感谢大家一直以来对我的相信和支持,以后的我一定会产出更为高质量的博客的!现在让我们一起学习如何实现模拟斗地主的操作吧!

在这里插入图片描述

一,模拟斗地主效果展示

一想到斗地主,大家脑海中一定会浮现出🔥花花绿绿🔥的页面:,何况我们马上要模拟斗地主的实现,但是身为初学者,要开始面对idea的控制栏了( ̄_, ̄ )
让我们先来观察一下每个人的牌的好坏(x_x;)(bushi ᕕ( ᐛ )ᕗ

在这里插入图片描述

二,模拟斗地主实现前准备

要实现上图模式,首先要克服如此三个问题:

1,如何让四个字符与数字相匹配
2,如何把牌打乱
3,如何把牌分为三份并给与三个人

如何解决:

  1. 我们首先可以创建字符串集合
  2. 然后使用ArrayList集合来解决第一个匹配问题

由于**ArrayList的特性**
我们可以遍历集合把字符和数字拼接到一起放入集合中

  1. 为了解决第二个问题,我们就要引入Collections类

Collection类是针对集合操作的工具类
Collections的使用方法如下:

//Collections的使用方法:
public static <T extends Comparable <?super T>> void sort(List<T>list)
//将指定的列表按升序排列
public static void reverse(List<?>list)
//翻转指定列表中元素的顺序
public static void shuffle(List<?>list)
//使用默认随机源,随机排列指定列表
  1. 为了解决第三个问题,我们要创建多个不同集合,然后分别给集合添加拼接到一起的元素

有了如此解决方法,我们就可以开始着手实现项目的搭建了!(´ー∀ー`)
在这里插入图片描述

三,模拟斗地主的实现

直接使用ArrayList实现问题的解决方法:

import java.util.ArrayList
public class PlayPoker {
    public static void main(String[] args) {
        ArrayList<String> Poker = new ArrayList<String>();
        //创建Poker集合用来存放拼接好的字符
        String[] colors = {"♥", "♣", "♦", "♠"};//字符串实现花色
        String[] numbers = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};//字符串实现数字
        for (String color : colors) {
            for (String number : numbers) {
            //使用嵌套循环让字符和数字拼接到一起放入集合中
                Poker.add(color + number);
            }
        }
        Poker.add("大王");
        Poker.add("小王");
        Collections.shuffle(Poker);//使用默认随机源,随机排列指定列表
        
        ArrayList<String> zsarray = new ArrayList<>();//张三
        ArrayList<String> lsarray = new ArrayList<>();//李四
        ArrayList<String> wwarray = new ArrayList<>();//王五
        ArrayList<String> dparray = new ArrayList<>();//底牌
		//分别创建各自的集合
		
        for (int i = 0; i < Poker.size(); i++) {
        //循环遍历后分别放入各自的集合
            String pokers = Poker.get(i);
            if (i >= Poker.size() - 3) {
            //底牌的判断方法
                dparray.add(pokers);
            } else if (i % 3 == 1) {
                zsarray.add(pokers);
            } else if (i % 3 == 2) {
                lsarray.add(pokers);
            } else {
                wwarray.add(pokers);
            }
        }
        //因为每个人的查看牌的方式相同,定义一个方法来实现看牌
        lookpoker("张三", zsarray);
        lookpoker("李四", lsarray);
        lookpoker("王五", wwarray);
        lookpoker("底牌", dparray);
    }

    public static void lookpoker(String name, ArrayList<String> Pokers){
        System.out.println(name + "的牌是" + Pokers);
    }
}

四,知识点总结

Collection类

***Collection类***是针对集合操作的工具类
使用方法:
1,public static <T extends Comparable <?super T>> void sort(Listlist)将指定的列表按升序排列
2,public static void reverse(List<?>list)翻转指定列表中元素的顺序
3,public static void shuffle(List<?>list)使用默认随机源,随机排列指定列表

各位大佬们,如果发现什么不对的地方,需要修改的地方,还请在评论区指出。
一起学习,共同进步!( ̄▽ ̄)~■干杯□~( ̄▽ ̄)

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值