源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

js计算德州扑克牌面值的方法

  • 时间:2022-06-16 16:41 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:js计算德州扑克牌面值的方法
本文实例讲述了js计算德州扑克牌面值的方法。分享给大家供大家参考。具体如下: 1. 代码如下:
[u]复制代码[/u] 代码如下:
var Poker = function(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(){         return this.color + this.show;     }; }; var z = function(arg){ //同花顺     var a = arg,         t = a[0];     for (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];         }else{             return;         }     };     return "z" + t.ch; }; var y = function(arg){ //四条     var a = arg.map(function(p){             return p.ch;         }).join(""),         mat = a.match(/(\w*)(\w)\2\2\2(\w*)/);     if( mat ){         return "y"+mat[2]+mat[1]+mat[3];     } }; var x = function(arg){ //葫芦     var a = arg.map(function(p){             return p.ch;         }).join(""),         mat;     if( mat = a.match(/(\w)\1(\w)\2\2/) ){         return "x" + mat[2] + mat[1];     }else if( mat = a.match(/(\w)\1\1(\w)\2/) ){         return "x" + mat[1] + mat[2];     } }; var w = function(arg){ //同花     var a = arg,         t = a[0];     for (var i = 1; i < a.length; i++) {         if( a[i].color === t.color ){             t = a[i];         }else{             return;         }     };     return "w" + arg.map(function(p){         return p.ch;     }).join(""); }; var v = function(arg){ //顺子     var a = arg,         t = a[0];     for (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];         }else{             return;         }     };     return "v" + t.ch; }; var u = function(arg){ //三条     var a = arg.map(function(p){             return p.ch;         }).join(""),         mat;     if( mat = a.match(/(\w*)(\w)\2\2(\w*)/) ){         return "u" + mat[2] + mat[1] + mat[3];     } }; var t = function(arg){ //两对     var a = arg.map(function(p){             return p.ch;         }).join(""),         mat;     if( mat = a.match(/(\w*)(\w)\2(\w)\3(\w*)/) ){         return "t" + mat[3] + mat[2] + mat[1] + mat[4];     }else if( mat = a.match(/(\w)\1(\w)(\w)\3/) ){         return "t" + mat[3] + mat[1] + mat[2];     } }; var s = function(arg){ //一对     var a = arg.map(function(p){             return p.ch;         }).join(""),         mat;     if( mat = a.match(/(\w*)(\w)\2(\w*)/) ){         return "s" + mat[2] + mat[1] + mat[3];     } }; var r = function(arg){ //高牌     return arg.map(function(p){         return p.ch;     }).join(""); }; var score = function(){     var a = [].map.call(arguments, function(p){         return new Poker(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 ) ); // 同花顺 console.log( score( 36, 49, 23, 10, 48 ) ); // 四条 console.log( score( 36, 49, 23, 22, 48 ) ); // 葫芦 console.log( score( 50, 40, 47, 43, 48 ) ); // 同花 console.log( score( 50, 36, 47, 46, 48 ) ); // 顺子 console.log( score( 36, 49, 25, 22, 48 ) ); // 两对 console.log( score( 36, 49, 20, 27, 47 ) ); // 一对 console.log( score( 36, 11, 20, 27, 47 ) ); // 高牌
2. 运行效果如下图所示: [img]http://files.jb51.net/file_images/article/201503/201534105054783.gif?201524105112[/img] 希望本文所述对大家的javascript程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部