From 67a44a3dbadeb0dd4710be803125882ef293b74e Mon Sep 17 00:00:00 2001 From: li Date: Wed, 11 Feb 2026 17:32:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=89=9B=E7=89=9B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=9B=9B=E6=9D=A1(=E7=82=B8=E5=BC=B9)=E7=89=8C=E5=9E=8B=20resu?= =?UTF-8?q?lt=3D12?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CardPositionNn::JudgeCowCow() 新增四条识别(4张相同点数) - OpeningNnService::doBet() 新增 result==12 赔率分支(闲1/2/3共12处) --- app/services/opening/OpeningNnService.php | 48 +++++++++++++++++++++++ freedom/utils/CardPositionNn.php | 14 +++++++ 2 files changed, 62 insertions(+) diff --git a/app/services/opening/OpeningNnService.php b/app/services/opening/OpeningNnService.php index 2d9f423..ebedde2 100644 --- a/app/services/opening/OpeningNnService.php +++ b/app/services/opening/OpeningNnService.php @@ -213,6 +213,10 @@ class OpeningNnService $winTotal += round($v['amount_player_1_times'] * $userInfo['price_5n'],2); $winTotalActual += round($v['amount_player_1_times'] * 5,2); $timesPlayer1 = $userInfo['price_5n']; + }elseif($data['result_player_1'] == 12){ + $winTotal += round($v['amount_player_1_times'] * $userInfo['price_bomb'],2); + $winTotalActual += round($v['amount_player_1_times'] * 5,2); + $timesPlayer1 = $userInfo['price_bomb']; } $rebatePlayer1 -= $v['amount_player_1_times']; } @@ -239,6 +243,10 @@ class OpeningNnService $winTotal -= round($v['amount_player_1_banker_times'] * 5,2); $rebate += round($v['amount_player_1_banker_times'] * 5); $rebatePlayer1 += round($v['amount_player_1_banker_times'] * 5); + }elseif($data['result_player_1'] == 12){ + $winTotal -= round($v['amount_player_1_banker_times'] * 5,2); + $rebate += round($v['amount_player_1_banker_times'] * 5); + $rebatePlayer1 += round($v['amount_player_1_banker_times'] * 5); } } }elseif($data['win_player_1'] == 0){ @@ -258,6 +266,9 @@ class OpeningNnService }elseif($data['result_banker'] == 11){ $winTotal += round($v['amount_player_1_banker_times'] * $userInfo['price_5n'],2); $timesPlayer1 = $userInfo['price_5n']; + }elseif($data['result_banker'] == 12){ + $winTotal += round($v['amount_player_1_banker_times'] * $userInfo['price_bomb'],2); + $timesPlayer1 = $userInfo['price_bomb']; } $rebatePlayer1 += $v['amount_player_1_banker_times']; } @@ -286,6 +297,11 @@ class OpeningNnService $winTotalActual -= $v['amount_player_1_times'] * 5; $rebate += $v['amount_player_1_times'] * 5; $rebatePlayer1 -= $v['amount_player_1_times'] * 5; + }elseif($data['result_banker'] == 12){ + $winTotal -= $v['amount_player_1_times'] * 5; + $winTotalActual -= $v['amount_player_1_times'] * 5; + $rebate += $v['amount_player_1_times'] * 5; + $rebatePlayer1 -= $v['amount_player_1_times'] * 5; } } } @@ -312,6 +328,10 @@ class OpeningNnService $winTotal += round($v['amount_player_2_times'] * $userInfo['price_5n'],2); $winTotalActual += round($v['amount_player_2_times'] * 5,2); $timesPlayer2 = $userInfo['price_5n']; + }elseif($data['result_player_2'] == 12){ + $winTotal += round($v['amount_player_2_times'] * $userInfo['price_bomb'],2); + $winTotalActual += round($v['amount_player_2_times'] * 5,2); + $timesPlayer2 = $userInfo['price_bomb']; } $rebatePlayer2 -= $v['amount_player_2_times']; } @@ -338,6 +358,10 @@ class OpeningNnService $winTotal -= round($v['amount_player_2_banker_times'] * 5,2); $rebate += round($v['amount_player_2_banker_times'] * 5); $rebatePlayer2 += round($v['amount_player_2_banker_times'] * 5); + }elseif($data['result_player_2'] == 12){ + $winTotal -= round($v['amount_player_2_banker_times'] * 5,2); + $rebate += round($v['amount_player_2_banker_times'] * 5); + $rebatePlayer2 += round($v['amount_player_2_banker_times'] * 5); } } }elseif($data['win_player_2'] == 0){ @@ -357,6 +381,9 @@ class OpeningNnService }elseif($data['result_banker'] == 11){ $winTotal += round($v['amount_player_2_banker_times'] * $userInfo['price_5n'],2); $timesPlayer2 = $userInfo['price_5n']; + }elseif($data['result_banker'] == 12){ + $winTotal += round($v['amount_player_2_banker_times'] * $userInfo['price_bomb'],2); + $timesPlayer2 = $userInfo['price_bomb']; } $rebatePlayer2 += $v['amount_player_2_banker_times']; } @@ -385,6 +412,11 @@ class OpeningNnService $winTotalActual -= $v['amount_player_2_times'] * 5; $rebate += $v['amount_player_2_times'] * 5; $rebatePlayer2 -= $v['amount_player_2_times'] * 5; + }elseif($data['result_banker'] == 12){ + $winTotal -= $v['amount_player_2_times'] * 5; + $winTotalActual -= $v['amount_player_2_times'] * 5; + $rebate += $v['amount_player_2_times'] * 5; + $rebatePlayer2 -= $v['amount_player_2_times'] * 5; } } } @@ -411,6 +443,10 @@ class OpeningNnService $winTotal += round($v['amount_player_3_times'] * $userInfo['price_5n'],2); $winTotalActual += round($v['amount_player_3_times'] * 5,2); $timesPlayer3 = $userInfo['price_5n']; + }elseif($data['result_player_3'] == 12){ + $winTotal += round($v['amount_player_3_times'] * $userInfo['price_bomb'],2); + $winTotalActual += round($v['amount_player_3_times'] * 5,2); + $timesPlayer3 = $userInfo['price_bomb']; } $rebatePlayer3 -= $v['amount_player_3_times']; } @@ -437,6 +473,10 @@ class OpeningNnService $winTotal -= round($v['amount_player_3_banker_times'] * 5,2); $rebate += round($v['amount_player_3_banker_times'] * 5); $rebatePlayer3 += round($v['amount_player_3_banker_times'] * 5); + }elseif($data['result_player_3'] == 12){ + $winTotal -= round($v['amount_player_3_banker_times'] * 5,2); + $rebate += round($v['amount_player_3_banker_times'] * 5); + $rebatePlayer3 += round($v['amount_player_3_banker_times'] * 5); } } @@ -457,6 +497,9 @@ class OpeningNnService }elseif($data['result_banker'] == 11){ $winTotal += round($v['amount_player_3_banker_times'] * $userInfo['price_5n'],2); $timesPlayer3 = $userInfo['price_5n']; + }elseif($data['result_banker'] == 12){ + $winTotal += round($v['amount_player_3_banker_times'] * $userInfo['price_bomb'],2); + $timesPlayer3 = $userInfo['price_bomb']; } $rebatePlayer3 += $v['amount_player_3_banker_times']; } @@ -485,6 +528,11 @@ class OpeningNnService $winTotalActual -= $v['amount_player_3_times'] * 5; $rebate += $v['amount_player_3_times'] * 5; $rebatePlayer3 -= $v['amount_player_3_times'] * 5; + }elseif($data['result_banker'] == 12){ + $winTotal -= $v['amount_player_3_times'] * 5; + $winTotalActual -= $v['amount_player_3_times'] * 5; + $rebate += $v['amount_player_3_times'] * 5; + $rebatePlayer3 -= $v['amount_player_3_times'] * 5; } } } diff --git a/freedom/utils/CardPositionNn.php b/freedom/utils/CardPositionNn.php index dc4843a..05b9b6a 100644 --- a/freedom/utils/CardPositionNn.php +++ b/freedom/utils/CardPositionNn.php @@ -497,6 +497,20 @@ class CardPositionNn $result['max'] = $max; return $result; } + //判断四条(炸弹):4张相同点数 + $cardNums = []; + for($i=0;$i<5;$i++){ + $cardNums[] = $card[$i]; + } + $counts = array_count_values($cardNums); + if(max($counts) >= 4){ + $cow = 12; + $word = '四条'; + $result['word'] = $word; + $result['cow'] = $cow; + $result['max'] = $max; + return $result; + } for($i=0;$i<4;$i++){//对5张牌从大到小排序。 for($j=$i+1;$j<5;$j++){ if($card[$i] < $card[$j]){