⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 game.java

📁 J2ME实现得梭哈游戏联网程序
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
					// 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 + -