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

      歡迎訪問 生活随笔!

      生活随笔

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

      php

      扎金花游戏 PHP 实现代码之大小比赛

      發布時間:2025/3/15 php 30 豆豆
      生活随笔 收集整理的這篇文章主要介紹了 扎金花游戏 PHP 实现代码之大小比赛 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

      扎金花游戲 PHP 實現代碼之大小比賽

      程序離不開算法,在前面的博客當中,其實我們已經討論過尋路的算法。不過,當時的示例圖中,可選的路徑是唯一的。我們挑選一個算法,就是說要把這個唯一的路徑選出來,怎么選呢?

      還記得上初中的時候經常下午放學就躲在路邊扎金花來賭*錢,貌似還上癮了,現在過年的時候還經常一起扎金花賭*錢,但運氣不啥好,每次都是輸啊。

      今天陽光明媚,由于清明節才出去玩了,所以今天沒有去哪。閑著沒事就想了下怎么用程序實現金花中兩幅牌的大小比較,現在把它實現了,有些方法還是蠻重要的,因此就記下來。

      好了,不廢話了。

      扎金花兩副牌的比較規則就不說了,注明一下是順子的時候 : JQK < A23 < QKA

      思路:扎金花(http://www.a8u.net/)

      1" 隨機生成兩幅牌,每副牌結構為

      [php] view plaincopyprint?
    1. array(??
    2. ????array('Spade','K'),??
    3. ????array('Club','6'),??
    4. ????array('Spade','J'),??
    5. )??
    6. array(array('Spade','K'),array('Club','6'),array('Spade','J'), )

      2” 計算每副牌的分值:每副牌有個原始大小(即排除對子,順子,金花,順金,筒子的大小),再

      ??? 每張牌的分值為一個2位數,不足2位的補前導0,例如'A':14,‘10’:10,’2‘:’02‘,’k‘:13,’7‘:07

      ??? 將3張牌按點數大小排序(從大到小),湊成一個6位數。例如’A27':140702,‘829’:090802,‘JK8’:131108,‘2A10’:141002

      ??? 例外,對于對子要將對子的位數放在前兩位(后面會看到為什么這么做)。例如‘779’:070709,‘7A7’:070714,‘A33’:030314

      ?? 現在的分值是一個6位數,將對子設為一個原始值加上10*100000的值,現在為一個7位數。例如‘779’:1070709,‘7A7’:1070714,‘A33’:1030314

      ?? 對于順子,將結果加上20*100000.。例如‘345’:2050403,‘QKA’:2141312,‘23A’:2140302

      ?? 對于金花,將結果加上30*100000。例如‘Spade K,Spade 6,Spade J':3131106

      ?? 因為順金的時候其實是金花和順子的和,所以順金應該是50*10000。 例如‘Spade 7,Spade 6,Spade 8':5080706

      ?? 對于筒子,將結果加上60*100000。例如’666‘:6060606,’JJJ‘:6111111

      3“ 比較兩幅牌的大小(用所計算的分值來比較)


      就這么簡單!!

      代碼如下(PHP)

      [php] view plaincopyprint?
    7. <?php??
    8. class?PlayCards??
    9. {??
    10. ????public?$suits?=?array('Spade',?'Heart',?'Diamond',?'Club');??
    11. ????public?$figures?=?array('2',?'3',?'4',?'5',?'6',?'7',?'8',?'9',?'10',?'J',?'Q',?'K',?'A');??
    12. ????public?$cards?=?array();??
    13. ????public?function?__construct()??
    14. ????{??
    15. ????????$cards?=?array();??
    16. ????????foreach($this->suits?as?$suit){??
    17. ????????????foreach($this->figures?as?$figure){??
    18. ????????????????$cards[]?=?array($suit,$figure);??
    19. ????????????}??
    20. ????????}??
    21. ????????$this->cards?=?$cards;??
    22. ????}??
    23. ????public?function?getCard()??
    24. ????{??
    25. ????????shuffle($this->cards);??
    26. ????????//生成3張牌??
    27. ????????return?array(array_pop($this->cards),?array_pop($this->cards),?array_pop($this->cards));?????
    28. ??
    29. ????}??
    30. ????public?function?compareCards($card1,$card2)??
    31. ????{??
    32. ????????$score1?=?$this->ownScore($card1);??
    33. ????????$score2?=?$this->ownScore($card2);??
    34. ????????if($score1?>?$score2)?return?1;??
    35. ????????elseif($score1?<?$score2)?return?-1;??
    36. ????????return?0;?????????
    37. ????}??
    38. ??????
    39. ??????
    40. ????private?function?ownScore($card)??
    41. ????{??
    42. ????????$suit?=?$figure?=?array();??
    43. ????????foreach($card?as?$v){??
    44. ????????????$suit[]?=?$v[0];??
    45. ????????????$figure[]?=?array_search($v[1],$this->figures)+2;??
    46. ????????}??
    47. ????????//補齊前導0??
    48. ????????for($i?=?0;?$i?<?3;?$i++){??
    49. ????????????$figure[$i]?=?str_pad($figure[$i],2,'0',STR_PAD_LEFT);??
    50. ????????}??
    51. ????????rsort($figure);??
    52. ????????//對于對子做特殊處理??
    53. ????????if($figure[1]?==?$figure[2]){??
    54. ????????????$temp?=?$figure[0];??
    55. ????????????$figure[0]?=?$figure[2];??
    56. ????????????$figure[2]?=?$temp;??
    57. ????????}??
    58. ????????$score?=?$figure[0].$figure[1].$figure[2];??
    59. ????????//筒子?60*100000??
    60. ????????if($figure[0]?==?$figure[1]?&&?$figure[0]?==?$figure[2]){??
    61. ????????????$score?+=?60*100000;??
    62. ????????}??
    63. ????????//金花?30*100000??
    64. ????????if($suit[0]?==?$suit[1]?&&?$suit[0]?==?$suit[2]){??
    65. ????????????$score?+=?30*100000;??
    66. ????????}??
    67. ????????//順子?20*100000??
    68. ????????if($figure[0]?==?$figure[1]+1?&&?$figure[1]?==?$figure[2]+1?||?implode($figure)?=='140302'){??
    69. ????????????$score?+=?20*100000;??
    70. ????????}??
    71. ????????//對子?10*100000??
    72. ????????if($figure[0]?==?$figure[1]?&&?$figure[1]?!=?$figure[2]){??
    73. ??
    74. ????????????$score?+=?10*100000;??
    75. ????????}??
    76. ????????return?$score;??
    77. ????}??
    78. }??
    79. ??
    80. //test??
    81. $playCard?=?new?PlayCards();??
    82. $card1?=?$playCard->getCard();??
    83. $card2?=?$playCard->getCard();??
    84. $result?=?$playCard->compareCards($card1,$card2);??
    85. ??
    86. echo?'card1?is?',printCard($card1),'<br/>';??
    87. echo?'card2?is?',printCard($card2),'<br/>';??
    88. $str?=?'card1?equit?card2';??
    89. if($result?==?1)?$str?=??'card1?is?larger?than?card2';??
    90. elseif($result?==?-1)?$str?=?'card1?is?smaller?than?card2';??
    91. echo?$str;??
    92. ??
    93. ??
    94. function?printCard($card)??
    95. {??
    96. ????$str?=?'(';??
    97. ????foreach($card?as?$v){??
    98. ????????$str?.=?$v[0].$v[1].',';??
    99. ????}??
    100. ????return?trim($str,',').')';??
    101. }??
    102. <?php class PlayCards {public $suits = array('Spade', 'Heart', 'Diamond', 'Club');public $figures = array('2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A');public $cards = array();public function __construct(){$cards = array();foreach($this->suits as $suit){foreach($this->figures as $figure){$cards[] = array($suit,$figure);}}$this->cards = $cards;}public function getCard(){shuffle($this->cards);//生成3張牌return array(array_pop($this->cards), array_pop($this->cards), array_pop($this->cards)); }public function compareCards($card1,$card2){$score1 = $this->ownScore($card1);$score2 = $this->ownScore($card2);if($score1 > $score2) return 1;elseif($score1 < $score2) return -1;return 0; }private function ownScore($card){$suit = $figure = array();foreach($card as $v){$suit[] = $v[0];$figure[] = array_search($v[1],$this->figures)+2;}//補齊前導0for($i = 0; $i < 3; $i++){$figure[$i] = str_pad($figure[$i],2,'0',STR_PAD_LEFT);}rsort($figure);//對于對子做特殊處理if($figure[1] == $figure[2]){$temp = $figure[0];$figure[0] = $figure[2];$figure[2] = $temp;}$score = $figure[0].$figure[1].$figure[2];//筒子 60*100000if($figure[0] == $figure[1] && $figure[0] == $figure[2]){$score += 60*100000;}//金花 30*100000if($suit[0] == $suit[1] && $suit[0] == $suit[2]){$score += 30*100000;}//順子 20*100000if($figure[0] == $figure[1]+1 && $figure[1] == $figure[2]+1 || implode($figure) =='140302'){$score += 20*100000;}//對子 10*100000if($figure[0] == $figure[1] && $figure[1] != $figure[2]){$score += 10*100000;}return $score;} }//test $playCard = new PlayCards(); $card1 = $playCard->getCard(); $card2 = $playCard->getCard(); $result = $playCard->compareCards($card1,$card2);echo 'card1 is ',printCard($card1),'<br/>'; echo 'card2 is ',printCard($card2),'<br/>'; $str = 'card1 equit card2'; if($result == 1) $str = 'card1 is larger than card2'; elseif($result == -1) $str = 'card1 is smaller than card2'; echo $str;function printCard($card) {$str = '(';foreach($card as $v){$str .= $v[0].$v[1].',';}return trim($str,',').')'; }


      總結

      以上是生活随笔為你收集整理的扎金花游戏 PHP 实现代码之大小比赛的全部內容,希望文章能夠幫你解決所遇到的問題。

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

      主站蜘蛛池模板: 少妇又色又爽又黄的视频 | 我爱av好色| 自拍视频在线观看 | 象人高潮调教丨vk | 欧美激情视频网站 | 成人中文视频 | 亚洲天堂免费在线观看视频 | 人人澡人人澡人人 | 污污的视频在线观看 | 黑人精品一区二区 | 久久www视频 | 国产一区二区精品久久 | 成人网免费 | 三级做爰在线观看视频 | av在线观| 伊人av一区 | 国产91传媒 | 久久综合色网 | 操操操插插插 | 北条麻妃在线一区 | 国内久久 | 成熟妇人a片免费看网站 | 91精品国产免费 | 男女裸体无遮挡做爰 | 性高跟鞋xxxxhd国产电影 | 亚洲欧美亚洲 | 99视频在线播放 | 永久国产 | 久久91视频| 欧美11p| 国产不卡av在线 | 欧美日韩国产91 | 久久久精品网站 | 亚洲激情图片区 | 成年人黄网站 | 中文字幕在线视频一区二区三区 | 男男一级淫片免费播放 | 日韩av片在线 | 免费在线中文字幕 | 亚洲精品欧美在线 | 欧美午夜性生活 | 青青草原国产视频 | 凹凸国产熟女精品视频 | 成人免费毛片日本片视频 | h无码动漫在线观看 | 亚洲大胆| 美女上床网站 | 射美女 | 91在线看片 | 国产视频三区 | 蜜臀人妻四季av一区二区不卡 | 亚洲婷婷久久综合 | 高清无码一区二区在线观看吞精 | 国产秋霞 | 中文字幕乱码无码人妻系列蜜桃 | 欧美激情在线一区二区 | 99精品小视频 | 欧美成在线视频 | 一区二区欧美视频 | 久久96| 一级特毛片 | 少妇中出视频 | 住在隔壁的她动漫免费观看全集下载 | 白白色免费视频 | 黑帮大佬和我的365日第二部 | free性欧美hd另类 | 噜噜视频 | 黄a网站 | 人人看人人干 | 美女操出白浆 | 国产精品18久久久 | 激情网站在线观看 | 粉嫩av一区二区 | 日韩久久久久 | 涩涩涩在线视频 | 欧美特一级 | av网页在线| 久艹在线观看视频 | 亚洲精品无amm毛片 国内一区二区三区 | 亚洲一区你懂的 | 国产天堂在线观看 | 婷婷激情丁香 | 少妇不卡视频 | 日日干夜夜草 | 丝袜高跟av| 在线观看亚洲成人 | 欧洲一区在线观看 | 日本韩国在线观看 | 69av在线视频 | 天天躁日日躁狠狠躁欧美 | 亚洲精品免费av | 涩涩视频在线观看 | 国产刺激高潮av | 91亚洲精品久久久蜜桃借种 | 操操操免费视频 | 日韩av毛片 | 国产成人午夜 | 国产人妖ts重口系列网站观看 | 国产婷婷色一区二区 |