⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ta.java

📁 Phone poker games.用J2ME写的一个手机扑克小游戏.
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
			ww.paint(g);
			//g.setColor(100,0,20);
			g.setColor(0,220,0);
			g.fillRect(40,60,155,150);
			g.setColor(0,0,0);
			g.fillRect(40,60,155,10);
			g.fillRect(40,60,10,150);
			g.fillRect(185,60,10,150);
			g.fillRect(40,205,155,10);
			first=false;
		    g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL));
		    g.setColor(20,20,50);
			g.drawString("赌神:1000万",0,0,Graphics.LEFT | Graphics.TOP);
			g.drawString("赌圣:1000万",0,14,Graphics.LEFT | Graphics.TOP);
			g.drawString("赌侠:1000万",0,29,Graphics.LEFT | Graphics.TOP);
			g.drawString("赌鬼:5万",0,43,Graphics.LEFT | Graphics.TOP);
			g.drawString("赌神",150,20,Graphics.LEFT | Graphics.TOP);
			g.drawString("赌圣",200,90,Graphics.LEFT | Graphics.TOP);
			g.drawString("赌侠",5,100,Graphics.LEFT | Graphics.TOP);
			g.drawString("赌鬼",100,220,Graphics.LEFT | Graphics.TOP);
		}
		if(pass&&whos_turn==0&&fire_down)
		{
			if(judge!=4)
			{
			g.setColor(100,0,0);
			g.fillRect(100,165,45,40);			
			whos_turn++;
			 judge++;
		     g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL));
		     g.setColor(200,0,10);
             g.drawString("pass",102,170,Graphics.LEFT | Graphics.TOP);	
			out_card=0;		
			pass=false;
			fire_down=false;
			}
		}
		if(out_card>0&&whos_turn==0&&fire_down)
		{
			//这里需要判断是否能出牌
			g.setColor(100,0,0);
			g.fillRect(100,165,40,40);	
			int j=0;
			for(int i=1;i<=13;i++)
			{
				if(is_up[i]==1)
				{
				   card2[j]=card[0][i];
				   type2[j]=type[0][i];					
				   is_up[i]=2;
				   j++;
				}
			}
			if(judge==4)
			{
				sum_cards=out_card;
			for(int i=0;i<sum_cards;i++)
				{
				   card1[i]=i;
				  type1[i]=i;						
				}
			}
			j=0;
			if(compare(card1,type1,card2,type2,sum_cards)&&out_card==sum_cards)
			{
			for(int i=0;i<sum_cards;i++)
			{
			 card1[i]=card2[i];
			 type1[i]=type2[i];						
			}		
			judge=1;
			all[0]-=sum_cards;
			whos_turn++;
            for(int i=0;i<sum_cards;i++)
			{
		    drawcard(g,card1[i],type1[i],102+i*5,167);
			}
			}
			else
			{
			for(int i=1;i<=13;i++)
			{
             is_up[i]=0;
			}				
			}
			for(int i=1;i<=13;i++)
			{
				if(is_up[i]==0)
				{   
					j++;
					card[0][j]=card[0][i];
					type[0][j]=type[0][i];
					is_up[j]=0;
				}
			}
			fire_down=false;
			out_card=0;
		}
		if(can_draw)
		{
       	g.setColor(0,220,0);
		g.fillRect(0,240,250,50);
		for(int i=1;i<=all[0];i++)
		{
		if(is_up[i]==1)
		{
		drawcard(g,card[0][i],type[0][i],40+i*10,240);
		}
		if(is_up[i]==0)
		{
		drawcard(g,card[0][i],type[0][i],40+i*10,250);
		}
		}
		if(key)
		{
			if(which>=all[0])
			{
				which=all[0];
			}
			g.setColor(20,250,10);
			if(which!=0)
			{
			if(is_up[which]==1)
			{
			g.drawRect(40+which*10,240,20,30);	
			}
			else if(is_up[which]==0)
			{
			if(which<all[0])
		    g.drawRect(40+which*10,250,10,30);
		    else
		    g.drawRect(40+which*10,250,20,30);
			}
			}		
		}
		can_draw=false;
		}
		this.flushGraphics();
	}
	private void input()
    {
    int k=getKeyStates();
    if((k&RIGHT_PRESSED)!=0)
	{
		/*try {  
	    play.start();
        } catch (MediaException ex) 
        { ex.printStackTrace(); }*/
		which++;
		if(which>all[0])
			which=0;
		can_draw=true;
		key=true;
	}
	if((k&LEFT_PRESSED)!=0)
	{
		/*try {  
	    play.start();
        } catch (MediaException ex) 
        { ex.printStackTrace(); }*/
		which--;
		if(which<0)
			which=all[0];
		can_draw=true;
		key=true;
	}
	if((k&UP_PRESSED)!=0)
	{
		/*try {  
	    play.start();
        } catch (MediaException ex) 
        { ex.printStackTrace(); }*/
		is_up[which]=1;
		can_draw=true;
	}
	if((k&DOWN_PRESSED)!=0)
	{
		/*try {  
	    play.start();
        } catch (MediaException ex) 
        { ex.printStackTrace(); }*/
		is_up[which]=0;
		can_draw=true;
	}
	if((k&FIRE_PRESSED)!=0)
	{
		/*try {  
	    play.start();
        } catch (MediaException ex) 
        { ex.printStackTrace(); }*/
		for(int i=1;i<=all[0];i++)
			if(is_up[i]==1)
			{ 
				out_card++;
			}
		if(out_card==0)
		{
			pass=true;
			can_draw=true;
		}
		else if(out_card>0)
			can_draw=true;
		fire_down=true;
	}
    }
	public void givecard()//这是随机分牌的方法
	{
		int allcard[]=new int[52],allcardtype[]=new int[52],nn=1,tt=0,end=52,v;
		for(int i=0;i<52;i++)
		{
			tt++;
			if(tt==5)
			{
				tt=1;
				nn++;
			}
			allcard[i]=nn;
			allcardtype[i]=tt;
		}
		nn=0;
		tt=0;
		Random random=new Random();
		while(end!=0)
		{
		v=Math.abs(random.nextInt())%end;
		if(allcard[v]==3&&allcardtype[v]==4)
		{
			whos_turn=nn;
		}
		switch(nn)
		{
		case 0:card[0][tt+1]=allcard[v];type[0][tt+1]=allcardtype[v];break;
		case 1:card[1][tt]=allcard[v];type[1][tt]=allcardtype[v];break;
		case 2:card[2][tt]=allcard[v];type[2][tt]=allcardtype[v];break;
		case 3:card[3][tt]=allcard[v];type[3][tt]=allcardtype[v];break;
		}
		nn++;
		if(nn==4)
		{
			nn=0;
			tt++;
		}
		end--;
		if(end!=v)
		{
			allcard[v]=allcard[end];
			allcardtype[v]=allcardtype[end];
		}
		}
	for(int i=0;i<=3;i++)
	{
		all[i]=13;
	}
	judge=4;
	}
public void sub(){
       int token = 0 ;
       for(int i = 0 ; i<sum_cards;i++){
           for(int j = 0 ;j<14;j++){
               if(card1[i]==card[whos_turn][j]&&type1[i]==type[whos_turn][j]) {
                   for(int k = j ; k <13; k++){
                   card[whos_turn][k] = card[whos_turn][k+1] ;
                   type[whos_turn][k] = type[whos_turn][k+1] ;
                   }
           }
           }
           token++;
           if(token ==sum_cards) break;
       }
   }	
public boolean compare(int[] a1,int[] a2, int[] b1,int[] b2,int total){
        if(total == 1){
            if(b1[0]>a1[0]) return true ;
            else if(b1[0] == a1[0])
            {
                if(b2[0]>a2[0]) return true ;
                else return false ;
            }
            else return false ;
        }
        
        if(total == 2){
            //如果是非法类型,返回false。
            if(b1[0]!=b1[1]){System.out.println("type error");return false;}
            
            //如果类型正确,开始比较。
            if(b1[0]>a1[0]) return true;
            else if(b1[0] == a1[0]){
                if(b2[0]==4||b2[1] == 4) return true;
                else return false ;
            } 
            else return false ;
        }
        
        if(total == 3){
            //如果是非法类型,返回false
            if(b1[0]!=b1[1]||b1[1]!=b1[2]){System.out.println("error");return false ;}
            
            //如果类型正确,开始比较。
            if(b1[0]>a1[0]) return true;
            else return false ;
        }
        
        if(total == 5) {
            //对俩副牌从大到小排列
            int typeb =0;
            int typea,tempa1,tempa2,tempb1,tempb2;
            int tokena = 1;
            int tokenb = 1;
            
            for(int i = 0 ; i < 4 ; i++  ){
                tempa1 = i ;
                for(int j = i+1 ;j<5 ; j++)
                 if(a1[tempa1]<a1[j]) tempa1 = j;
                if(tempa1 != i){
                    tempa2 = a1[tempa1];
                    a1[tempa1] = a1[i];
                    a1[i] = tempa2 ;
                }
                     
                
                tempb1 = i;
                for(int j = i+1 ;j<5 ; j++)
                if(b1[tempb1]<b1[j]) tempb1 = j ;
                if(tempb1 != i ){
                    tempb2 = b1[tempb1] ;
                    b1[tempb1] = b1[i];
                    b1[i] = tempb2 ;
                }
            }
                
    /////////////////////////判断是否是同花///////////////////////////////////////
            for(int i = 0 ; i < 4 ; i++){
                if(a2[i] != a2[i+1]) {
                    tokena = 0 ;
                    break ;
                }
               
                    
               }
            for(int i = 0 ;i<4;i++){
                 if(b2[i] != b2[i+1]){
                    tokenb = 0 ;
                    break ;
                }
               
            }
            // System.out.println(tokenb);
         ////////////////////开始给牌定级别//////////////////////////////////////   
            if(tokena == 1){
                int serie = 1 ;
                for(int i = 0 ; i<4 ; i++)
                {
                    if(a1[i] != a1[i+1]+1){
                        serie = 0 ;
                        break ;
                    }
                    
                }
                if(serie == 1) typea = 5 ;
                else typea = 2 ;
            }
            else {
                if((a1[0]==a1[1]&&a1[1]==a1[2]&&a1[2]==a1[3])||(a1[1]==a1[2]&&a1[2]==a1[3]&&a1[3]==a1[4])) typea = 4 ;
                else if((a1[0]==a1[1]&&a1[1]==a1[2])||(a1[2]==a1[3]&&a1[3]==a1[4]))   typea = 3 ;
                else typea = 1 ;
            } 
            
            if(tokenb == 1){
                int serie = 1 ;
                for(int i = 0 ; i<4 ; i++)
                {
                    //System.out.println(i+":"+b1[i+1]);
                    if(b1[i] != b1[i+1]+1){
                        serie = 0 ;
                        break ;
                    }
                    
                }
                //System.out.println(serie);
                if(serie == 1) typeb = 5 ;
                else typeb = 2 ;
            }
            else {
                if((b1[0]==b1[1]&&b1[1]==b1[2]&&b1[2]==b1[3])||(b1[1]==b1[2]&&b1[2]==b1[3]&&b1[3]==b1[4])) typeb = 4 ;
                else if((b1[0]==b1[1]&&b1[1]==b1[2]&&b1[3]==b1[4])||(b1[0]==b1[1]&&b1[2]==b1[3]&&b1[3]==b1[4]))   typeb = 3 ;
                else {
                    int serie = 1 ;
                    for(int i = 0 ; i<4 ;i++){
                        if(b1[i] != b1[i+1]+1){
                            serie = 0;
                            break;
                        }
                        
                    }
                    //System.out.println("serie:"+serie);
                    if(serie == 1) typeb = 1;
                }
                
            }
            System.out.println(typea+" "+typeb);
            //System.out.println(tokena+"\n"+tokenb);
            //如果是非法类型,返回false。
            if(typeb !=1&&typeb!=2&&typeb!=3&&typeb!=4&&typeb!=5) {System.out.println("error");return false;}
            
            /////////////开始比较牌的大小///////////////////////////////////////////////
            if(typeb > typea)   return true ;
            else if(typeb == typea){
                switch(typea){
                    case 5:{
                        if(b2[0]>a2[0]) return true ;
                        else if(b2[0]==a2[0]) {
                            if(b1[0]>a1[0]) return true ;
                            else return false ;
                        }
                        else return false ;
                     }
                    case 4:{
                        if(b1[2]>a1[2]) return true;
                        else return false ;
                    }
                    case 3:{
                        if(b1[2]>a1[2]) return true ;
                        else return false ;
                    }
                    case 2:{
                        if(b2[0]>a2[0]) return true ;
                        else if(b2[0] == a2[0]){
                            if(b1[0]>a1[0]) return true ;
                            else return false ;
                        }
                        else return false ;
                    }
                    case 1:{
                        if(b1[0]>a1[0]) return true;
                        else return false ;
                    }
                }
                 
        }
    }
        return false ;
    }
    public void shu(int fi[],int se[],int th[],int fv[],int fi1[],int se2[],int th3[],int fv5[],int mycard[],int hs[])
	{
     int ff=0,second=0,three=0,four=0,fff=0,six=0,seven=0,eight=0,nine=0,ten=0,eleven=0,twelve=0;
  int a=0,b=0,k=0,n=0,n1=0;

    int b1=0,k1=0,r1=0,r2=0,r3=0,r4=0;
    
    int m[]=new int[13];
    int mm[]=new int[13];

   int thirteen=0;	
       for(int i=0;i<13;i++)
       { switch(mycard[i])
         {   case 1:ff++;m[0]=ff;
                   break;
             case 2:second++;m[1]=second;
                    break;
             case 3:three++;m[2]=three;
                     break;
             case 4:four++;m[3]=four;
                     break;
             case 5:fff++;m[4]=fff;
                     break;
             case 6:six++;m[5]=six;
                     break;
             case 7:seven++;m[6]=seven;
                     break;
             case 8:eight++;m[7]=eight;
                     break;
             case 9:nine++;m[8]=nine;
                     break;
             case 10:ten++;m[9]=ten;
                     break;
             case 11:eleven++;m[10]=eleven;
                     break;
             case 12:twelve++;m[11]=twelve;
                     break;
             case 13:thirteen++;m[12]=thirteen;
                     break;
             default:break;  
                     
         }        
      }
         ff=0;
      for(int i=0;i<13;i++)
      { if(m[i]==1)
        { fi[a]=i+1; a++;
          for(int j=0;j<13;j++)
          { if(mycard[j]==i+1) fi1[ff]=hs[j];
          }
          ff++;
        
        }
////////////////////////////////////////////////        
        if(m[i]==2)
        {  se[b]=i+1;
           ++b;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -