<?php /* * 游戏名称:炸金花(又名三张牌、扎金花) * 开发时间:2009.1.14 * 编 程:多菜鸟 * 来 源:http://blog.csdn.net/kingerq/archive/2009/02/24/3932255.aspx * 说 明: * 利用1到55的随机数除以14后的余数产生牌面, * 所以牌面的图片的排列A-K分别用数字1-13表示, * 不同的花色存放于不同的目录,如1,2,3,4 * 分别用除以14后得到的整数表示,详情参照代码注释。 * * 扑克图片下载地址,需要对其中的图片名称稍加修改方可利用 * http://d.download.csdn.net/down/962353/kingerq */ //发牌函数 function deal($player=1){ if( intval($player) < 1 ) return; $number = 1; //人数起始变量 $person = array(); //玩家牌面数组 $card = array(); //已发出的牌数组 while( $number <= $player ){ //玩家数 $peice = 1; $dian = array(); //玩家牌面数组 while( $peice <= 3 ){ //发三张牌 $value = rand(1, 55); while( in_array( $value, $card ) || fmod($value, 14) == 0 ) { //牌面不能有重复 $value = rand(1, 55); } $card[] = $value; //记录已经发出的牌 //$dian[$peice] = $value; if( count($dian) > 0 ) { //给出一个从小到大的顺序 if( fmod($dian[0], 14 ) >= fmod($value, 14) || fmod($value, 14) == 1 ) { //得到的牌面比数组第一张牌小时,放到数组前面 array_unshift( $dian, $value ); }else if ( fmod($dian[count($dian)-1], 14 ) <= fmod($value, 14) ){ //得到的牌面比数组最后一张牌大时,放到数组最后面 $dian[] = $value; }else { //除了以上情况之外,就是中间值 $dian[2] = $dian[1]; $dian[1] = $value; } }else $dian[] = $value; //echo '<img src="'