-
派发牌算法的实现 (java)
![](/Images/OutliningIndicators/None.gif)
import java.util.*;
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
/** *//**
* 派发牌算法的实现
* 要求:把2副牌,也就是108张,发给4个人,留8张底牌
*/
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
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());
![](/Images/OutliningIndicators/InBlock.gif)
int getRandom(int size)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return (rdm.nextInt() & 0x7FFFFFFF) % size;
}
public PaiPai()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
initPai();
faPai();
}
public void initPai()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
m_turn=0;
int randomsite;
int temppai;
//赋初值--发牌一般形式:1.按点数发 2.牌数和花色发
//下面是按点数发
for(int i=0;i<pokerpai.length;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
pokerpai[i]=(i+1)%55;
}
//给两副牌
for(int i=0;i<2;i++)
for(int j=0;j<pokerpai.length;j++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
allpai[m_turn]=pokerpai[j];
m_turn++;
}
//洗牌
for(int i=0;i<allpai.length;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
randomsite=getRandom(allpai.length);
temppai=allpai[randomsite];
allpai[randomsite]=allpai[i];
allpai[i]=temppai;
}
}
public void faPai()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//一轮发四人牌,共25轮
for(int i=0;i<25;i++)
for(int j=0;j<playerpai.length;j++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
m_turn--;
playerpai[j][i]=allpai[m_turn];
}
//留底牌
for(int i=0;i<dipai.length;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
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)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
System.out.println("Showpai:start.");
for(int i=0;i<m_pai.length;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
System.out.print(" "+m_pai[i]);
}
System.out.println();
System.out.println("Showpai:end.");
}
public static void main(String[] args)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
new PaiPai();
}
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/None.gif)
-
相关阅读:
.NET实现Excel文件的读写 未测试
权限管理设计
struts1中配置应用
POJ 2139 Six Degrees of Cowvin Bacon(floyd)
POJ 1751 Highways
POJ 1698 Alice's Chance
POJ 1018 Communication System
POJ 1050 To the Max
POJ 1002 4873279
POJ 3084 Panic Room
-
原文地址:https://www.cnblogs.com/bluespot/p/911755.html
Copyright © 2020-2023
润新知