天天看点

Java -洗牌、发牌、随机地主

package text03;

public class text1{

public static void main(String[] args) {

//练习一、

//请定义一副扑克牌,输出扑克牌里的所有的值,(例如红心J)

int k,j;

String[] puke=new String[60];

String[] dizhup=new String[20];

String[] huase={"方块","梅花","红心","黑桃"};

String[] shuzi={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};

for( k=0;k<shuzi.length;k++){

for(j=0;j<huase.length;j++){

System.out.print(huase[j]+shuzi[k]+" ");

}

System.out.println("");

}

System.out.print("大王"+" "+"小王");

System.out.println("");

//(*10 是因为,Math.random() 随机出来的0-1之间的小数。)

//那么请你,基于以上练习,先把牌洗一下,再进行发牌 ,然后再随机地主吧。

//要求步骤:

//1、洗牌方法

//2、发牌方法

//3、(可选)随机地主方法

//4、(可选)显示3张底牌方法

//5、(可选)找出地主手中最小的牌

text1 a=new text1();

puke=a.kkk(huase, shuzi);

dizhup=a.kkk2(puke);

a.kkk3(puke);

a.kkk5(dizhup);

}

public String[] kkk(String huase[],String shuzi[]){

int i,j;

int hs,sz,sum=0;

String temp;

String[] puke;

puke=new String[54];

//给扑克牌赋值

for(i=0;i<=3;i++){

for(j=0;j<=12;j++){

puke[sum]=huase[i]+shuzi[j];

sum++;

if(sum>=53){

break;

}

}

if(sum>=53){

break;

}

}

puke[52]="大王";

puke[53]="小王";

//洗牌

for(i=0;i<=10000;i++){

hs=(int)(Math.random()*53);

sz=(int)(Math.random()*53);

temp=puke[hs];

puke[hs]=puke[sz];

puke[sz]=temp;

}

return puke;

}

public String[] kkk2(String puke[]){

String[] A=new String[20];

String[] B=new String[20];

String[] C=new String[20];

int i;

for(i=0;i<=16;i++){

A[i]=puke[i];

B[i]=puke[3*i+1];

C[i]=puke[3*i+2];

}

System.out.print("A的牌 ");

for(i=0;i<=16;i++){

System.out.print(A[i]+" ");

}

System.out.println(" ");

System.out.print("B的牌 ");

for(i=0;i<=16;i++){

System.out.print(B[i]+" ");

}

System.out.println(" ");

System.out.print("C的牌 ");

for(i=0;i<=16;i++){

System.out.print(C[i]+" ");

}

System.out.println("");

//随机地主

String[] dizhup=new String[20];

int dizhu=(int)(Math.random()*10000);

if(dizhu>6666){

System.out.println("A是地主");

A[17]=puke[51];

A[18]=puke[52];

A[19]=puke[53];

for(i=0;i<=19;i++){

dizhup[i]=A[i];

}

}

else if(dizhu>3333){

System.out.println("B是地主");

B[17]=puke[51];

B[18]=puke[52];

B[19]=puke[53];

for(i=0;i<=19;i++){

dizhup[i]=B[i];

}

}

else{

System.out.println("C是地主");

C[17]=puke[51];

C[18]=puke[52];

C[19]=puke[53];

for(i=0;i<=19;i++){

dizhup[i]=C[i];

}

}

return dizhup;

}

//显示底牌

public void kkk3(String puke[]){

int i;

System.out.println("底牌是:");

for(i=51;i<=53;i++){

System.out.print(puke[i]+" ");

}

System.out.println("");

}

//地主手中最小的牌

public void kkk5(String dizhup[]){

int i;

int[] num1=new int[20];

System.out.println("地主手中最小的牌是:");

for(i=0;i<=19;i++){

switch(dizhup[i]){

case "方块3":

num1[i]=0;

break;

case "梅花3":

num1[i]=1;

break;

case "红心3":

num1[i]=2;

break;

case "黑桃3":

num1[i]=3;

break;

case "方块4":

num1[i]=4;

break;

case "梅花4":

num1[i]=5;

break;

case "红心4":

num1[i]=6;

break;

case "黑桃4":

num1[i]=7;

break;

case "方块5":

num1[i]=8;

break;

case "梅花5":

num1[i]=9;

break;

case "红心5":

num1[i]=10;

break;

case "黑桃5":

num1[i]=11;

break;

case "方块6":

num1[i]=12;

break;

case "梅花6":

num1[i]=13;

break;

case "红心6":

num1[i]=14;

break;

case "黑桃6":

num1[i]=15;

break;

case "方块7":

num1[i]=16;

break;

case "梅花7":

num1[i]=17;

break;

case "红心7":

num1[i]=18;

break;

case "黑桃7":

num1[i]=19;

break;

case "方块8":

num1[i]=20;

break;

case "梅花8":

num1[i]=21;

break;

case "红心8":

num1[i]=22;

break;

case "黑桃8":

num1[i]=23;

break;

case "方块9":

num1[i]=24;

break;

case "梅花9":

num1[i]=25;

break;

case "红心9":

num1[i]=26;

break;

case "黑桃9":

num1[i]=27;

break;

case "方块10":

num1[i]=28;

break;

case "梅花10":

num1[i]=29;

break;

case "红心10":

num1[i]=30;

break;

case "黑桃10":

num1[i]=31;

break;

case "方块J":

num1[i]=32;

break;

case "梅花J":

num1[i]=33;

break;

case "红心J":

num1[i]=34;

break;

case "黑桃J":

num1[i]=35;

break;

case "方块Q":

num1[i]=36;

break;

case "梅花Q":

num1[i]=37;

break;

case "红心Q":

num1[i]=38;

break;

case "黑桃Q":

num1[i]=39;

break;

case "方块K":

num1[i]=40;

break;

case "梅花K":

num1[i]=41;

break;

case "红心K":

num1[i]=42;

break;

case "黑桃K":

num1[i]=43;

break;

case "方块A":

num1[i]=44;

break;

case "梅花A":

num1[i]=45;

break;

case "红心A":

num1[i]=46;

break;

case "黑桃A":

num1[i]=47;

break;

case "方块2":

num1[i]=48;

break;

case "梅花2":

num1[i]=49;

break;

case "红心2":

num1[i]=50;

break;

case "黑桃2":

num1[i]=51;

break;

case "小王":

num1[i]=52;

break;

case "大王":

num1[i]=53;

break;

}

}

int min;

min=num1[0];

for(i=0;i<=18;i++){

if(num1[i+1]<=min){

min=num1[i+1];

}

}

String[] mmin=new String[2];

System.out.println("");

switch(min){

case 0:

mmin[1]="方块3";

break;

case 1:

mmin[1]="梅花3";

break;

case 2:

mmin[1]="红心3";

break;

case 3:

mmin[1]="黑桃3";

break;

case 4:

mmin[1]="方块4";

break;

case 5:

mmin[1]="梅花4";

break;

case 6:

mmin[1]="红心4";

break;

case 7:

mmin[1]="黑桃4";

break;

case 8:

mmin[1]="方块5";

break;

case 9:

mmin[1]="梅花5";

break;

case 10:

mmin[1]="红心5";

break;

case 11:

mmin[1]="黑桃5";

break;

case 12:

mmin[1]="方块6";

break;

case 13:

mmin[1]="梅花6";

break;

case 14:

mmin[1]="红心6";

break;

case 15:

mmin[1]="黑桃6";

break;

case 16:

mmin[1]="方块7";

break;

case 17:

mmin[1]="梅花7";

break;

case 18:

mmin[1]="红心7";

break;

case 19:

mmin[1]="黑桃7";

break;

case 20:

mmin[1]="方块8";

break;

case 21:

mmin[1]="梅花8";

break;

case 22:

mmin[1]="红心8";

break;

case 23:

mmin[1]="黑桃8";

break;

case 24:

mmin[1]="方块9";

break;

case 25:

mmin[1]="梅花9";

break;

case 26:

mmin[1]="红心9";

break;

case 27:

mmin[1]="黑桃9";

break;

case 28:

mmin[1]="方块10";

break;

case 29:

mmin[1]="梅花10";

break;

case 30:

mmin[1]="红心10";

break;

case 31:

mmin[1]="黑桃10";

break;

case 32:

mmin[1]="方块";

break;

case 33:

mmin[1]="梅花J";

break;

case 34:

mmin[1]="红心J";

break;

case 35:

mmin[1]="黑桃J";

break;

case 36:

mmin[1]="方块Q";

break;

case 37:

mmin[1]="梅花Q";

break;

case 38:

mmin[1]="红心Q";

break;

case 39:

mmin[1]="黑桃Q";

break;

case 40:

mmin[1]="方块K";

break;

case 41:

mmin[1]="梅花K";

break;

case 42:

mmin[1]="红心K";

break;

case 43:

mmin[1]="黑桃K";

break;

case 44:

mmin[1]="方块A";

break;

case 45:

mmin[1]="梅花A";

break;

case 46:

mmin[1]="红心A";

break;

case 47:

mmin[1]="黑桃A";

break;

case 48:

mmin[1]="方块2";

break;

case 49:

mmin[1]="梅花2";

break;

case 50:

mmin[1]="红心2";

break;

case 51:

mmin[1]="黑桃2";

break;

case 52:

mmin[1]="小王";

break;

case 53:

mmin[1]="大王";

break;

}

System.out.print(mmin[1]);

}

}