如何用php制作斗地主游戏
来源:网络收集 点击: 时间:2024-08-251.进入房间时,调用进入接口 /room/join
2.准备状态,调用接口 /game/prepare

3.
a.当php检测到准备玩家数量 preparedPlayerCount == room.maxPlayerCount 时(最后一名玩家调用准备接口),由php端生成一个52张牌(不含大小王)的牌池,然后shuffle 洗牌~ 如果追求极致可以多shuffle两次... 将牌池数据插入数据库表cards_pool,生成新的的poolId

b.通知kbe发送开始游戏消息给房间内所有玩家,并告知刚刚生成的poolId (每个房间的所有牌池中的roundCount 从1开始递增,即新创建一个房间开始游戏计算第一轮,每新生成一个牌池则回合数+1)

c.玩家(unity端) 收到消息后调用摸牌接口 /game/getCards ,接口参数中的cardsCount由具体的游戏玩法决定每人摸多少张排(例如斗地主13张),准备游戏界面:

4.通知kbe发送消息给最先出牌的玩家(由具体规则决定首先出牌的玩家ID),unity端开始20秒倒计时,倒计时内该玩家需要调用出牌接口 /game/stepCards ,将所出的牌拼接成字符串作为参数,如果选择过,则该参数置null。接口仅记录出牌步骤至数据库表 cards_pool_step,不校验牌型是否合法,由unity端自行校验

5.通知kbe发送消息给下一位玩家重复步骤4,直到连续有maxPlayerCount-1条 出牌记录为null的时候判断本轮出牌终止,记录这名玩家的userID,开始下一轮出牌

6.通知kbe发送消息给这位玩家出牌重复步骤4~5 直到任意一名玩家手牌数量为0(根据具体玩法决定胜利条件),回合结束,由客户端自行检测,胜利的玩家调用结束回合接口 /game/roundOver

7.重复步骤2~6 直到任意一名玩家离开房间
接口测试数据:某玩家从牌桌上摸一张后:

error : 发牌成功,
3
errorCode : 200,
4
errorMsg : Get Cards Success,
5
cardPool : {
6
poolId : 1,
7
createTime : 2016-11-04 04:50:15,
8
cards :3_10|3_1|3_6|4_10|3_8|4_12|3_13|4_2|2_6|2_4|1_10|4_3|1_3|2_13|2_8|1_6|4_6|1_9|3_12|1_2|3_7|1_8|3_5|2_2|4_11|1_1|3_4|2_12|4_13|1_11|1_4|2_1|3_3|2_7|2_10|4_4|3_9|2_5|4_7|1_5|3_2|1_13|2_11|3_11|4_9|4_1|1_12|4_8|2_3|2_9|4_5,
9
roomId : 1003,
10
roundCount : 1
11
},
12
myCards : 1_7
}

前缀1~4代表花色 后缀代表数字
cards 就是shuffle过后的牌池

unity端目前的效果:
打出一张 3带一对的步骤(桌布的UI素材还没给我呢 用的我们的麻将桌布):

其实用flash效果更好
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_1155994.html