其他分享
首页 > 其他分享> > 五张扑克牌,我们需要来判断一下是不是顺子。

五张扑克牌,我们需要来判断一下是不是顺子。

作者:互联网

 

有如下规则: A为1,J为11,Q为12,K为13,A不能视为14 大、小王为 0,0可以看作任意牌

(全文仅是个人思路)

第一步首先先把A、J、Q、K 先转换为1、11、12、13

   

 1     function fn(a, b, c, d, e) {
 2             var arr = [];
 3             for (var naa = 0; naa < arguments.length; naa++) {      //将j、q、k换成11、12、13
 4                 if (arguments[naa] == 'j') {
 5                     arr[naa] = arguments[naa] = 11;
 6                 } else if (arguments[naa] == 'q') {
 7                     arr[naa] = arguments[naa] = 12;
 8                 } else if (arguments[naa] == 'k') {
 9                     arr[naa] = arguments[naa] = 13;
10                 }else if(arguments[naa] == 'a') {
11                     arr[naa] = arguments[naa] = 1;
12                 }else {
13                     arr[naa] = arguments[naa];
14                 }
15             }

第二步 排序  我才用的是起泡排序;

1       for (var i = 0; i < arr.length; i++) {    //气泡排序
2                 for (var s = 0; s < arr.length; s++) {
3                     if (arr[s] > arr[s + 1]) {
4                         var zhi = arr[s];
5                         arr[s] = arr[s + 1];
6                         arr[s + 1] = zhi;
7                     }
8                 }
9             }

第三步  计算两个数字间隔有缺数的数量

       function shun(arr) {
                var w = 0;
                var o = 0;
                var p;
                for (var m = 1; m < arr.length; m++) {
                    if (arr[m - 1] == 0) {
                        w = w + 1;
                    } else if (arr[m - 1] >= 1) {
                        p = arr[m] - arr[m - 1] - 1;
                        console.log(p);
                        o = o + p;
                        if (p < 0) {
                            o = -1;
                            break;
                        }
                    }
                }

第四步  判断结果

     if (w > 4) {
                    alert('你出老千了');
                    return;         //跳出函数
                } else if (w == 4) {
                    alert('是顺子')
                } else if (w >= o && o >= 0) {
                    alert('是顺子')
                } else{
                    alert('不是顺子')
                }        

 

 全部代码
 function fn(a, b, c, d, e) {
            var arr = [];
            for (var naa = 0; naa < arguments.length; naa++) {      //将j、q、k换成11、12、13
                if (arguments[naa] == 'j') {
                    arr[naa] = arguments[naa] = 11;
                } else if (arguments[naa] == 'q') {
                    arr[naa] = arguments[naa] = 12;
                } else if (arguments[naa] == 'k') {
                    arr[naa] = arguments[naa] = 13;
                }else if(arguments[naa] == 'a') {
                    arr[naa] = arguments[naa] = 1;
                }else {
                    arr[naa] = arguments[naa];
                }
            }
            for (var i = 0; i < arr.length; i++) {    //气泡排序
                for (var s = 0; s < arr.length; s++) {
                    if (arr[s] > arr[s + 1]) {
                        var zhi = arr[s];
                        arr[s] = arr[s + 1];
                        arr[s + 1] = zhi;
                    }
                }
            }
            console.log(arr);     //打印数组的顺序;
            function shun(arr) {
                var w = 0;
                var o = 0;
                var p;
                for (var m = 1; m < arr.length; m++) {
                    if (arr[m - 1] == 0) {
                        w = w + 1;
                    } else if (arr[m - 1] >= 1) {
                        p = arr[m] - arr[m - 1] - 1;
                        console.log(p);
                        o = o + p;
                        if (p < 0) {
                            o = -1;
                            break;
                        }
                    }
                }
                console.log(w);
                console.log(o);
                if (w > 4) {
                    alert('你出老千了');
                    return;         //跳出函数
                } else if (w == 4) {
                    alert('是顺子')
                } else if (w >= o && o >= 0) {
                    alert('是顺子')
                } else{
                    alert('不是顺子')
                }
            }
            shun(arr);
        }
        // fn('a', 0, 0, 3, 10);
        fn('a', 0, 0, 3, 'a');

 

标签:arr,naa,扑克牌,else,arguments,var,顺子,五张
来源: https://www.cnblogs.com/gljgcat/p/15193341.html