看板 PHP 關於我們 聯絡資訊
※ 引述《JoeHorn (每天都在公司玩OLG)》之銘言: : ※ 引述《yuleen123 (.......................)》之銘言: : : 我的作法是建一個對照表 : : $Poker_map = array( "S1", "S2", ... , "S13", "H1", "H2", ... , "H13", : : "D1", "D2", ... , "D13", "C1", "C2", ... , "C13 ); : : 共 52 張牌 : : 抽第一張牌時產生 0 ~ 51 的亂數值對應到 $Poker_map 對照表上 : : $num = rand( 0, 51 ); : 這種陣列很好辦。 : // 取幾張 : define('GET_CARDS', 10); : // 陣列位置: 0~51,共 52 張牌 : $max = 51; : for ($i = 0; i < GET_CARDS; $i++) { : $num = rand( 0, $max); : ..... // 取出 $Poker_map[$num] , 看你自己怎麼處理 : $Poker_map[$num] = $Poker_map[$max]; // 把最後一張牌拿來補 : $max--; : } =_= 或許有點不對題,畢竟如果你要用C寫的話,下列就沒參考的價值了 關於發牌的程式我寫過一篇,盡量用PHP的函式完成,程式碼如下 /************************************************************ * PHP撲克牌發牌範例 * 程式來源:http://blog.pixnet.net/liaosankai/post/17834738 ************************************************************/ //建立牌組 $mark = array('Spade','Heart','Diamond','Club'); foreach($mark as $key => $icon) { for($i=1;$i<=13;$i++){ $cards[$key.$i] = "{$icon} {$i}"; } } //洗牌 srand(time()); shuffle($cards); //各發5張牌給A、B玩家,並將花色排序 $palyer = array('A','B'); foreach($palyer as $index => $name) { for($i=0;$i<5;$i++){ $player[$name][] = array_pop($cards); } //整理牌組 arsort($player[$name]); } # 執行結果如下: # Array # ( # [A] => Array # ( # [1] => Heart 8 # [3] => Heart 7 # [0] => Diamond 11 # [2] => Club 12 # [4] => Club 10 # ) # # [B] => Array # ( # [3] => Spade 2 # [0] => Spade 1 # [1] => Heart 2 # [2] => Heart 12 # [4] => Diamond 6 # ) # # ) -- 我的樂多網誌http://blog.roodo.com/liaosankai -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.67.243.112