JAVA斗地主发牌简写
代码实现:
package zr;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
public class DouDiZhu {
public static void main(String[] args){
HashMap<Integer, String> pokes = new HashMap<>();
List<Integer> Numberpokes = new ArrayList<>();
List<String> colors = new ArrayList<>();
List<String> numbers = new ArrayList<>();
//添加四种花色
colors.add("♥");
colors.add("♠");
colors.add("♦");
colors.add("♣");
//添加牌的序号
numbers.add("2");
numbers.add("A");
numbers.add("K");
numbers.add("Q");
numbers.add("J");
for(int i = 10; i >= 3; i--){
numbers.add(i + "");
}
//将54张牌添加进牌库
int iii = 2;
for(String c:colors){
for(String n:numbers){
pokes.put(iii, c + n);
Numberpokes.add(iii);
iii++;
}
}
pokes.put(1, "小王");
Numberpokes.add(1);
pokes.put(0, "大王");
Numberpokes.add(0);
//展示所有牌
System.out.println(pokes);
//打乱所有牌
Collections.shuffle(Numberpokes);
//添加三位玩家和底牌
ArrayList<Integer> Player1 = new ArrayList<>();
ArrayList<Integer> Player2 = new ArrayList<>();
ArrayList<Integer> Player3 = new ArrayList<>();
ArrayList<Integer> Dipai = new ArrayList<>();
//将所有牌发给三位玩家以及剩余三张留为底牌
for(int i = 0; i < Numberpokes.size(); i++){
int pai = Numberpokes.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);
}
}
}
//将玩家手中下发的乱序牌排序
Collections.sort(Player1);
Collections.sort(Player2);
Collections.sort(Player3);
//展示三位玩家手中的牌和底牌
System.out.println("—————————————————————————————————————————————————————————————");
System.out.println("发牌后:");
show("底牌\t", Dipai, pokes);
show("Player1\t", Player1, pokes);
show("Player2\t", Player2, pokes);
show("Player3\t", Player3, pokes);
}
public static void show(String str,ArrayList<Integer> name,HashMap<Integer,String> poke){
System.out.print(str + "\t");
for(Integer i:name){
String s = poke.get(i);
System.out.print(s + "\t");
}
System.out.println();
}
}
运行结果:
{0=大王, 1=小王, 2=♥2, 3=♥A, 4=♥K, 5=♥Q, 6=♥J, 7=♥10, 8=♥9, 9=♥8, 10=♥7, 11=♥6, 12=♥5, 13=♥4, 14=♥3, 15=♠2, 16=♠A, 17=♠K, 18=♠Q, 19=♠J, 20=♠10, 21=♠9, 22=♠8, 23=♠7, 24=♠6, 25=♠5, 26=♠4, 27=♠3, 28=♦2, 29=♦A, 30=♦K, 31=♦Q, 32=♦J, 33=♦10, 34=♦9, 35=♦8, 36=♦7, 37=♦6, 38=♦5, 39=♦4, 40=♦3, 41=♣2, 42=♣A, 43=♣K, 44=♣Q, 45=♣J, 46=♣10, 47=♣9, 48=♣8, 49=♣7, 50=♣6, 51=♣5, 52=♣4, 53=♣3}
—————————————————————————————————————————————————————————————
发牌后:
底牌 ♠A ♠9 ♠8
Player1 大王 ♥10 ♥9 ♥7 ♥6 ♥4 ♠6 ♠3 ♦2 ♦A ♦J ♦10 ♦4 ♦3 ♣6 ♣4 ♣3
Player2 小王 ♥2 ♥A ♥K ♥Q ♥8 ♠K ♠Q ♠7 ♠5 ♦9 ♦6 ♦5 ♣K ♣8 ♣7 ♣5
Player3 ♥J ♥5 ♥3 ♠2 ♠J ♠10 ♠4 ♦K ♦Q ♦8 ♦7 ♣2 ♣A ♣Q ♣J ♣10 ♣9