📄 game.java
字号:
// AddUserZhu(gamepos,UserZu[lastBetUser][0]-UserZu[gamepos][0]);
InitOperation(gamepos,1);
break;
case 2: //加
lastBetUser=gamepos;
InitOperation(gamepos,2);
break;
case 3: //放弃
InitOperation(gamepos,3);
break;
case 4: //过
InitOperation(gamepos,4);
break;
case 5: // 梭哈
if(gamepos==0)
{
bSuohaed=1;
bKaiPai=1;
}
{
bhadSuoha=1;
if(bSuohaed<=0)
canSuoha=1;
canFollow=0;
canPass=0;
canAdd=0;
}
if(newturn>0)
bKaiPai=1;
//AddUserZhu(gamepos,41*Mcell-UserZu[gamepos][0]);
InitOperation(gamepos,5);
break;
case 6: //开
// if(Def.bDgg)System.out.println("480开牌"+gamepos);
//InitOperation(gamepos,6);
break;
case -1:
break;
}
if(newturn>0)
{
canAdd=1;
lastBetUser=-1;
}
bDrawCell=true;
ActiveUser();
break;
case 481: //发牌命令
MovePaiN+=1;
BetMoney=0;
//InitMove();
HignCanAdd=Commu.getIntFromPack(recvpack, Commu.readPos);
user=Commu.getByteFromPack(recvpack, Commu.readPos);
NextUser=GetGameSeat(user);
for(int i=0;i<5;i++)
{
int index=GetGameSeat(i);
int paivalue=Commu.getByteFromPack(recvpack, Commu.readPos);
if(paivalue!=0)
{
int type=paivalue/16;
int value=paivalue%16;
if(Def.bDgg) System.out.println(index+"ty481pe"+type+"value"+value);
//AddMovePai(index,type,value);
AddPai(index,type,value);
}
}
byte cardnum=Commu.getByteFromPack(recvpack, Commu.readPos);
if(cardnum>=3&&bSuohaed==0)
{
canSuoha=1;
if(Def.bDgg) System.out.println("超过3张牌");
}
if(bhadSuoha==0)
canPass=1;
canFollow=0;
ActiveUser();
break;
case 483: //游戏放弃
user=Commu.getByteFromPack(recvpack, Commu.readPos);
user=GetGameSeat(user);
if(Def.bDgg)System.out.println("游戏放弃"+user);
LoseOneUser(user);
CheckResult[user]=1;
break;
case 685:
bKaiPai=3;//通知可以开牌
//if(Def.bDgg)System.out.println("通知可以开牌");
user=Commu.getByteFromPack(recvpack, Commu.readPos);
NextUser=GetGameSeat(user);
ActiveUser();
canAdd=0;
canFollow=0;
canSuoha=0;
canPass=0;
// byte openuser=Commu.getByteFromPack(recvpack, Commu.readPos);
// byte cardnum=Commu.getByteFromPack(recvpack, Commu.readPos);
break;
case 485: //有人开牌
if(Def.bDgg)System.out.println("有人开牌");
user=Commu.getByteFromPack(recvpack, Commu.readPos);
byte seat=Commu.getByteFromPack(recvpack, Commu.readPos);
NextUser=GetGameSeat(user);
seat=(byte )GetGameSeat(seat);
if(Def.bDgg)System.out.println("有人开牌"+seat);
InitOperation(seat,6);
ActiveUser();
if(NextUser==0)
bKaiPai=1;
break;
case 104:
//if(Def.bDgg)System.out.println("游戏结束");
byte []cards=new byte[MaxUser];
for(int i=0;i<MaxUser;i++)
{
if(BhadUser[i])
GamePlayer[i].Player_Status = 2;
int zu=Commu.getIntFromPack(recvpack, Commu.readPos);
user=GetGameSeat(i);
/* if(zu!=0)
{
try{
Localhall.UpdateHallCoin(i, zu);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
if(BhadUser[user])
UpdateCoin(user,zu);*/
Score[user]=zu;
}
for(int i=0;i<MaxUser;i++)
{
user=GetGameSeat(i);
cards[user]=Commu.getByteFromPack(recvpack, Commu.readPos);
}
/* CleanPai();
for(int i=0;i<MaxUser;i++)
{
user=GetGameSeat(i);
for(int j=0;j<cards[user];j++)
{
int paivalue=Commu.getByteFromPack(
pack, Commu.readPos);
if(paivalue!=0)
{
int type=paivalue/16;
int value=paivalue%16;
//if(Def.bDgg)System.out.println(user+"type"+type+"value"+value);
AddPai(user,type,value);
}
}
Commu.readPos+=(5-cards[user]);
}*/
Commu.readPos+=25;
Commu.readPos+=20;
for(int i=0;i<MaxUser;i++)
{
user=GetGameSeat(i);
PaiType[user]=Commu.getByteFromPack(recvpack, Commu.readPos);
}
GotoResult=6;
break;
}
break;
}
}
}
public void drawCardType(Graphics g,int i,int x,int y)
{
//for(int i=0;i<MaxUser;i++)
{
String type="";
switch(PaiType[i])
{
case 1:
type="散牌";
break;
case 2:
type="对子";
break;
case 3:
type="两对";
break;
case 4:
type="三条";
break;
case 5:
type="顺子";
break;
case 6:
type="同花";
break;
case 7:
type="葫芦";
break;
case 8:
type="铁之";
break;
case 9:
type="同花顺";
break;
}
//int bx=GameDef.PaiPosition[i][0];
//int by=GameDef.PaiPosition[i][1]-10;
g.drawString(type,x,y,0);
}
}
public byte[] formatSendPack(int maintrancode,int subtrancode)
{
//if(Def.bDgg)System.out.println("即将发报文:::: 主命令码 maintrancode = "+maintrancode
// +"; 子命令码 subtrancode = "+subtrancode);
byte[] sendPack = null;
int pos = 0, length = 0;
switch (maintrancode)
{
case 0:
{//maintrancode :主命令码
switch (subtrancode)
{
case 1:
{//subtrancode :子命令码
System.out.println("sdsafdf");
length += 5;
sendPack = new byte[length];
pos = Commu.insertByteToPack((byte) 12, sendPack, pos);
pos = Commu.insertIntToPack((byte) 22, sendPack, pos);// pos = Commu.insertIntToPack(5678, sendPack, pos);
break;
}
case 2:
{
break;
}
}
break;
}
case 100:
{//maintrancode :主命令码
switch(subtrancode)
{
case 485: //开牌
{
length += 3;
sendPack = new byte[length];
pos = Commu.insertByteToPack((byte)s_player_chair_idx, sendPack, pos);
pos = Commu.insertByteToPack((byte)s_player_chair_idx, sendPack, pos);
pos = Commu.insertByteToPack((byte)actionType, sendPack, pos);
if(Def.bDgg) System.out.println("准备接到");
break;
}
case 480: //下注
{
length += 6;
sendPack = new byte[length];
if(actionType==5)
{
//System.out.println("发送梭哈");
//bKaiPai=1;
pos = Commu.insertIntToPack(HignCanAdd+BetMoney, sendPack, pos);
}
else
pos = Commu.insertIntToPack(Addmoney+BetMoney, sendPack, pos);
pos = Commu.insertByteToPack((byte)s_player_chair_idx, sendPack, pos);
pos = Commu.insertByteToPack((byte)actionType, sendPack, pos);
Addmoney=0;
if(Def.bDgg) System.out.println(actionType+"发送加注命令"+Addmoney+"宗主"+BetMoney);
break;
}
case 483: // 放弃
{
if(Def.bDgg) System.out.println("发送放弃命令");
length = 1;
sendPack = new byte[length];
pos = Commu.insertByteToPack((byte)s_player_chair_idx, sendPack, pos);
break;
}
}
break;
}
case 101:
{//发送举手包 : 101.2
switch(subtrancode)
{
case 2:
//sendPack = new byte[1];
//pos = Commu.insertByteToPack((byte) s_player_chair_idx, sendPack, pos);
if(Def.bDgg) System.out.println("准备发送");
break;
case 1:
length = 1;
sendPack = new byte[length];
pos = Commu.insertByteToPack((byte)0, sendPack, pos);
break;
}
break;
}
}
return sendPack;
}
byte getByteFromPack(byte[] data,int pos)
{
return 1;
}
int getIntFromPack(byte[] data,int pos)
{
return 2;
}
void getBoolFromPack(byte[] data,int pos)
{
}
public int getHign()
{
int hign=0;
for(int i=0;i<MaxUser;i++)
{
if(UserZu[i][0]>0)
{
if(UserZu[i][0]>hign)
hign=UserZu[i][0];
}
}
return hign;
}
/**********按键功能函数*************/
public void DoInput()
{
switch(GameStatus)
{
case GameDef.LoadStatus:
break;
case GameDef.ReadyStatus:
if(GameStatus!=GameDef.LoadStatus&&Hall.IsKeyPressed(Hall.GK_NUM7))
{
BToHall=true;
return;
}
if(Hall.IsKeyPressed(Hall.GK_FIRE)&&!GamePlayer[0].playerIsReady())
{
_Commu.formatSendPack((short)101,(short)2);
}
break;
case GameDef.PlayStatus:
if(Hall.IsKeyPressed(Hall.GK_FIRE)&&!GamePlayer[0].playerIsReady())
{
//_Commu.formatSendPack(GameDef.NET_MSG_READY);
}
if(CurrentUser!=0)
return;
if(showAddCoin>0)
{
if(Hall.IsKeyPressed(Hall.GK_LEFT))
{
if(MenuIndex>0)
MenuIndex-=1;
}
if(Hall.IsKeyPressed(Hall.GK_RIGHT))
if(MenuIndex+1<4&&AddMenu[MenuIndex+1]>0)
{
MenuIndex+=1;
}
if(Hall.IsKeyPressed(Hall.GK_FIRE))
{
showAddCoin=0;
actionType=2;
if(AddMenu[MenuIndex]==8)
{
/*case 0:
if(Addmoney+1*Mcell<=HignCanAdd)
Addmoney+=1*Mcell;
else
{
Addmoney=HignCanAdd;
}
//_Commu.formatSendPack((short)100,(short)480);
// break;
case 1:
if(Addmoney+2*Mcell<=HignCanAdd)
Addmoney+=2*Mcell;
else
{
Addmoney=HignCanAdd;
}
//_Commu.formatSendPack((short)100,(short)480);
//break;
*/
BflushMenu=true;
BShowMenu=true;
MenuIndex=0;
}
else
{
Addmoney=AddMenu[MenuIndex]*Mcell;
_Commu.formatSendPack((short)100,(short)480);
}
}
break;
}
if(BShowMenu)
{
if(Hall.IsKeyPressed(Hall.GK_UP))
{
if(canSuoha>0)
MenuIndex=4;
}
if(Hall.IsKeyPressed(Hall.GK_DOWN))
if(MenuIndex==4)
{
MenuIndex=0;
}
if(Hall.IsKeyPressed(Hall.GK_LEFT))
{
if(MenuIndex>0&&MenuIndex<3)
MenuIndex-=1;
}
if(Hall.IsKeyPressed(Hall.GK_RIGHT))
if(MenuIndex+1<3)
{
MenuIndex+=1;
}
if(Hall.IsKeyPressed(Hall.GK_FIRE))
{
BShowMenu=false;
BflushMenu=true;
if(canSuoha>0&&MenuIndex==4)
{
actionType=5;
_Commu.formatSendPack((short)100,(short)480);
canSuoha=0;
break;
}
switch(Menu[MenuIndex])
{
case SignFollow:
actionType=1;
Addmoney=0;
int max=0;
for(int i=0;i<MaxUser;i++)
{
if(BhadUser[i]&&i!=0)
{
if(max==0)
{
max=UserZu[i][0];
}
if(UserZu[i][0]>max)
max=UserZu[i][0];
}
}
//BetMoney=UserZu[lastBetUser][0]-UserZu[0][0];
BetMoney=max-UserZu[0][0];
//if(Def.bDgg)System.out.println("发送跟牌"+actionType);
_Commu.formatSendPack((short)100,(short)480);
break;
case SignPass:
actionType=4;
Addmoney=0;
BetMoney=0;
//if(Def.bDgg)System.out.println("发送过拍"+actionType);
_Commu.formatSendPack((short)100,(short)480);
//BShowMenu=true;
// _Commu.formatSendPack(GameDef.NET_MSG_CHECKPAI);
break;
case SignAdd:
//System.out.println("发送加注"+actionType);
initAdd();
showAddCoin=1;
//InitMenu(GameDef.AddMenu);
// _Commu.formatSendPack(GameDef.NET_MSG_ADDCOIN);
break;
case SignGiveup:
//actionType=3;
//if(Def.bDgg)System.out.println("发送放弃"+actionType);
_Commu.formatSendPack((short)100,(short)483);
//_Commu.formatSendPack(GameDef.NET_MSG_RESOPEN);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -