123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- <?php
- namespace App\Constants;
- // 玩法枚举
- class GameplayRuleEnum
- {
- public static $RULES = [
- '组合' => [
- '单',
- '双',
- '大',
- '小',
- '大单',
- '大双',
- '小单',
- '小双',
- '极大',
- '极小',
- '0操',
- '1操',
- '2操',
- '3操',
- '4操',
- '5操',
- '6操',
- '7操',
- '8操',
- '9操',
- '10操',
- '11操',
- '12操',
- '13操',
- '14操',
- '15操',
- '16操',
- '17操',
- '18操',
- '19操',
- '20操',
- '21操',
- '22操',
- '23操',
- '24操',
- '25操',
- '26操',
- '27操',
- '顺子',
- '对子',
- '豹子',
- ],
- '尾数' => [
- '0尾',
- '1尾',
- '2尾',
- '3尾',
- '4尾',
- '5尾',
- '6尾',
- '7尾',
- '8尾',
- '9尾',
- '尾大',
- '尾小',
- '尾单',
- '尾双',
- '尾大单',
- '尾大双',
- '尾小单',
- '尾小双',
- ],
- '个位球' => [
- 'A大',
- 'A小',
- 'A单',
- 'A双',
- 'B大',
- 'B小',
- 'B单',
- 'B双',
- 'C大',
- 'C小',
- 'C单',
- 'C双',
- '0A',
- '1A',
- '2A',
- '3A',
- '4A',
- '5A',
- '6A',
- '7A',
- '8A',
- '9A',
- '0B',
- '1B',
- '2B',
- '3B',
- '4B',
- '5B',
- '6B',
- '7B',
- '8B',
- '9B',
- '0C',
- '1C',
- '2C',
- '3C',
- '4C',
- '5C',
- '6C',
- '7C',
- '8C',
- '9C',
- ],
- '多段' => [
- '一段',
- '二段',
- '三段',
- '四段',
- ]
- ];
- /**
- * 验证并解析用户输入
- * @param string $input 例如 "大单100" / "5操20"
- * @return array|null 返回 ['rule' => 玩法, 'amount' => 金额],失败返回 null
- */
- public static function validateInput(string $input): ?array
- {
- // 获取所有玩法
- $allRules = array_merge(...self::$RULES);
- // 玩法正则(防止玩法里有特殊符号出错)
- $rulesPattern = implode('|', array_map('preg_quote', $allRules));
- // 匹配玩法 + 金额
- if (preg_match('/^(' . $rulesPattern . ')(\d+)$/u', $input, $matches)) {
- return [
- 'rule' => $matches[1],
- 'amount' => (int)$matches[2]
- ];
- }
- return null;
- }
- }
|