校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 【算法】撲克發牌算法實現

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

熱門標簽:騰訊地圖標注商戶改名注冊入駐 開封便宜外呼系統報價 淮南騰訊地圖標注 怎樣把地圖標注出來 電話機器人的特色和創新 漯河辦理400電話 商丘百應電話機器人有沒有效果 黃石智能營銷電銷機器人效果 地圖標注人員兼職
首先給撲克牌中每張牌設定一個編號,下面算法實現的編號規則如下:
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();
}
}
您可能感興趣的文章:
  • 純CSS實現撲克牌效果
  • javascript實例--教你實現撲克牌洗牌功能
  • js計算德州撲克牌面值的方法
  • 使用C語言求解撲克牌的順子及n個骰子的點數問題
  • C++德州撲克的核心規則算法

標簽:亳州 岳陽 拉薩 大興安嶺 武威 紅河 馬鞍山 鄭州

巨人網絡通訊聲明:本文標題《【算法】撲克發牌算法實現》,本文關鍵詞  算法,撲克,發牌,實現,算法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《【算法】撲克發牌算法實現》相關的同類信息!
  • 本頁收集關于【算法】撲克發牌算法實現的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 霍邱县| 丰城市| 荃湾区| 宾阳县| 鸡泽县| 乌苏市| 顺昌县| 龙州县| 普格县| 湖口县| 永寿县| 曲周县| 虞城县| 邢台县| 肃宁县| 喀什市| 平远县| 开远市| 龙井市| 濮阳市| 浪卡子县| 福建省| 电白县| 沙坪坝区| 德钦县| 岢岚县| 澎湖县| 锡林郭勒盟| 台中市| 屯门区| 连云港市| 罗城| 兴安盟| 双鸭山市| 毕节市| 伊吾县| 武功县| 孝感市| 勐海县| 洞头县| 渭源县|