色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

【算法】撲克發牌算法實現

首先給撲克牌中每張牌設定一個編號,下面算法實現的編號規則如下:
u 紅桃按照從小到大依次為:1-13
u 方塊按照從小到大依次為:14-26
u 黑桃按照從小到大依次為:27-39
u 梅花按照從小到大依次為:40-52
u 小王為53,大王為54
算法實現如下:
u 首先按照以上編號規則初始化一個包含108個數字的數組
u 每次隨機從該數組中抽取一個數字,分配給保存玩家數據的數組
實現該功能的代碼如下所示:
復制代碼 代碼如下:
import Java.util.*;
/**
* 發牌算法的實現
* 要求:把2副牌,也就是108張,發給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;
}

}

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

//循環輸出玩家手中的牌
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();
}
}

jsp技術【算法】撲克發牌算法實現,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 台山市| 长泰县| 海淀区| 龙岩市| 包头市| 灵山县| 珲春市| 蛟河市| 鄂尔多斯市| 永德县| 苗栗县| 柘城县| 隆化县| 瑞金市| 思南县| 新余市| 南澳县| 长阳| 彭水| 杭州市| 普兰店市| 桃江县| 民县| 营口市| 海盐县| 务川| 高台县| 邹平县| 新民市| 镇坪县| 丰都县| 石城县| 房山区| 始兴县| 清涧县| 瓦房店市| 新余市| 扶绥县| 丘北县| 临潭县| 黔南|