`

扑克牌程序

    博客分类:
  • Java
阅读更多
    经常遇到这个问题,自己做了一下,随机发52张牌,分给4个人,每个人手中的牌是13张无重复,花色S代表黑桃,H代表红桃,D代表方块,C代表梅花。发完牌后4组牌由小到大排序(依数字的大小从1-13)。若有同一数字牌出现则依照S、H、D、C顺序。
    1.Puke.java
  
   package pack3;
import java.util.*;
public class Puke{
    int poke[]=new int[52];
    int poke_a1[]=new int[13];
    int poke_a2[]=new int[13];
    int poke_a3[]=new int[13];
    int poke_a4[]=new int[13];
    String a1="first person:";
    String a2="second person:";
    String a3="third person:";
    String a4="forth person:";
    public String[] name={"S","H","D","C"};
    public Puke(){
        for(int i=0;i<52;i++){
            poke[i]=i;
        }   
    }

    public void faPai(){
        
        int m1=0;
        int m2=0;
        int m3=0;
        int m4=0;
        Random myRandom=new Random(); 
        for(int i=0;i<52;i++){
        int temp=poke[i];
        int j=myRandom.nextInt(52);
        poke[i]=poke[j];
        poke[j]=temp;
        }
        for(int i=0;i<52;i++){
             
             if(i%4==0){
                 
                 poke_a1[m1]=poke[i];
                 m1++;
             }
              if(i%4==1){
                 poke_a2[m2]=poke[i];
                 m2++;
             }
              if(i%4==2){
                 poke_a3[m3]=poke[i];
                 m3++;
             }
              if(i%4==3){
                 poke_a4[m4]=poke[i];
                 m4++;
             }
        }
       
    }
   
    
   public String getFormat(int newpoke[],int number){
        int r1,r2;
        String s="";
        sort_puke(newpoke,13);
         for(int i=0;i<number;i++){
            r1=newpoke[i]%4;
            r2=newpoke[i]/4;
            if(r2==12)
                s+=name[r1]+"K"+"\t";
            if(r2==11)
                s+=name[r1]+"Q"+"\t";
            if(r2==10)
                s+=name[r1]+"J"+"\t";
            if(r2>=0&&r2<=9)
                s+=name[r1]+Integer.toString(r2+1)+"\t";
        }
       return s;
   }
  public void sort_puke(int newpoke[],int number)
	{
		int min,temp,r1,r2;
		for(int i=0;i<number-1;i++)
		{
			min=i;
			for(int j=i+1;j<number;j++)
			{
				if((newpoke[j]/4)<(newpoke[min]/4))
				{
					min=j;
				}
				if((newpoke[j]/4)==(newpoke[min]/4))
				{
					r1=newpoke[j]%4;
					r2=newpoke[min]%4;
					if(r1<r2)
					{
						min=j;
					}
				}
			}
			if(min!=i)
			{
				temp=newpoke[i];
				newpoke[i]=newpoke[min];
				newpoke[min]=temp;
			}
		}

	
		

	}

    public void outPut(){
        System.out.println(a1+getFormat(poke_a1,13));
        System.out.println();
        System.out.println(a2+getFormat(poke_a2,13));
        System.out.println();
        System.out.println(a3+getFormat(poke_a3,13));
        System.out.println();
        System.out.println(a4+getFormat(poke_a4,13));
    }
}
 

    2.prog3.java
package pack3;
public class prog3{
    public static void main(String args[]){
         Puke mypuke=new Puke();
         mypuke.faPai();
         mypuke.outPut();
    }
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics