需求
//斗地主
/*
- 需求:
- 通过程序实现斗地主过程中的洗牌、发牌、看牌
- 思路:
- 1、创建一个牌盒,定义一个集合对象,用ArrayList实现
- 2、向牌盒里装牌
- 3、洗牌,将牌序打乱,用 Collections和shuffle()方法实现
- 4、发牌,遍历集合,给三个玩家发牌
- 5、看牌、三个玩家分别遍历自己的牌
- */
代码实现
package doudizhu;
import java.util.ArrayList;
import java.util.Collections;
public class PokerDemo {
public static void main(String[] args) {
//创建一个牌盒,定义一个集合对象,用ArrayList实现
ArrayList<String> array=new ArrayList<>();
//向牌盒里装牌
//定义花色数组
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("大王");
//洗牌,将牌序打乱,用Collections和shuffle()方法实现
Collections.shuffle(array);
//发牌,遍历集合,给三个玩家发牌
ArrayList<String> play01=new ArrayList<>(); //三个玩家
ArrayList<String> play02=new ArrayList<>();
ArrayList<String> play03=new ArrayList<>();
ArrayList<String> dipai=new ArrayList<>(); //用来存储三张底牌
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){
play01.add(poker);
}else if (i%3==1){
play02.add(poker);
}else if (i%3==2){
play03.add(poker);
}
}
//看牌、三个玩家分别遍历自己的牌
lookPoker("玩家1",play01);
lookPoker("玩家2",play02);
lookPoker("玩家3",play03);
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();
}
}