@Java实现斗地主发牌
Java实现斗地主发牌
简单的用java实现斗地主的发牌过程
public static void main(String[] args) {
//System.out.println(Arrays.toString(getpai()));
String[]str=getpai();
//System.out.println(Arrays.toString(str));
xipai(str);
//System.out.println(Arrays.toString(str));
String[]p1=new String[25];
String[]p2=new String[25];
String[]p3=new String[25];
String[]p4=new String[25];
String[]dp=new String[8];
for (int i=0;i<p1.length;i++){
p1[i]=fapai(str);
p2[i]=fapai(str);
p3[i]=fapai(str);
p4[i]=fapai(str);
}
for (int i=0;i<8;i++){
dp[i]=fapai(str);
}
System.out.println("p1="+Arrays.toString(p1));
System.out.println("p2="+Arrays.toString(p2));
System.out.println("p3="+Arrays.toString(p3));
System.out.println("p4="+Arrays.toString(p4));
System.out.println("dp="+Arrays.toString(dp));
}
//生成牌
public static String[] getpai(){
//总牌数
String[] pai=new String[108];
//定义花色
String[] p1={"♠","♥","♣","♦",};
//定义牌
String [] p2= {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
//定义存储下标
int index=0;
for (int i=0;i< p1.length;i++){ //遍历花色
for (int j=0;j< p2.length;j++){ //遍历牌
pai[index++]=p1[i]+p2[j]; //存入牌组中
}
}
pai[index++]="小王";
pai[index++]="大王";
//至此生成一副牌,然后变成两幅
for (int i=0;i< pai.length/2;i++){
pai[index++]=pai[i];
}
return pai;
}
//洗牌
public static void xipai(String[] str){
Random random = new Random();
for (int i=0;i<1000;i++){
int index1= random.nextInt(str.length);
int index2= random.nextInt(str.length);
String tmp=str[index1];
str[index1]=str[index2];
str[index2]=tmp;
}
}
//发牌
public static String fapai(String[] pai){
Random random = new Random();
int index= random.nextInt();
do {
index=random.nextInt(pai.length);
}while (pai[index]=="0");
String str=pai[index];
pai[index]="0";
return str;
}
献丑了