<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                >[danger]游戲開始后,房間的游戲數據表保存在緩存中,緩存格式為S(‘game_roomid’) game_roomid緩存格式為 ``` [ 'room'=>['groupUid'=>10,'groupId'=>10,'roomGroup'=>'888888','roomId'=>10,'gameNum'=>8,'currentNum'=>1,'groupName'=>"親友圈名稱",gameId=>1,number=>1,groupName=>'親友圈名稱','gameSign'=>"Points"], 'config'=>['players'=>4],//游戲玩法 'user'=>[ '1'=> ['userSign'=>'username1','nickName'=>'昵稱','headImg'=>'img/headImg.jpg','p'=>1], '2'=> ['userSign'=>'username2','nickName'=>'昵稱','headImg'=>'img/headImg.jpg','p'=>2], '3'=> ['userSign'=>'username3','nickName'=>'昵稱','headImg'=>'img/headImg.jpg','p'=>3], '4'=> ['userSign'=>'username4','nickName'=>'昵稱','headImg'=>'img/headImg.jpg','p'=>4], ], 'point'=>['1'=>0,'2'=>0,'3'=>0,'4'=>0],//游戲積分 'ready'=>['1'=>1,'2'=>1,'3'=>1,'4'=>1],//記錄那個用戶已經準備好 'drawing'=>['1'=>0,'2'=>0,'3'=>0,'4'=>0],//聽牌記錄 'cards'=>[],//底牌 'cardRecord'=>['1'=>[] ] , 'handCards'=>['1'=>['cards'=>[],'M3'=>['104'=>1],'M4'=>[],'M5'=>[] ] ,'2'=>[] ,'3'=>[] ,'4'=>[] ],//手牌 'game'=>['banker'=>1,'discard'=>102,'userDiscard'=>2,'userWait'=>['cards'=>101,'type'=>1],'chess'=>104,'userChess'=>3], 'dissolve'=>['userDissolve'=>2,'user'=>['1'=>1] ],游戲解散記錄 'isopen'=>0,游戲是否開始 ] ``` 數組說明,以上數組為一個游戲桌上的用戶, >[info]room:游戲中房間的信息 groupUid:群主的用戶id groupId:房間所在的群組id roomGroup:游戲房間中,房間所在的親友圈群號 roomId:游戲房間中,房間id gameNum:游戲房間中,游戲的總局數 currentNum:游戲房間中,游戲當前的局數 groupName:親友圈名稱 number:親友圈的桌號 gameId:游戲id gameSign:游戲標識 >[info]config:游戲中房間的配置 players:游戲人數 >[info]user:房間的用戶信息 user的key值為用戶的位置 userSign:用戶唯一標識,可以id也可以是用戶名,或者其它 nickName:用戶昵稱 headImg:用戶頭像圖片 p:中用戶所在的位置 >[info]point:用戶的積分 point的key值為用戶的位置 point的值為用戶的積分 >[info]cardRecord:每個用戶出牌的記錄 cardRecord的key值為用戶的位置 point的值為用戶出牌的牌值 >[info]drawing:聽牌記錄 drawing的key值為用戶的位置 drawing的值為0表示沒有聽牌,如果為數組表示已經聽牌,數組為聽牌后要胡的牌 >[info]ready:用戶準備的記錄 ready的key值為用戶的位置 ready的值為當前的游戲局數,表示已經準備 >[info]cards:游戲底牌,為數組,值為牌值 >[info]handCards:用戶的手牌 handCards的key值為用戶的位置 handCards的值是一個數組 cards:手牌的可以打出的牌 M3:已經碰了牌,格式數組 ['104'=>1] M4:明杠的牌,格式為['104'=>1] M5:暗杠的牌,格式為['104'=>1] M3,M4,M5的key為點碰杠的牌值,值為點牌人的位置 >[info]game:游戲的中動作的記錄 banker:當前游戲的莊家 discard:當前游戲最后一次所出的牌 userDiscard:當前游戲最后一次出牌的用戶位置 chess:當前游戲最后一次出牌后,另外一個人所起的牌值 userChess:當前游戲最后一次出牌后,起牌人的位置 userWait:當前游戲最后一次出牌后,是否有人碰或者杠或者胡牌,如果有保存的為等待操作的用戶的位置 ``` //userWait數組 [ 'cards'=>101, 'type'=>1//1:有人胡牌,2有人聽牌,3別人出牌有人杠,4有人碰牌,5自己摸牌杠 'p'=>1//用戶在桌上的位置 ] ``` >[info]dissolve:游戲解散記錄 userDissolve:發起解散的用戶位置 user:點擊同意和拒絕的記錄,key值為用戶位置,值不為真表示沒點擊按鈕,為1表示同意解散,為2表示拒絕解散 userDissolve 發起解散用戶的位置 p time 發起解散游戲的時間戳 timer 定時器id >[danger]游戲流程描述 >第一步:會員進入房間時 1. 判斷當前游戲桌是否人滿,判斷方式:config['players']與count(user)比較,如果游戲人滿,提示游戲滿員 2. 如果游戲沒有滿員,獲取桌子無人位置,$P 3. 寫如會員信息 $user[$P]=[用戶信息] 4. 設置用戶積分$point[$P]=[默認積分] 5. 設置用戶準備標識 $ready[$P]=$room['currentNum'] 6. 設置莊家,開始為第一個進入游戲的人 $game['banker'] = 1 7. 通過 $config['players'] <= count($user)比較, 達到開始游戲的人數游戲就開始 >第二步:開始游戲 1. 生成游戲底牌 2. 開始發牌,將牌寫入到$handCards[$P]中 3. 給莊家多發一張牌 >第三步:開始出牌 1. 判斷是否輪到玩家出牌以及手中是否存在該張手牌 2. 出牌玩家出牌后,銷毀當前玩家手牌 3. 將打出的牌放入到$cardRecord[$P]出牌記錄中 4. 更新 $game['userWait'] = 0,更新$game['discard'],$game['userDiscard']出牌用戶信息,更新起牌用戶信息的記錄$game['chess']=0,$game['userChess']=0 5. 如果牌值大于5,檢測聽牌的玩家是否點炮,檢測是否有杠,檢測是否有碰 6. 如果有點炮,杠,碰的,更新 $game['userWait'] = $P 7. 如果沒有 點炮,杠,碰,下一位玩家起牌 >第四步:玩家起牌 1. 銷毀并獲取底牌的最前邊一張牌,插入到當前用戶的手牌中$handCards['cards'][] 2. 更新 $game['userWait'] = 0,更新$game['discard']=0,$game['userDiscard']=0出牌用戶信息,更新起牌用戶信息的記錄$game['chess'],$game['userChess'] 3. 判斷是否聽牌杠牌 4. 如果沒有,直接進入出牌階段 >第五步:聽牌 1. 如果有聽牌更新 $game['userWait']=$P 2. 如果玩家點擊[過],更新$game['userWait'] = 0 3. 進入下一家玩家起牌階段 4. 如果點聽牌,進入聽牌階段,設置$drawing[$P]=[] 5. 然后出牌,進入出牌階段 >第六步:碰牌 1. 如果玩家點擊[過],設置$game['userWait'] = 0 2. 進入下一家摸牌階段 3. 如果玩家點碰,銷毀手牌中的2張牌,在$handCards[$P]['M3']=['104'=>$P] 4. 更新$game['userWait'] = 0,更新$game['chess'],$game['userChess'],更新$game['discard']=0,$game['userDiscard']=0 5. 進入出牌階段 >第七步:杠牌 1. 如果玩家點過 ,設置$game['userWait'] = 0 2. 進入下一家玩家摸牌階段 3. 如果玩家點杠,銷毀手中3張牌,或者將碰轉換成杠 4. 更新$game['userWait'] = 0,更新$game['chess'],$game['userChess'],更新$game['discard']=0,$game['userDiscard']=0 5. 進入出牌階段 >第八步:胡牌 1. 如果玩家點過,設置$game['userWait'] = 0 2. 進入下一家摸牌階段 3. 如果玩家點胡牌,結算結果
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看