派发牌算法的实现 (java)

 


import  java.util. * ;

/** */ /** 
* 派发牌算法的实现 
* 要求:把2副牌,也就是108张,发给4个人,留8张底牌 
*/


public   class  PaiPai  {
    
    
int[]    pokerpai = new int[54];
    
int[]      allpai = new int[108];
    
int[][] playerpai = new int[4][25];
    
int[]       dipai = new int[8]; 
    
int m_turn;
    
    Random rdm 
= new Random(System.currentTimeMillis());

    
int getRandom(int size)
    
{
        
return (rdm.nextInt() & 0x7FFFFFFF% size;
    }

    
    
public PaiPai()
    
{
        initPai();
        faPai();
    }

    
    
public void initPai()
    
{
        m_turn
=0;
        
int randomsite;
        
int temppai;
        
//赋初值--发牌一般形式:1.按点数发  2.牌数和花色发
        
//下面是按点数发
        for(int i=0;i<pokerpai.length;i++)
        
{
            pokerpai[i]
=(i+1)%55;
        }

        
//给两副牌
        for(int i=0;i<2;i++)
           
for(int j=0;j<pokerpai.length;j++)
           
{
               allpai[m_turn]
=pokerpai[j];
               m_turn
++;
           }

        
//洗牌
        for(int i=0;i<allpai.length;i++)
        
{
            randomsite
=getRandom(allpai.length);
            temppai
=allpai[randomsite];
            allpai[randomsite]
=allpai[i];
            allpai[i]
=temppai;
            
        }

    }

    
    
    
public void faPai()
    
{
        
//一轮发四人牌,共25轮
        for(int i=0;i<25;i++)
           
for(int j=0;j<playerpai.length;j++)
           
{
               m_turn
--;
               playerpai[j][i]
=allpai[m_turn];
           }

        
//留底牌
        for(int i=0;i<dipai.length;i++)
        
{
            m_turn
--;
            dipai[i]
=allpai[m_turn];
            
        }

        
//显示四家牌
        for(int j=0;j<playerpai.length;j++)
               showPai(playerpai[j]);
        
//显示底牌
        showPai(dipai);
    }

    
    
public void showPai(int[] m_pai)
    
{
        System.out.println(
"Showpai:start.");
        
for(int i=0;i<m_pai.length;i++)
        
{
            System.out.print(
" "+m_pai[i]);
        }

        System.out.println();
        System.out.println(
"Showpai:end.");
    }

    
    
public static void main(String[] args)
    
{
        
new PaiPai();
    }


}

转载于:https://www.cnblogs.com/bluespot/archive/2007/09/30/911755.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值