前言
暑期线上实训的第一节课。java相关内容的复习。
题目
用java实现斗地主发牌、按大小自动排序功能。
具体要求如下:
- 一副扑克牌最基本的54张牌,包括红桃、黑桃、方片、梅花四种花色的A、2、3、4、5、6、7、8、9、10、J、Q、K以及大王与小王;
- 斗地主模式 ,包含大小王在内的54张牌,去掉三张底牌后平均分发给三名玩家;
- 要求展示生成后打乱的扑克序列;
- 要求展示三个人的手牌及底牌;
生成扑克
新建数组
//数组1放所有的牌
List<String> pokes = new ArrayList<>();
//数组2放花色
List<String> colors = new ArrayList<>();
//数组3放数字
List<String> numbers = new ArrayList<>();
添加花色和各种数值
//添加四种花色
colors.add("♥");
colors.add("♠");
colors.add("♦");
colors.add("♣");
//添加A2345678910JQK
numbers.add("A");
for(int i=2;i<=10;i++){
numbers.add(i+"");
}
numbers.add("J");
numbers.add("Q");
numbers.add("K");
for(String c:colors){
for(String n:numbers){
String pai=c+n;
pokes.add(pai);
}
}
//添加大王和小王
pokes.add("大王");
pokes.add("小王");
System.out.println("有序的整副扑克"+pokes);
//洗牌
Collections.shuffle(pokes);
System.out.println("打乱的整副扑克"+pokes);
发牌功能
//留下3张底牌的同时完成发牌
ArrayList<String> player1=new ArrayList<>();
ArrayList<String> player2=new ArrayList<>();
ArrayList<String> player3=new ArrayList<>();
ArrayList<String> dipai=new ArrayList<>();
for(int i=0;i<pokes.size();i++){
String pai=pokes.get(i);
if(i>=51){
dipai.add(pai);
}else{
if(i%3==0){
player1.add(pai);
}else if(i%3==1){
player2.add(pai);
}else{
player3.add(pai);
}
}
}
排序功能
元素交换位置
private static <E> void swap(List<E> list,int index1,int index2) {
E e=list.get(index1);
list.set