五张扑克牌,我们需要来判断一下是不是顺子。
作者:互联网
有如下规则: 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