In diesen Artikelbeispielen wird beschrieben, wie der Nennwert von Texas Hold'em -Karten von JS berechnet wird. Teilen Sie es für Ihre Referenz. Die Details sind wie folgt:
1. Der Code ist wie folgt:
Kopieren Sie den Code wie folgt: var Poker = Funktion (n) {
this.num = (n % 13) + 2;
this.ch = this.num> 9? ("abcdef" [this.num-10]): this.num;
this.show = "0,1,2,3,4,5,6,7,8,9,10, j, q, k, a",. Split (",") [this.num];
this.color = "♠ ♥ ♣ ♦" [n / 13 | 0];
this.toString = function () {
zurück this.color + this.show;
};
};
var z = function (arg) {// Flush
var a = arg,
t = a [0];
für (var i = 1; i <A.Length; i ++) {
if (a [i] .Color === T.Color && a [i] .num === t.num + 1) {
t = a [i];
} else if (i === A.Length-1 && t.num === 5 && a [i] .num === 14 && a [i] .Color === T.Color) {
t = a [0];
}anders{
zurückkehren;
}
};
zurück "z" + t.ch;
};
var y = function (arg) {// vier Elemente
var a = arg.map (Funktion (p) {
Rückkehr P.Ch;
}).verbinden(""),
mat = a.match (/(/w*) (/w)/2/2/2 (/w*)/);
if (mat) {
Rückgabe "y"+mat [2]+mat [1]+mat [3];
}
};
var x = function (arg) {// kürzt
var a = arg.map (Funktion (p) {
Rückkehr P.Ch;
}).verbinden(""),
Matte;
if (mat = a.match (/(/w)/1 (/w)/2/2/)) {
zurück "x" + mat [2] + mat [1];
} else if (mat = a.match (/(/w)/1/1 (/w)/2/)) {
zurück "x" + mat [1] + mat [2];
}
};
var w = function (arg) {// synonyme
var a = arg,
t = a [0];
für (var i = 1; i <A.Length; i ++) {
if (a [i] .Color === T.Color) {
t = a [i];
}anders{
zurückkehren;
}
};
Rückgabe "W" + arg.map (Funktion (p) {
Rückkehr P.Ch;
}).verbinden("");
};
var v = function (arg) {// shizi
var a = arg,
t = a [0];
für (var i = 1; i <A.Length; i ++) {
if (a [i] .num === t.num + 1) {
t = a [i];
} else if (i === A.Length-1 && t.num === 5 && a [i] .num === 14) {
t = a [0];
}anders{
zurückkehren;
}
};
zurück "v" + t.ch;
};
var u = function (arg) {// Drei Elemente
var a = arg.map (Funktion (p) {
Rückkehr P.Ch;
}).verbinden(""),
Matte;
if (mat = a.match (/(/w*) (/w)/2/2 (/w*)/)) {
return "u" + mat [2] + mat [1] + mat [3];
}
};
var t = function (arg) {// zwei Paare
var a = arg.map (Funktion (p) {
Rückkehr P.Ch;
}).verbinden(""),
Matte;
if (mat = a.match (/(/w*) (/w)/2 (/w)/3 (/w*)/)) {
zurück "t" + mat [3] + mat [2] + mat [1] + mat [4];
} else if (mat = a.match (/(/w)/1 (/w) (/w)/3/)) {
zurück "t" + mat [3] + mat [1] + mat [2];
}
};
var s = function (arg) {// ein Paar
var a = arg.map (Funktion (p) {
Rückkehr P.Ch;
}).verbinden(""),
Matte;
if (mat = a.match (/(/w*) (/w)/2 (/w*)/)) {
return "s" + mat [2] + mat [1] + mat [3];
}
};
var r = function (arg) {// hohe Karte
return arg.map (function (p) {
Rückkehr P.Ch;
}).verbinden("");
};
var Score = function () {
var a = [] .map.call (Argumente, Funktion (p) {
neuer Poker zurückgeben (P);
}). sort (function (p1, p2) {
return p1.num - p2.num;
});
console.log (a.join (","));
Return z (a) || y (a) || x (a) || w (a) || v (a) || U (a) || t (a) || s (a) || r (a);
};
console.log (Score (50, 49, 47, 46, 48)); // Flush
console.log (Score (36, 49, 23, 10, 48)); // vier Elemente
console.log (Score (36, 49, 23, 22, 48)); // Kürbis
console.log (Score (50, 40, 47, 43, 48)); // gleiche Blume
console.log (Score (50, 36, 47, 46, 48)); // Shunzi
console.log (Score (36, 49, 25, 22, 48)); // zwei Paare
console.log (Score (36, 49, 20, 27, 47)); // ein Paar
console.log (Score (36, 11, 20, 27, 47)); // hohe Karte
2. Der Betriebseffekt ist in der folgenden Abbildung dargestellt:
Ich hoffe, dieser Artikel wird für JavaScript -Programme aller hilfreich sein.