a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > JSP > 正文

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

2024-09-05 00:21:19
字體:
來源:轉載
供稿:網友
撲克發牌算法是棋牌游戲中常用的基礎算法,也是游戲開發人員需要熟悉的基礎算法之一。下面介紹一下該算法的一種實現方式。

首先給撲克牌中每張牌設定一個編號,下面算法實現的編號規則如下:
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();
}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩一区二区三免费高清在线观看 | 天天摸夜夜摸爽爽狠狠婷婷97 | 国产精品一区二区三区av | 欧美精产国品一二三区 | 激情开心成人网 | 欧美一二三区 | 国产99久久 | 欧美精品三区 | 欧美高清在线观看 | 日韩久久久久久久久久 | 国产91黄色 | 一级毛片免费播放 | 一区二区三区在线 | 国产一区二区精品在线观看 | 久久99精品国产99久久6男男 | 亚洲精品国产精品乱码不99按摩 | 日本h视频在线观看 | 免费中文字幕 | 草逼一区 | 在线观看免费av网 | 偷拍呻吟高潮91 | 欲色av| 伊人网视频 | 99视频网 | 久久国产精品久久久久久 | 久久国产精品一区 | 国产成人精品999在线观看 | 久久久久久久国产精品 | 久久久av| 久久国产精品久久 | 天天操夜夜干 | 久久午夜精品影院一区 | 中文字幕亚洲欧美日韩在线不卡 | 亚洲国产精品久久久 | 亚洲综合色视频在线观看 | 久久99精品久久久久久久久久久久 | 91亚洲国产成人久久精品网站 | 婷婷91 | 欧美成人久久 | 在线视频91 | 91人人人|