Java的ArrayList集合使用---唐代诗人斗地主!!!

2022-07-27,,,

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、集合如何实现斗地主
  • 二、代码部分
    • 1.IDEA软件
    • 2.创建牌盒
    • 3.洗牌
    • 4.发牌
    • 5.看牌
  • 三、总结

前言

本文是作者看完Java前面基础部分跟着一起做的一个学生管理系统,主要就是增删改查四种操作,并未使用到数据库!!!


提示:以下是本篇文章正文内容,下面案例可供参考

一、集合如何实现斗地主?

我们现实生活中关于斗地主,首先要有一副牌,然后把牌洗一下,在然后发牌,最后抢地主!因此斗地主需要以下的5步!

  1. 创建牌盒,定义一个集合对象,用ArrayList实现
  2. 往牌盒里装牌
  3. 洗牌,把牌打撒
  4. 发牌
  5. 看牌

    话不多说直接上代码!

二、代码部分

1.IDEA软件

之前也有用过Eclispe这个软件,看到很多人说现在用IDEA的更多一点就下载了一个,确实不错,整体给人的感觉是不错的,另外还有很多的快捷方式,这里简单列几个。

比如常见的System.out.println(),你可能不需要全部输入,只需要输入sout然后回车即可,或者你输入so的时候就会出来sout直接回车即可。

还有,比如常用的Java函数入口main函数,我们输入psvm然后回车即可!

单行注释的快捷键是:ctrl+/,多行注释是ctrl+shift+/。(一定要先选中!

2.创建牌盒

代码如下(示例):

ArrayList<String> array = new ArrayList<String>();//创建牌盒
 /*牌盒里一共有54张牌
        ♣2 ♣3...
        ♦2 ♦3...

        * */
//定义花色
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("小王");

3.洗牌

 //洗牌
 Collections.shuffle(array);

4.发牌

需要将牌发给三位诗人,然后最后三张牌当做底牌!

这里也需要以下三步的操作:

  1. 首先,创建三个诗人集合和一个底牌集合
  2. 遍历牌盒,先判断是否是最后三张牌,如果是全部放入底牌结合中。
  3. 发牌完成。
        //发牌
        ArrayList<String> gamer1 = new ArrayList<String>();//玩家1
        ArrayList<String> gamer2 = new ArrayList<String>();//玩家1
        ArrayList<String> gamer3 = new ArrayList<String>();//玩家1
        ArrayList<String> dipai = new ArrayList<String>();//底牌三张

        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){
                gamer1.add(poker);
            }
            else if(i%3==1){
                gamer2.add(poker);
            }
            else if(i%3==2){
                gamer3.add(poker);
            }
        }

5.看牌

在发牌完成后,需要看一下每一个人的牌都是什么。这里写一个看牌的方法,将诗人姓名和诗人所对应的牌集合送入方法

代码如下:

        //看牌的方法
        lookpoker("李白",gamer1);
        lookpoker("白居易",gamer2);
        lookpoker("杜甫",gamer3);
        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();
    }

三、总结

虽然本文只是一个简单的斗地主,还没有实现抢地主和把牌整齐处理的操作,主要是帮助大家熟悉ArrayList这个集合。便于大家在后序的开发中更好的使用Java这些集合。
所有代码:

package Game;

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

public class Doudizhu {
    public static void main(String[] args) {
        /*1:创建牌盒,定义一个集合对象,用ArrayList实现
        * 2:往牌盒里装牌
        * 3:洗牌,把牌打撒
        * 4:发牌
        * 5:看盘*/
        ArrayList<String> array = new ArrayList<String>();//创建牌盒
        /*牌盒里一共有54张牌
        ♣2 ♣3...
        ♦2 ♦3...

        * */
        //定义花色
        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("小王");
        System.out.println(array);

        //洗牌
        Collections.shuffle(array);

        //发牌
        ArrayList<String> gamer1 = new ArrayList<String>();//玩家1
        ArrayList<String> gamer2 = new ArrayList<String>();//玩家1
        ArrayList<String> gamer3 = new ArrayList<String>();//玩家1
        ArrayList<String> dipai = new ArrayList<String>();//底牌三张

        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){
                gamer1.add(poker);
            }
            else if(i%3==1){
                gamer2.add(poker);
            }
            else if(i%3==2){
                gamer3.add(poker);
            }
        }

        //看牌的方法
        lookpoker("李白",gamer1);
        lookpoker("白居易",gamer2);
        lookpoker("杜甫",gamer3);
        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();
    }
}

记录时间:2020年11月19日

本文地址:https://blog.csdn.net/weixin_42305672/article/details/109810977

《Java的ArrayList集合使用---唐代诗人斗地主!!!.doc》

下载本文的Word格式文档,以方便收藏与打印。