最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

【算法】撲克發(fā)牌算法實現

 更新時間:2008年11月21日 19:23:39   作者:  
撲克發(fā)牌算法是棋牌游戲中常用的基礎算法,也是游戲開發(fā)人員需要熟悉的基礎算法之一。下面介紹一下該算法的一種實現方式。
首先給撲克牌中每張牌設定一個編號,下面算法實現的編號規(guī)則如下:
u 紅桃按照從小到大依次為:1-13
u 方塊按照從小到大依次為:14-26
u 黑桃按照從小到大依次為:27-39
u 梅花按照從小到大依次為:40-52
u 小王為53,大王為54
算法實現如下:
u 首先按照以上編號規(guī)則初始化一個包含108個數字的數組
u 每次隨機從該數組中抽取一個數字,分配給保存玩家數據的數組
實現該功能的代碼如下所示:
復制代碼 代碼如下:

import java.util.*;
/**
* 發(fā)牌算法的實現
* 要求:把2副牌,也就是108張,發(fā)給4個人,留6張底牌
*/
public class Exec{
public static void main(String[] args){
//存儲108張牌的數組
int[] total = new int[108];
//存儲四個玩家的牌
int[][] player = new int[4][25];
//存儲當前剩余牌的數量
int leftNum = 108;
//隨機數字
int ranNumber;
//隨機對象
Random random = new Random();

//初始化數組
for(int i = 0;i < total.length;i++){
total[i] = (i + 1) % 54;
//處理大小王編號
if(total[i] == 0){
total[i] = 54;
}

}

//循環(huán)發(fā)牌
for(int i = 0;i < 25;i++){
//為每個人發(fā)牌
for(int j = 0;j < player.length;j++){
//生成隨機下標
ranNumber = random.nextInt(leftNum);
//發(fā)牌
player[j][i] = total[ranNumber];
//移動已經發(fā)過的牌
total[ranNumber] = total[leftNum - 1];
//可發(fā)牌的數量減少1
leftNum--;
}
}

//循環(huán)輸出玩家手中的牌
for(int i = 0;i < player.length;i++){
for(int j = 0;j < player[i].length;j++){
System.out.print(" " + player[i][j]);
}
System.out.println();
}
//底牌
for(int i = 0;i < 8;i++){
System.out.print(" " + total[i]);
}
System.out.println();
}
}

相關文章

最新評論

水富县| 兴城市| 浮梁县| 大城县| 岑溪市| 昌黎县| 安阳市| 天祝| 锡林郭勒盟| 阜南县| 从化市| 余庆县| 辛集市| 清流县| 烟台市| 屏南县| 新安县| 平南县| 西和县| 山西省| 获嘉县| 南平市| 鄂托克旗| 调兵山市| 广平县| 克拉玛依市| 盐源县| 松滋市| 木兰县| 定西市| 施秉县| 永新县| 敦化市| 称多县| 利津县| 信丰县| 布尔津县| 手游| 昌宁县| 嵊州市| 大兴区|