Java的ArrayList集合使用---唐代诗人斗地主!!!
程序员文章站
2022-06-21 15:14:03
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、集合如何实现斗地主?二、代码部分1.IDEA软件2.创建牌盒3.洗牌4.发牌5.看牌三、总结前言本文是作者看完Java前面基础部分跟着一起做的一个学生管理系统,主要就是增删改查四种操作,并未使用到数据库!!!提示:以下是本篇文章正文内容,下面案例可供参考一、集合如何实现斗地主?我们现实生活中关于斗地主,首先要有一副牌,然后把牌洗一下,在然后发牌,最后抢地主!因此斗地主需要以下的5步!创建牌盒,定义一个集合对...
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本文是作者看完Java前面基础部分跟着一起做的一个学生管理系统,主要就是增删改查四种操作,并未使用到数据库!!!
提示:以下是本篇文章正文内容,下面案例可供参考
一、集合如何实现斗地主?
我们现实生活中关于斗地主,首先要有一副牌,然后把牌洗一下,在然后发牌,最后抢地主!因此斗地主需要以下的5步!
- 创建牌盒,定义一个集合对象,用ArrayList实现
- 往牌盒里装牌
- 洗牌,把牌打撒
- 发牌
- 看牌
话不多说直接上代码!
二、代码部分
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.发牌
需要将牌发给三位诗人,然后最后三张牌当做底牌!
这里也需要以下三步的操作:
- 首先,创建三个诗人集合和一个底牌集合
- 遍历牌盒,先判断是否是最后三张牌,如果是全部放入底牌结合中。
- 发牌完成。
//发牌
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、LinkedList、Vector的使用方法及区别
-
java中的ArrayList集合的扩容和一些方法的使用:
-
Java的ArrayList集合使用---唐代诗人斗地主!!!
-
Java集合系列(二):ArrayList、LinkedList、Vector的使用方法及区别
-
Java 集合框架 Arraylist的基本使用方法、Vector的特有方法、LinkedList的特有方法、在集合中删除重复自定义类型元素(重写equals方法)
-
java中的ArrayList集合的扩容和一些方法的使用:
-
Java的ArrayList集合使用---唐代诗人斗地主!!!