提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本文是作者看完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日