JavaScript 撲克牌十三張發牌

Unicode 符號、顯示撲克牌四個花色,梅花 (Clubs)、磚塊 (Diamonds)、愛心 (Hearts)、黑桃 (Spades)。

十三張撲克發牌

十三張撲克遊戲發牌、發牌以四人一桌,每人發 13 張牌。洗牌後可以切牌,接著發牌者由牌堆中任意翻出一張牌,由翻出之牌中的數字來決定由四桌之「北東南西」那一家先發牌,對家為北其邊右為東,一般以逆時針方向開始發牌,撲克牌分為黑桃、紅桃、梅花、方塊四種花色,其中的花色大小依次排列黑桃「大於」紅桃、而紅桃「大於」梅花、梅花則「大於」方塊。將五十二張牌平均分給各參與者,每人發十三張牌。將手中十三支牌依技巧分為頭墩三張、中墩五張、尾墩五張。

使用 Unicode 特殊符號表示撲克十三支發牌,十三張撲克牌盛行於華人地區其玩法因區域會不同有些不同之規則,JavaScript 撲克牌十三張發牌只應用發牌,尚未無法支持計算牌中的各式各樣組合算計、因為複雜度頗高。


Source_Poker 陣列中五十二張牌,保存 Unicode 符號字元代碼,黑桃、紅桃、梅花、方塊四種花色及 1~13 數字。

var Source_Poker = [
  ["127137", "C", 1], ["127138", "C", 2], ["127139", "C", 3], ["127140", "C", 4], ["127141", "C", 5], ["127142", "C", 6], ["127143", "C", 7], ["127144", "C", 8], ["127145", "C", 9], ["127146", "C", 10], ["127147", "C", 11], ["127149", "C", 12], ["127150", "C", 13],
  ["127153", "D", 1], ["127154", "D", 2], ["127155", "D", 3], ["127156", "D", 4], ["127157", "D", 5], ["127158", "D", 6], ["127159", "D", 7], ["127160", "D", 8], ["127161", "D", 9], ["127162", "D", 10], ["127163", "D", 11], ["127165", "D", 12], ["127166", "D", 13],
  ["127169", "H", 1], ["127170", "H", 2], ["127171", "H", 3], ["127172", "H", 4], ["127173", "H", 5], ["127174", "H", 6], ["127175", "H", 7], ["127176", "H", 8], ["127177", "H", 9], ["127178", "H", 10], ["127179", "H", 11], ["127181", "H", 12], ["127182", "H", 13],
  ["127185", "S", 1], ["127186", "S", 2], ["127187", "S", 3], ["127188", "S", 4], ["127189", "S", 5], ["127190", "S", 6], ["127191", "S", 7], ["127192", "S", 8], ["127193", "S", 9], ["127194", "S", 10], ["127195", "S", 11], ["127197", "S", 12], ["127198", "S", 13]
  ];
var dealingPoker = function () {
  // 五十二張牌重新洗牌
  for (let i = 0; i < 600; i++) {
    let j = parseInt(Math.random() * 52);
    let k = parseInt(Math.random() * 52);
    let t = Source_Poker[j];
    Source_Poker[j] = Source_Poker[k];
    Source_Poker[k] = t;
  }
  // 給玩家發十三張牌,使用 Array 陣列
  var DealingPoker = [],
    cardImages = "";
  for (let i = 1; i <= 13; i++) {
    DealingPoker.push(Source_Poker[i]);
  };
  DealingPoker.sort();
  DealingPoker.sort(function (a, b) {
    return a[2] - b[2];
  });
  // 使用 Unicode 特殊符號字元、建立撲克牌圖形輸出
  for (let i = 0; i < DealingPoker.length; i++) {
    if (DealingPoker[i][1] == "D" || DealingPoker[i][1] == "H") {
      var dClass = " class='R'";
    } else {
      var dClass = "";
    }
    cardImages += ("<span" + dClass + ">&#" + DealingPoker[i][0] + ";</span>");
  };
  document.getElementById("cardsDrawing").innerHTML = cardImages;
};
const btn = document.getElementById("dealing_13_Poker");
btn.addEventListener("click", dealingPoker, false);

Unicode 符號是並非用以鍵盤輸入書寫文字,但可用於文字上的 Unicode 字元。國際性標準 Unicode 符號的編碼是持續進行的過程,隨著不同領域和文化的需求和發展,Unicode 標準會不斷地增加新的符號或修改現有的符號。Unicode 標準也會提供機制來支援更多的符號,以創造出更多的可能性。