日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

炸金花 php算法,php 炸金花牌型 和 比牌 规则

發布時間:2023/12/20 php 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 炸金花 php算法,php 炸金花牌型 和 比牌 规则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

獲取炸金花牌的類型

參數 :

$Poker 是一個數組

"size": 1 - 13 表示?$size_arr = ['A','二','三','四','五','六','七','八','九','十','J','Q','K'];

"tag": 1 - 4 表示?$tag_arr = ['黑桃','紅桃','梅花','方片'];

例子:

豹子A

$Poker = [

['size' => 1,'tag' => 1,'name' => '黑桃A'],

['size' => 1,'tag' => 2,'name' => '紅桃A'],

['size' => 1,'tag' => 3,'name' => '梅花A']

];

順金:A二三

$Poker = [

['size' => 1,'tag' => 1,'name' => '黑桃A'],

['size' => 2,'tag' => 1,'name' => '黑桃二'],

['size' => 3,'tag' => 1,'name' => '黑桃三']

];

金花:A六八

$Poker = [

['size' => 1,'tag' => 1,'name' => '黑桃A'],

['size' => 6,'tag' => 1,'name' => '黑桃六'],

['size' => 8,'tag' => 1,'name' => '黑桃八']

];

順子:A二三

$Poker = [

['size' => 1,'tag' => 1,'name' => '黑桃A'],

['size' => 2,'tag' => 2,'name' => '紅桃二'],

['size' => 3,'tag' => 1,'name' => '黑桃三']

];

對子:A掛三

$Poker = [

['size' => 1,'tag' => 1,'name' => '黑桃A'],

['size' => 1,'tag' => 2,'name' => '紅桃A'],

['size' => 3,'tag' => 1,'name' => '黑桃三']

];

單張:A三九

$Poker = [

['size' => 1,'tag' => 1,'name' => '黑桃A'],

['size' => 3,'tag' => 2,'name' => '紅桃三'],

['size' => 9,'tag' => 1,'name' => '黑桃九']

];

代碼:

/**

* 獲取牌類型

* @param array $Poker 撲克牌數據

* @return array

*/

function GetPokerType($Poker){

$size_arr = ['A','二','三','四','五','六','七','八','九','十','J','Q','K'];

if ($Poker) {

if($Poker[0]['size'] == 1 && $Poker[1]['size'] == 12 && $Poker[2]['size'] == 13) { // AQK的牌型

if($Poker[0]['tag'] == $Poker[1]['tag'] && $Poker[0]['tag'] == $Poker[2]['tag']) {

return [

'type' => 8,

'size' => 1,

'size2' => 12,

'size3' => 13,

'tag' => $Poker[2]['tag'],

't_name' => '順金:AQK'

];

}else{

return [

'type' => 6,

'size' => 1,

'size2' => 12,

'size3' => 13,

'tag' => $Poker[2]['tag'],

't_name' => '順子:AQK'

];

}

}elseif ($Poker[0]['size'] == $Poker[1]['size'] && $Poker[0]['size'] == $Poker[2]['size']) { // 豹子

return [

'type' => 9,

'size' => $Poker[2]['size'],

'tag' => $Poker[2]['tag'],

't_name' => '豹子:'.$size_arr[$Poker[2]['size']-1]

];

}elseif($Poker[1]['size'] == $Poker[0]['size'] + 1 && $Poker[2]['size'] == $Poker[0]['size'] + 2 && $Poker[0]['tag'] == $Poker[1]['tag'] && $Poker[0]['tag'] == $Poker[2]['tag'] ) { // 順金

if ($Poker[0]['size'] == 1) {

$size = 1;

$size2 = $Poker[2]['size'];

$size3 = $Poker[1]['size'];

$tag = $Poker[0]['tag'];

}else{

$size = $Poker[2]['size'];

$size2 = $Poker[1]['size'];

$size3 = $Poker[0]['size'];

$tag = $Poker[2]['tag'];

}

return [

'type' => 8,

'size' => $size,

'size2' => $size2,

'size3' => $size3,

'tag' => $tag,

't_name' => '順金:'.$size_arr[$Poker[0]['size']-1].$size_arr[$Poker[1]['size']-1].$size_arr[$Poker[2]['size']-1]

];

}elseif($Poker[0]['tag'] == $Poker[1]['tag'] && $Poker[0]['tag'] == $Poker[2]['tag']) { // 金花

if ($Poker[0]['size'] == 1) {

$size = 1;

$size2 = $Poker[2]['size'];

$size3 = $Poker[1]['size'];

$tag = $Poker[0]['tag'];

}else{

$size = $Poker[2]['size'];

$size2 = $Poker[1]['size'];

$size3 = $Poker[0]['size'];

$tag = $Poker[2]['tag'];

}

return [

'type' => 7,

'size' => $size,

'size2' => $size2,

'size3' => $size3,

'tag' => $tag,

't_name' => "金花:".$size_arr[$Poker[0]['size']-1].$size_arr[$Poker[1]['size']-1].$size_arr[$Poker[2]['size']-1]

];

}elseif ($Poker[1]['size'] == $Poker[0]['size'] + 1 && $Poker[2]['size'] == $Poker[0]['size'] + 2) { // 順子

if ($Poker[0]['size'] == 1) {

$size = 1;

$size2 = $Poker[2]['size'];

$size3 = $Poker[1]['size'];

$tag = $Poker[0]['tag'];

}else{

$size = $Poker[2]['size'];

$size2 = $Poker[1]['size'];

$size3 = $Poker[0]['size'];

$tag = $Poker[2]['tag'];

}

return [

'type' => 6,

'size' => $size,

'size2' => $size2,

'size3' => $size3,

'tag' => $tag,

't_name' => '順子:'.$size_arr[$Poker[0]['size']-1].$size_arr[$Poker[1]['size']-1].$size_arr[$Poker[2]['size']-1]

];

}elseif ($Poker[0]['size'] == $Poker[1]['size'] || $Poker[0]['size'] == $Poker[2]['size'] || $Poker[1]['size'] == $Poker[2]['size']) { // 對子

if ($Poker[0]['size'] == $Poker[1]['size']) {

$size = $Poker[0]['size'];

$size2 = $Poker[2]['size'];

$tag = $Poker[2]['tag'];

$t_name = '對子:'.$size_arr[$Poker[0]['size']-1]."掛".$size_arr[$Poker[2]['size']-1];

}elseif ($Poker[0]['size'] == $Poker[2]['size']) {

$size = $Poker[2]['size'];

$size2 = $Poker[1]['size'];

$tag = $Poker[1]['tag'];

$t_name = '對子:'.$size_arr[$Poker[2]['size']-1]."掛".$size_arr[$Poker[1]['size']-1];

}else{

$size = $Poker[2]['size'];

$size2 = $Poker[0]['size'];

$tag = $Poker[0]['tag'];

$t_name = '對子:'.$size_arr[$Poker[2]['size']-1]."掛".$size_arr[$Poker[0]['size']-1];

}

return [

'type' => 5,

'size' => $size,

'size2' => $size2,

'tag' => $tag,

't_name' => $t_name

];

}elseif ($Poker[0]['size'] == 2 && $Poker[1]['size'] == 3 && $Poker[2]['size'] == 5 ) { // 特殊

return [

'type' => 4,

'size' => $Poker[2]['size'],

'size2' => $Poker[1]['size'],

'size3' => $Poker[0]['size'],

'tag' => $Poker[2]['tag'],

't_name' => '特殊:235'

];

}else{ // 單張

if ($Poker[0]['size'] == 1) {

$size = 1;

$size2 = $Poker[2]['size'];

$size3 = $Poker[1]['size'];

$tag = $Poker[0]['tag'];

}else{

$size = $Poker[2]['size'];

$size2 = $Poker[1]['size'];

$size3 = $Poker[0]['size'];

$tag = $Poker[2]['tag'];

}

return [

'type' => 3,

'size' => $size,

'size2' => $size2,

'size3' => $size3,

'tag' => $tag,

't_name' => '單張:'.$size_arr[$Poker[0]['size']-1].$size_arr[$Poker[1]['size']-1].$size_arr[$Poker[2]['size']-1]

];

}

}

}

/**

* 判斷炸金花輸贏

* @param array $Poker1 玩家1撲克牌數據

* @param array $Poker2 玩家2撲克牌數據

* @return boole

*/

function PokerWinning($Poker1,$Poker2){

$type1 = GetPokerType($Poker1);

$type2 = GetPokerType($Poker2);

if ($type1['type'] == 5 && $type2['type'] == 5) {

// 首先判斷兩個對子

if ($type1['size']==$type2['size']) {

//對子一樣

if ($type1['size2']==$type2['size2']) {

//單張一樣

if (compare($type1['tag'],$type2['tag'],'tag')) {

return true;

}else{

return false;

}

}else{

if (compare($type1['size2'],$type2['size2'],'size')) {

return true;

}else{

return false;

}

}

}else{

if (compare($type1['size'],$type2['size'],'size')) {

return true;

}else{

return false;

}

}

}elseif ($type1['type'] == $type2['type']) {

if ($type1['size']==$type2['size']) {

if ($type1['size2']==$type2['size2']) {

if ($type1['size3']==$type2['size3']) {

if (compare($type1['tag'],$type2['tag'],'tag')) {

return true;

}else{

return false;

}

}else{

if (compare($type1['size3'],$type2['size2'],'size')) {

return true;

}else{

return false;

}

}

}else{

if (compare($type1['size2'],$type2['size2'],'size')) {

return true;

}else{

return false;

}

}

}else{

if (compare($type1['size'],$type2['size'],'size')) {

return true;

}else{

return false;

}

}

}else{

// 特殊 235 和 豹子

if ($type1['type'] == 9 && $type2['type'] == 4) {

return false;

}else if ($type1['type'] == 4 && $type2['type'] == 9) {

return true;

}else{

if ($type1['type']>$type2['type']) {

return true;

}else{

return false;

}

}

}

}

/**

* 炸金花單張比大小

* @param array $Poker1 玩家1撲克牌數據

* @param array $Poker2 玩家2撲克牌數據

* @return boole

*/

function compare($data1,$data2,$datatype){

//size(大小): 1-13

if ($datatype == 'size') { // 大小

if ( $data1 == 1 ) {

$tag1 = 14;

$tag2 = $data2;

}else if( $data2 == 1){

$tag2 = 14;

$tag1 = $data1;

}else{

$tag1 = $data1;

$tag2 = $data2;

}

if ($tag1 > $tag2) {

return true;

}else{

return false;

}

}

// tag (花色):1 -- 黑桃 2 -- 紅桃 3 -- 梅花 4 -- 方片

if ($datatype == 'tag') {

$tag_arr = [1 => 4, 2 => 3, 3 => 2, 4 => 1];

if ($tag_arr[$data1] > $tag_arr[$data2]) {

return true;

}else{

return false;

}

}

}

總結

以上是生活随笔為你收集整理的炸金花 php算法,php 炸金花牌型 和 比牌 规则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。