有个前同事在群里问如何判断是否为同花顺我用javascript的二维数组写了个简易demo。

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <script>
  5. /* 判断是否为顺子 */
  6. function isStraight(arrs) {
  7. arrs.sort();//排序
  8. var first = arrs[0][0]; //取出第一个最小的数
  9. var index = 1;//从第二个开始索引
  10. while(arrs.length > index){
  11. first++;
  12. if(first != arrs[index][0]) {
  13. //如果不相等代表不连续
  14. return false;
  15. }
  16. index++;
  17. }
  18. return true;
  19. }
  20. /* 判断是否为同花 */
  21. function isFlush(arrs) {
  22. var flower = arrs[0][1]; //取出第一个花
  23. var index = 1;//从第二个开始索引
  24. while(arrs.length > index){
  25. if(flower != arrs[index][1]) {
  26. //如果不相等代表不是同花
  27. return false;
  28. }
  29. index++;
  30. }
  31. return true;
  32. }
  33. function vaild(name, arrs) {
  34. var result = isStraight(arrs) && isFlush(arrs);
  35. var msg = "顺子同花分开判断 " + name + ": " + arrs.toString()+"\r\n";
  36. if(result) {
  37. msg += "这是同花顺";
  38. } else {
  39. msg += "这不是同花顺";
  40. }
  41. document.write(msg);
  42. }
  43. /* 判断是否为同花顺 */
  44. function isStraightFlush(arrs) {
  45. arrs.sort();//排序
  46. var first = arrs[0][0]; //取出第一个最小的数
  47. var flower = arrs[0][1]; //取出第一个花
  48. var index = 1;//从第二个开始索引
  49. while(arrs.length > index){
  50. first++;
  51. if(first != arrs[index][0] || flower != arrs[index][1]) {
  52. //如果两个条件任意一个不相等代表不连续或不是同花
  53. return false;
  54. }
  55. index++;
  56. }
  57. return true;
  58. }
  59. function vaild2(name, arrs) {
  60. var result = isStraightFlush(arrs);
  61. var msg = "同花顺同时判断 " + name + ": " + arrs.toString()+"\r\n";
  62. if(result) {
  63. msg += "这是同花顺";
  64. } else {
  65. msg += "这不是同花顺";
  66. }
  67. document.write(msg);
  68. }
  69. /*
  70. * 为了演示,以下数字为扑克牌每种花的代码定义
  71. * 111 = 黑桃
  72. * 222 = 红心
  73. * 333 = 黑梅
  74. * 444 = 红方
  75. */
  76. var pokers1=[[3,111],[5,111],[4,111],[6,111],[2,111]];//这是一个无序但连续且同花的二维结构数组
  77. var pokers2=[[9,111],[5,222],[4,444],[6,333],[8,111]];//这是一个无序且不连续且不同花的二维结构数组
  78. vaild("pokers1",pokers1);
  79. document.write("<br/>");
  80. vaild("pokers2",pokers2);
  81. document.write("<br/>");
  82. document.write("<br/>");
  83. vaild2("pokers1",pokers1);
  84. document.write("<br/>");
  85. vaild2("pokers2",pokers2);
  86. document.write("<br/>");
  87. </script>
  88. </body>
  89. </html>

同事问如何判断同花顺,我用javascript的二维数组写了个简易demo的更多相关文章

  1. 一道JavaScript的二维数组求平均数的题

    JavaScript中只支持一维数组,但是可以在数组中嵌套数组来创建二维以至于多维的数组.今天下午在看书时候,发现一道感觉比较有意思的题,就是js中如何求二维数组的列之和和行之和,现在就给大家分享下, ...

  2. javascript定义二维数组与添加

    你定义的已经就是的了啊.不是很明白你的问的什么.你是说如何向里面填充?双层循环就行了撒:for(var i = 0; i < X; i++){ for(var j = 0; j < Y; ...

  3. JavaScript -- 定义二维数组

    方法一:直接定义并且初始化,这种遇到数量少的情况可以用var _TheArray = [["0-1","0-2"],["1-1"," ...

  4. 利用javascript实现二维数组的筛选

    背景: 在项目中,我需要对解析后的nc文件数据进行筛选,选出符合要求的点,绘制相应的polygon. 代码:ajax获取某一时刻的数据 var url ="/api/config/PostC ...

  5. JavaScript的二维数组

    二维数组的初始化: 实例① var arr = [[1,2],['a','b']]; console.log(arr[1][0]); //a 第2列第1行所在的元素 实例② var arr = new ...

  6. javascript 二维数组的例子

    javascript没有二维数组.所有自定义了一个数组类,下面是实例代码. 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans ...

  7. PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?

    如题:如何判断一个数组是一维数组或者是二维数组?用什么函数? 判断数量即可 <?php if (count($array) == count($array, 1)) { echo '是一维数组' ...

  8. javascript二维数组

    var a= new Array(new Array(1,2),new Array('b','c')); document.write(a[1][1]); 说白了,就是利用for循环定义二维数组! & ...

  9. 《剑指offer》— JavaScript(1)二维数组中的查找

    二维数组中的查找 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ** ...

随机推荐

  1. __x__(29)0908第五天__高度塌陷 问题

    高度塌陷 在文档流中,父元素的高度默认是被子元素撑开的. 但是当为 子元素 设置 float 时,子元素会完全脱离文档流,无法再撑开父元素,导致父元素高度塌陷...以致于布局混乱 变成 BFC块级格式 ...

  2. [LeetCode] Sliding Puzzle 滑动拼图

    On a 2x3 board, there are 5 tiles represented by the integers 1 through 5, and an empty square repre ...

  3. oracle中的listener.ora和tnsnames.ora

    一.oracle的客户端与服务器端 oracle在安装完成后服务器和客户端都需要进行网络配置才能实现网络连接.    服务器端配置监听器,客户端配置网络服务名. 服务器端可配置一个或多个监听程序 . ...

  4. wpf1

    emCombobox.Items[2].IsEnabled = false; 隐藏下拉框里面的一个item wpf 单例模式. [DllImport("user32", CharS ...

  5. treesoft,couchDB,

    下载 docker 镜像:docker pull docker.io/lu566/treesoft:1.0启动容器:docker run -d -p 127.0.0.1:18080:8080 dock ...

  6. static_cast 使用

    static_cast 用于基本类型转换,入int转double: int distanceThreshold  = 4: double val = static_cast<qreal>( ...

  7. Nginx(一)-windows下的安装配置

    第一步 下载 官网下载地址 因为只是测试这里选择最新版本1.13.9 下载完成得到zip压缩包 解压后得到如下目录 第二步  启动nginx 注意不要直接双击nginx.exe,这样会导致修改配置后重 ...

  8. python之dict

    一.字典的定义 在python中,字典数据类型使用{}来定义,在大括号中,存储的是键值对,即key:value的形式,并且key不能有重复值,如果有重复,后面的值会覆盖前面的:值可以重复 # 字典的定 ...

  9. Mac OSX bash function 备份

    # mount the android file image function mountAndroid { hdiutil attach ~/android.dmg.sparsefile.spars ...

  10. ASM: Active Shape Models--Their Training and Application

    这篇论文的前半部分基本就是论文<Training Models of Shape from Sets of Examples>的全部内容,只不过多两个应用示例,后半部分在PDM模型的基础上 ...