http://blog.csdn.net/aojiancc2/article/details/14170221一
这里分析一下玩家的对象
属性:
1:是否准备isready
2:是否是地主islandlord
3:是否是最初选择出来的地主isinitlandlord
4:是否不要ispass
5:是否该我出牌ismeput
6:抢地主时选择的分数choiseScore
7:拥有一个牌的对象poker
8:区号zone_number
9:房间号rome_number
10:桌号table_number
11:座位号seat_number
方法:
1:进入房间
2:准备
3:选择分数
4:出牌
5:不要
6:退出房间
先说下简单的思路
1:进入房间
用户进入房间后我们就初始化一个用户的对象然后存放到一个键值对里,这样任何一个用户就可以更具区号房间号桌号找到该房间的另外两个用户
2:准备
其实也就是一个状态,通过id取出用户对象把是否准备的属性设置为true,只是当该房间的所有用户都准备了
就分牌开始游戏,开始游戏需要随机参数一个地主
3:选择分数
1-3分供选择如果选择三分自己就是地主,如果选择其他分数,把选择地主的权利交给下家
怎么找下家呢,其实斗地主就一个房间就三个用户也就是座位号1,2,3如果现在是用户1那么下次肯定就该2的选择权
如果是3就该1的选择权,然后就可以更具那个键值对找到对应的用户
public int CalNextPutUsers(int _ui)
{
if (_ui == 3)
return 1;
else
return ++_ui;
}
如果已经找了一圈了都没有人选择三分那么就指定选择分数最高的作为地主
4:出牌
前台需要验证是否符合规则,然后后台验证是否大过上家,先找到上家方法很简单,通过座位号即可
public int CalLastPutUsers(int _ui) //得到上一次出牌的用户
{
if (_ui == 1)
return 3;
else
return --_ui;
}
得到上家的对象后因为经过上篇的处理只需要判断他们牌对象中的tag即可
只是如果上家是不要的话,就在继续找一次
5:不出
是否不要ispass设置成true然后找到下家,把出牌权交给下家