GameplayRuleEnum 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?php
  2. namespace App\Constants;
  3. // 玩法枚举
  4. class GameplayRuleEnum
  5. {
  6. public static $RULES = [
  7. '组合' => [
  8. '单',
  9. '双',
  10. '大',
  11. '小',
  12. '大单',
  13. '大双',
  14. '小单',
  15. '小双',
  16. '极大',
  17. '极小',
  18. '0操',
  19. '1操',
  20. '2操',
  21. '3操',
  22. '4操',
  23. '5操',
  24. '6操',
  25. '7操',
  26. '8操',
  27. '9操',
  28. '10操',
  29. '11操',
  30. '12操',
  31. '13操',
  32. '14操',
  33. '15操',
  34. '16操',
  35. '17操',
  36. '18操',
  37. '19操',
  38. '20操',
  39. '21操',
  40. '22操',
  41. '23操',
  42. '24操',
  43. '25操',
  44. '26操',
  45. '27操',
  46. '顺子',
  47. '对子',
  48. '豹子',
  49. ],
  50. '尾数' => [
  51. '0尾',
  52. '1尾',
  53. '2尾',
  54. '3尾',
  55. '4尾',
  56. '5尾',
  57. '6尾',
  58. '7尾',
  59. '8尾',
  60. '9尾',
  61. '尾大',
  62. '尾小',
  63. '尾单',
  64. '尾双',
  65. '尾大单',
  66. '尾大双',
  67. '尾小单',
  68. '尾小双',
  69. ],
  70. '个位球' => [
  71. 'A大',
  72. 'A小',
  73. 'A单',
  74. 'A双',
  75. 'B大',
  76. 'B小',
  77. 'B单',
  78. 'B双',
  79. 'C大',
  80. 'C小',
  81. 'C单',
  82. 'C双',
  83. '0A',
  84. '1A',
  85. '2A',
  86. '3A',
  87. '4A',
  88. '5A',
  89. '6A',
  90. '7A',
  91. '8A',
  92. '9A',
  93. '0B',
  94. '1B',
  95. '2B',
  96. '3B',
  97. '4B',
  98. '5B',
  99. '6B',
  100. '7B',
  101. '8B',
  102. '9B',
  103. '0C',
  104. '1C',
  105. '2C',
  106. '3C',
  107. '4C',
  108. '5C',
  109. '6C',
  110. '7C',
  111. '8C',
  112. '9C',
  113. ],
  114. '多段' => [
  115. '一段',
  116. '二段',
  117. '三段',
  118. '四段',
  119. ]
  120. ];
  121. /**
  122. * 验证并解析用户输入
  123. * @param string $input 例如 "大单100" / "5操20"
  124. * @return array|null 返回 ['rule' => 玩法, 'amount' => 金额],失败返回 null
  125. */
  126. public static function validateInput(string $input): ?array
  127. {
  128. // 获取所有玩法
  129. $allRules = array_merge(...self::$RULES);
  130. // 玩法正则(防止玩法里有特殊符号出错)
  131. $rulesPattern = implode('|', array_map('preg_quote', $allRules));
  132. // 匹配玩法 + 金额
  133. if (preg_match('/^(' . $rulesPattern . ')(\d+)$/u', $input, $matches)) {
  134. return [
  135. 'rule' => $matches[1],
  136. 'amount' => (int)$matches[2]
  137. ];
  138. }
  139. return null;
  140. }
  141. }