From bcfbc8425d531fb53b0bbaff3902f8408198f95d Mon Sep 17 00:00:00 2001 From: c-my Date: Fri, 20 Mar 2020 14:14:34 +0800 Subject: [PATCH] fix problem in kong&&pong --- game/MahjongManager.go | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/game/MahjongManager.go b/game/MahjongManager.go index 5b63a89..d1d8a5b 100644 --- a/game/MahjongManager.go +++ b/game/MahjongManager.go @@ -59,18 +59,23 @@ func (m *MahjongManager) gameLoop(gameRecvCh chan message.GameMsgRecv, gameSendC case message.Pong: m.handlePong(msg) case message.ExposedKong: + m.handleExposedKong(msg) case message.ConcealedKong: + m.handleConcealedKong(msg) + case message.AddedKong: + m.handleAddedKong(msg) case message.Win: m.handleWin(msg) case message.Cancel: - + m.handleCancel(msg) } // TODO:main logic here } } func (m *MahjongManager) handleStart(msg message.GameMsgRecv) { - m.dealTile() + //m.dealTile() + m.dealTileTest() availableActions := make([]int, 0) availableActions = append(availableActions, message.Deal) newTile := m.wall.FrontDraw() @@ -118,7 +123,7 @@ func (m *MahjongManager) handleDiscard(msg message.GameMsgRecv) { if m.rules.CanWin(hand, shown, msg.Tile) { //send msg to this potential winner msgSend := message.GameMsgSend{ - MsgType: -1, + MsgType: message.GameMsgType, TableOrder: -1, CurrentTurn: (currentOrder + i) % 4, CurrentTile: msg.Tile, @@ -302,6 +307,7 @@ func (m *MahjongManager) handleExposedKong(msg message.GameMsgRecv) { //为玩家发牌 newTile := m.wall.BackDraw() m.playerTile[msg.TableOrder].HandTiles = append(m.playerTile[msg.TableOrder].HandTiles, newTile) + model.SortTiles(m.playerTile[msg.TableOrder].HandTiles) //发送消息 msgSend := message.GameMsgSend{ MsgType: message.GameMsgType, @@ -331,6 +337,7 @@ func (m *MahjongManager) handleConcealedKong(msg message.GameMsgRecv) { //为玩家发牌 newTile := m.wall.BackDraw() m.playerTile[msg.TableOrder].HandTiles = append(m.playerTile[msg.TableOrder].HandTiles, newTile) + model.SortTiles(m.playerTile[msg.TableOrder].HandTiles) //发送消息 msgSend := message.GameMsgSend{ MsgType: message.GameMsgType, @@ -363,6 +370,7 @@ func (m *MahjongManager) handleAddedKong(msg message.GameMsgRecv) { //发牌 newTile := m.wall.BackDraw() m.playerTile[msg.TableOrder].HandTiles = append(m.playerTile[msg.TableOrder].HandTiles, newTile) + model.SortTiles(m.playerTile[msg.TableOrder].HandTiles) //发送消息 msgSend := message.GameMsgSend{ MsgType: message.GameMsgType, @@ -436,6 +444,32 @@ func (m *MahjongManager) dealTile() { m.playerTile[2].HandTiles = append(m.playerTile[2].HandTiles, m.wall.FrontDraw()) m.playerTile[3].HandTiles = append(m.playerTile[3].HandTiles, m.wall.FrontDraw()) + for i := 0; i <= 3; i++ { + m.playerTile[i].SortHand() + } +} + +func (m *MahjongManager) dealTileTest() { + + for i:=1;i<=6;i++{ + m.playerTile[0].HandTiles = append(m.playerTile[0].HandTiles, model.Tile{Suit:model.Character,Number:i}) + m.playerTile[1].HandTiles = append(m.playerTile[1].HandTiles, model.Tile{Suit:model.Character,Number:i},model.Tile{Suit:model.Character,Number:i}) + } + for i:=1;i<=4;i++{ + m.playerTile[0].HandTiles = append(m.playerTile[0].HandTiles, model.Tile{Suit:model.Bamboo,Number:i}) + m.playerTile[2].HandTiles = append(m.playerTile[2].HandTiles, model.Tile{Suit:model.Bamboo,Number:i},model.Tile{Suit:model.Bamboo,Number:i},model.Tile{Suit:model.Bamboo,Number:i}) + } + m.playerTile[0].HandTiles = append(m.playerTile[0].HandTiles, model.Tile{Suit:model.Dragon,Number:1}) + m.playerTile[0].HandTiles = append(m.playerTile[0].HandTiles, model.Tile{Suit:model.Dragon,Number:1}) + m.playerTile[0].HandTiles = append(m.playerTile[0].HandTiles, model.Tile{Suit:model.Character,Number:1}) + m.playerTile[1].HandTiles = append(m.playerTile[1].HandTiles, model.Tile{Suit:model.Dragon,Number:1}) + m.playerTile[2].HandTiles = append(m.playerTile[2].HandTiles, model.Tile{Suit:model.Dragon,Number:1}) + + for i:=0;i<13;i++{ + m.playerTile[3].HandTiles = append(m.playerTile[3].HandTiles, m.wall.FrontDraw()) + } + + for i := 0; i <= 3; i++ { m.playerTile[i].SortHand() }