/*----------------------------------------------------------
*****************  伍剑 斗地主 1.0  *****************
作者：张辉
网站：http://www.wj008.net 
程序员代号：wj008
联系QQ：496865687
版权：版权全体,源代码公开,各种用途均可免费使用
**********************************************************
----------------------------------------------------------*/
//--------------牌型--------------------------------
//火箭
function IsHuoJian(str)
{
	if(str=="" ||str==null)
	return false;
	
	if(str=='[14-6][14-5]'||str=='[14-5][14-6]')
	return true;
	else
	return false;
}
//炸弹
function IsZhaDan(str)
{
	if(str=="" ||str==null)
	return false;
	
	var Strs= str.split("][");
	var len=Strs.length;
	
	if(len!=4)
	return false;
	
	
	Strs[0]=Strs[0].replace("[","");
	Strs[3]=Strs[3].replace("]","");
	var UCs1=Strs[0].split("-");
	var UCs2=Strs[1].split("-");
	var UCs3=Strs[2].split("-");
	var UCs4=Strs[3].split("-");
	
	if(!(UCs1[0]==UCs2[0]&&UCs2[0]==UCs3[0]&&UCs3[0]==UCs4[0]&&UCs4[0]==UCs1[0]))
	return false;
	return true;
	
}
//单牌
function IsDanPai(str)
{
	if(str=="" ||str==null)
	return false;
	
	var Strs= str.split("][");
	var len=Strs.length;
	if(len!=1)
	return false;
	return true;
	
}
//对牌
function IsDuiPai(str)
{
	if(str=="" ||str==null)
	return false;
	
	var Strs= str.split("][");
	var len=Strs.length;
	if(len!=2)
	return false;

	
	Strs[0]=Strs[0].replace("[","");
	Strs[1]=Strs[1].replace("]","");
	var UCs1=Strs[0].split("-");
	var UCs2=Strs[1].split("-");
	if(UCs1[0]!=UCs2[0])
	return false;
	return true;
	
}
//三张牌
function IsSanZhang(str)
{
	if(str=="" ||str==null)
	return false;
	
	var Strs= str.split("][");
	var len=Strs.length;
	if(len!=3)
	return false;

	
	Strs[0]=Strs[0].replace("[","");
	Strs[2]=Strs[2].replace("]","");
	var UCs1=Strs[0].split("-");
	var UCs2=Strs[1].split("-");
	var UCs3=Strs[2].split("-");
	if(UCs1[0]!=UCs2[0]||UCs2[0]!=UCs3[0])
	return false;
	return true;
	
}
//三带一
function IsSanDaiOne(str)
{
	if(str=="" ||str==null)
	return false;
	
	var Strs= str.split("][");
	var len=Strs.length;
	if(len!=4)
	return false;

	
	Strs[0]=Strs[0].replace("[","");
	Strs[3]=Strs[3].replace("]","");
	var UCs1=Strs[0].split("-");
	var UCs2=Strs[1].split("-");
	var UCs3=Strs[2].split("-");
	var UCs4=Strs[3].split("-");
	var a=UCs1[0];
	var b=UCs2[0];
	var c=UCs3[0];
	var d=UCs4[0];
	//alert(a+"|"+b+"|"+c+"|"+d);
	
	if((a!=b&&b==c&&c==d&&d!=a)||(a!=b&&b!=c&&c==d&&d==a)||(a==b&&b!=c&&c!=d&&d==a)||(a==b&&b==c&&c!=d&&d!=a))
	
	return true;
	return false;
	
}
//三带对
function IsSanDaidui(str)
{
	if(str=="" ||str==null)
	return false;
	
	var Strs= str.split("][");
	var len=Strs.length;
	if(len!=5)
	return false;

	
	Strs[0]=Strs[0].replace("[","");
	Strs[4]=Strs[4].replace("]","");
	var UCs1=Strs[0].split("-");
	var UCs2=Strs[1].split("-");
	var UCs3=Strs[2].split("-");
	var UCs4=Strs[3].split("-");
	var UCs5=Strs[4].split("-");
	var a=UCs1[0];
	var b=UCs2[0];
	var c=UCs3[0];
	var d=UCs4[0];
	var e=UCs5[0];
	//alert(a+"|"+b+"|"+c+"|"+d);
	if(a==b)
	{
		if(c==d&&d==e&&e!=a)
		return true;
	}
	if(a==c)
	{
		if(b==d&&d==e&&e!=a)
		return true;
	}
	if(a==d)
	{
		if(b==c&&c==e&&e!=a)
		return true;
	}
	if(a==e)
	{
		if(b==c&&c==d&&d!=a)
		return true;
	}
	
	if(b==c)
	{
		if(a==d&&d==e&&e!=b)
		return true;
	}
	if(b==d)
	{
		if(a==c&&c==e&&e!=b)
		return true;
	}
	if(b==e)
	{
		if(a==c&&c==d&&d!=b)
		return true;
	}
	if(c==d)
	{
		if(a==b&&b==e&&e!=c)
		return true;
	}
	if(c==e)
	{
		if(a==b&&b==d&&d!=c)
		return true;
	}
	if(d==e)
	{
		if(a==b&&b==c&&c!=d)
		return true;
	}
	//alert (d+""+(d-1))
	return false;
	
}
//单顺
function IsDanSun(str)
{
	if(str=="" ||str==null)
	return false;
	
	var Strs= str.split("][");
	var len=Strs.length;
	if(len<5)
	return false;
	
	Strs[0]=Strs[0].replace("[","");
	Strs[len-1]=Strs[len-1].replace("]","");
	
	var UCs=new Array();
	for(var i=0;i<len;i++)
	{
	var k=Strs[i].split("-");
	UCs[i]=k[0];
	if(k[0]==2||k[0]==14)
	return false;
	}
	UCs=PXzhengli(UCs);//整理一下循序
	if(UCs[0]!=1)
	{
		for(var i=0;i<len-1;i++)
		{
			
			if(UCs[i]-UCs[i+1]!=1)
			return false;
		}
	}
	else
	{
		if(UCs[1]!=13)
		return false;
		for(var i=1;i<len-1;i++)
		{
			if(UCs[i]-UCs[i+1]!=1)
			return false;
		}

	}
	return true;
	
}
//双顺
function IsShuanSun(str)
{
	if(str=="" ||str==null)
	return false;
	
	var Strs= str.split("][");
	var len=Strs.length;
	if(len<6)
	return false;
	if(len%2!=0)
	return false;
	
	Strs[0]=Strs[0].replace("[","");
	Strs[len-1]=Strs[len-1].replace("]","");
	
	var UCs=new Array();
	for(var i=0;i<len;i++)
	{
	var k=Strs[i].split("-");
	UCs[i]=k[0];
	if(k[0]==2||k[0]==14)
	return false;
	}
	UCs=PXzhengli(UCs);//整理一下循序
	if(UCs[0]!=1&&UCs[1]!=1)//当带头的不是A
	{
		
		for(var i=0;i<len-1;i++)
		{
			if(i%2==1)
			{
				if(UCs[i]-UCs[i+1]!=1)
				return false;
			}
			else
			{
				if(UCs[i]!=UCs[i+1])
				return false;
			}
			
		}
	}
	else
	{
		if(UCs[1]!=1)
		return false;
		if(UCs[2]!=13)
		return false;
		
		for(var i=2;i<len-1;i++)
		{
			if(i%2==1)
			{
				if(UCs[i]-UCs[i+1]!=1)
				return false;
			}
			else
			{
				if(UCs[i]!=UCs[i+1])
				return false;
			}
			
		}

	}
	return true;
	
}
//三顺
function IsSanSun(str)
{
	if(str=="" ||str==null)
	return false;
	
	var Strs= str.split("][");
	var len=Strs.length;
	
	if(len<6)
	return false;
	if(len%3!=0)
	return false;
	
	Strs[0]=Strs[0].replace("[","");
	Strs[len-1]=Strs[len-1].replace("]","");
	
	var UCs=new Array();
	for(var i=0;i<len;i++)
	{
	var k=Strs[i].split("-");
	UCs[i]=k[0];
	if(k[0]==2||k[0]==14)
	return false;
	}
	
	UCs=PXzhengli(UCs);//整理一下循序

	if(UCs[0]!=1&&UCs[1]!=1&&UCs[2]!=1)//当带头的不是A
	{
		
		for(var i=0;i<len-1;i++)
		{
			if(i%3==2)
			{
				//alert(UCs[i])
				if(UCs[i]-UCs[i+1]!=1)
				return false;
			}
			else
			{
				if(UCs[i]!=UCs[i+1])
				return false;
			}
			
		}
	}
	else
	{
		
			
			if(UCs[1]!=1)
			return false;
			if(UCs[2]!=1)
			return false;
			if(UCs[3]!=13)
			return false;
			
			for(var i=3;i<len-1;i++)
		    {
				if(i%3==2)
				{   
					if(UCs[i]-UCs[i+1]!=1)
					return false;
				}
				else
				{
					if(UCs[i]!=UCs[i+1])
					return false;
				}
			
		    }
		

	}
	return true;
}
//飞机带单
function IsFeiJiOne(str)
{
	if(str=="" ||str==null)
	return false;
	
	var Strs= str.split("][");
	var len=Strs.length;
	
	if(len<8)
	return false;
	if(len%4!=0)
	return false;
	
	Strs[0]=Strs[0].replace("[","");
	Strs[len-1]=Strs[len-1].replace("]","");
	
	var UCsf=new Array();
	for(var i=0;i<len;i++)
	{
	var k=Strs[i].split("-");
	UCsf[i]=k[0];
	}
	
	UCsf=PXzhengli(UCsf,1);//整理一下循序
    
//al(UCsf)
	
	
	var slen=UCsf.length
	var sd=slen/4;
	slen=slen-sd;

	var UCs=new Array();
	
	for(var i=0;i<slen;i++)
	{
		
	UCs[i]=UCsf[i];
	if(UCs[i]==2||UCs[i]==14)
	return false;
	}


	if(UCs[0]!=1&&UCs[1]!=1&&UCs[2]!=1)//当带头的不是A
	{
		
		for(var i=0;i<slen-1;i++)
		{
			if(i%3==2)
			{
				//alert(UCs[i])
				if(UCs[i]-UCs[i+1]!=1)
				return false;
			}
			else
			{
				if(UCs[i]!=UCs[i+1])
				return false;
			}
			
		}
	}
	else
	{
		
			
			if(UCs[1]!=1)
			return false;
			if(UCs[2]!=1)
			return false;
			if(UCs[3]!=13)
			return false;
				
			for(var i=3;i<slen-1;i++)
		    {
				if(i%3==2)
				{   
					if(UCs[i]-UCs[i+1]!=1)
					return false;
				}
				else
				{
					if(UCs[i]!=UCs[i+1])
					return false;
				}
			
		    }
		//al(UCs)

	}
	return true;
}
//飞机带双
function IsFeiJiShuang(str)
{
	if(str=="" ||str==null)
	return false;
	
	var Strs= str.split("][");
	var len=Strs.length;
	
	if(len<10)
	return false;
	if(len%5!=0)
	return false;
	
	Strs[0]=Strs[0].replace("[","");
	Strs[len-1]=Strs[len-1].replace("]","");
	
	var UCsf=new Array();
	for(var i=0;i<len;i++)
	{
	var k=Strs[i].split("-");
	UCsf[i]=k[0];
	}
	
	UCsf=PXzhengli(UCsf,1);//整理一下循序
    
//al(UCsf)
	
	
	var slen=UCsf.length
	var sd=slen/5;
	slen=slen-(sd*2);

	var UCs=new Array();
	var UCsH=new Array();
	
	for(var i=0;i<slen;i++)
	{
		
	UCs[i]=UCsf[i];
	if(UCs[i]==2||UCs[i]==14)
	return false;
	}
	
	for(var i=slen;i<len;i++)
	{
		
	UCsH[i-slen]=UCsf[i];
	}
//al(UCsH)

	if(UCs[0]!=1&&UCs[1]!=1&&UCs[2]!=1)//当带头的不是A
	{
		
		for(var i=0;i<slen-1;i++)
		{
			if(i%3==2)
			{
				//alert(UCs[i])
				if(UCs[i]-UCs[i+1]!=1)
				return false;
			}
			else
			{
				if(UCs[i]!=UCs[i+1])
				return false;
			}
			
		}
	}
	else
	{
		
			
			if(UCs[1]!=1)
			return false;
			if(UCs[2]!=1)
			return false;
			if(UCs[3]!=13)
			return false;
				
			for(var i=3;i<slen-1;i++)
		    {
				if(i%3==2)
				{   
					if(UCs[i]-UCs[i+1]!=1)
					return false;
				}
				else
				{
					if(UCs[i]!=UCs[i+1])
					return false;
				}
			
		    }
		//al(UCs)

	}
	
	for(var i=0;i<UCsH.length-1;i++)
		{
			if(i%2==0)
			{
			
				if(UCsH[i]!=UCsH[i+1])
				return false;
			}
			
		}
	
	
	return true;
}
//四带2单
function IsFordTowD(str)
{
	if(str=="" ||str==null)
	return false;
	
	var Strs= str.split("][");
	var len=Strs.length;
	
	if(len!=6)
	return false;
	
	Strs[0]=Strs[0].replace("[","");
	Strs[len-1]=Strs[len-1].replace("]","");
	
	var UCsf=new Array();
	for(var i=0;i<len;i++)
	{
	var k=Strs[i].split("-");
	UCsf[i]=k[0];
	}
	
	UCsf=PXzhengli(UCsf,1);//整理一下循序
	var UCs=new Array();
	for(var i=0;i<4;i++)
	{
	UCs[i]=UCsf[i];
	}
	if(!(UCs[0]==UCs[1]&&UCs[1]==UCs[2]&&UCs[2]==UCs[3]&&UCs[3]==UCs[1]))
	return false;
	return true;
	
}
//四带2双
function IsFordTowS(str)
{
	if(str=="" ||str==null)
	return false;
	
	var Strs= str.split("][");
	var len=Strs.length;
	
	if(len!=8)
	return false;
	
	Strs[0]=Strs[0].replace("[","");
	Strs[len-1]=Strs[len-1].replace("]","");
	
	var UCsf=new Array();
	for(var i=0;i<len;i++)
	{
	var k=Strs[i].split("-");
	UCsf[i]=k[0];
	}
	
	UCsf=PXzhengli(UCsf,1);//整理一下循序
	var UCs=new Array();
	for(var i=0;i<8;i++)
	{
	UCs[i]=UCsf[i];
	}
	if(!(UCs[0]==UCs[1]&&UCs[1]==UCs[2]&&UCs[2]==UCs[3]&&UCs[3]==UCs[1]))
	return false;
	if(!(UCs[4]==UCs[5]&&UCs[5]!=UCs[6]&&UCs[6]==UCs[7]))
	return false;
	return true;
}

//按大小排列顺
function PXzhengli(str,type)
{
	
	if(type==null)
	{
		var a=new Array();
		for(var j=0;j<str.length;j++)
			{
			if(str[j]==14)
			a[a.length]=str[j];
			}
		
		for(var i=2;i>0;i--)
		{
			for(var j=0;j<str.length;j++)
			{
			if(str[j]==i)
			a[a.length]=str[j];
			}
		}
		
		for(var i=13;i>2;i--)
		{
			for(var j=0;j<str.length;j++)
			{
			if(str[j]==i)
			a[a.length]=str[j];
			}
		}
		return a;
	}
	if(type==1)
	{
		var a=new Array();
		var bstr=PXzhengli(str);

        var b3=new Array();//重复4张的牌
		var b2=new Array();//重复3张的牌
		var b =new Array();//重复2张的牌
		
		//取得重复的数字
		for(var i=0;i<bstr.length;i++)
		{
	         var rr=0;
			for(var j=i+1;j<bstr.length;j++)
			{
				if(bstr[i]==bstr[j])
				{    rr++;
					 if(cksz(bstr[i],b))
					 b[b.length]=bstr[i];
					
					 if(rr==2)
					 {
					 if(cksz(bstr[i],b2))
					 b2[b2.length]=bstr[i];
					 }
					 if(rr==3)
					 {
					 if(cksz(bstr[i],b2))
					 b3[b3.length]=bstr[i];
					 }
				}
			}
			
		}
		
		var b4 =b;
		b=[];	
		for(var i=0;i<b4.length;i++)
		{
			if(cksz(b4[i],b2))
			b[b.length]=b4[i];
		}	
		b4 =b2;
		b2=[];
		for(var i=0;i<b4.length;i++)
		{
			if(cksz(b4[i],b3))
			b2[b2.length]=b4[i];
		}

		
		
		//获得重复的数字放到数组 先取得重复4张的数据
		for(var i=0;i<b3.length;i++)
		{
			for(var j=0;j<bstr.length;j++)
			{
				if(b3[i]==bstr[j])
				{  
				 a[a.length]=bstr[j];
				 bstr[j]=0;
				}
			}
			
		}
		// 先取得重复3张的数据
		for(var i=0;i<b2.length;i++)
		{
			for(var j=0;j<bstr.length;j++)
			{
				if(b2[i]==bstr[j])
				{  
				 a[a.length]=bstr[j];
				 bstr[j]=0;
				}
			}
			
		}
		// 先取得重复2张的数据
		for(var i=0;i<b.length;i++)
		{
			for(var j=0;j<bstr.length;j++)
			{
				if(b[i]==bstr[j])
				{  
				 a[a.length]=bstr[j];
				 bstr[j]=0;
				}
			}
			
		}
		// 先取得单张的数据
		for(var k=0;k<bstr.length;k++)
			{
				
				if(bstr[k]!=0)
				a[a.length]=bstr[k];
				
			}

		return a;
		
	}
	
	
}
//
function cksz(a,arr)
{
	for(var l=0;l<arr.length;l++)
	{
		 if(a==arr[l])
		 {
		 return false;
		 }
		 
	 }
	  return true;
}
function g(str)
{
	if(IsFordTowD(str))
	alert("1");
	else
	alert("0");
}
function al(a)
{
	for(var i=0;i<a.length;i++)
	    alert(a[i])
}
function GetPaxing(str)
{
	if(IsHuoJian(str))
	return "火箭";
	if(IsZhaDan(str))
	return "炸弹";
	if(IsDanPai(str))
	return "单牌";
	if(IsDuiPai(str))
	return "对牌";
	if(IsSanZhang(str))
	return "三张牌";
	if(IsSanDaiOne(str))
	return "三带一";
	if(IsSanDaidui(str))
	return "三带对";
	if(IsDanSun(str))
	return "单顺";
	if(IsShuanSun(str))
	return "双顺";
	if(IsSanSun(str))
	return "三顺";
	if(IsFeiJiOne(str))
	return "飞机带单";
	if(IsFeiJiShuang(str))
	return "飞机带双";
	if(IsFordTowD(str))
	return "四带2单";
	if(IsFordTowS(str))
	return "四带2双";
	return "";
}
function GetPaxingNb(str)
{
	if(IsHuoJian(str))
	return 1;
	if(IsZhaDan(str))
	return 2;
	if(IsDanPai(str))
	return 3;
	if(IsDuiPai(str))
	return 4;
	if(IsSanZhang(str))
	return 5;
	if(IsSanDaiOne(str))
	return 6;
	if(IsSanDaidui(str))
	return 7;
	if(IsDanSun(str))
	return 8;
	if(IsShuanSun(str))
	return 9;
	if(IsSanSun(str))
	return 10;
	if(IsFeiJiOne(str))
	return 11;
	if(IsFeiJiShuang(str))
	return 12;
	if(IsFordTowD(str))
	return 13;
	if(IsFordTowS(str))
	return 14;
	return 0;
}

function GetUcsf(Strs)
{
	var len=Strs.length;
	
	var UCsf=new Array();
	for(var i=0;i<len;i++)
	{
	var k=Strs[i].split("-");
	UCsf[i]=k[0];
	}
	return UCsf;
}

function IsMaxPaxing(Ystr,Bstr)
{
	if(Bstr=="#")
	return true;
	if(GetPaxingNb(Ystr)==0)
	return false;
	if(Ystr=="" || Ystr=="-")
	return false;
	if(Bstr=="" || Bstr=="-")
	return true;
	
	if(GetPaxingNb(Ystr)==1)//如果出牌是火箭
	return true;
	if(GetPaxingNb(Bstr)==1)//如果对方是火箭
	return false;
	
	var Ytrs=StrToArray(Ystr)
	var Ylen=Ytrs.length;
	var YCsf=GetUcsf(Ytrs);
	YCsf=PXzhengli(YCsf,1);
	var YMax=parseInt(YCsf[0]);
	
	var Btrs=StrToArray(Bstr)
	var Blen=Btrs.length;
	var BCsf=GetUcsf(Btrs);
	BCsf=PXzhengli(BCsf,1);
	var BMax=parseInt(BCsf[0]);
	if (BMax<=2)
	BMax=BMax+15;
	if (YMax<=2)
	YMax=YMax+15;
	
	if (BMax==14)
	BMax=BMax+5;
	if (YMax==14)
	YMax=YMax+5;
	
	if(Ystr=="[14-5]")
	{
	 YMax=YMax+1;
	}
	else
	{
		YMax=YMax+2;
	}
	if(Bstr=="[14-5]")
	{
	 BMax=BMax+1;
	}
	else
	{
		BMax=BMax+2;
	}
	
	
	
	//al(BCsf)
	//alert(BMax)
	
	//根据对方的牌做比较
	if(GetPaxingNb(Bstr)==2)//如果对方是炸弹
	{
		if(GetPaxingNb(Ystr)>2)//如果手头的牌是炸弹以下
		return false;
		if(GetPaxingNb(Ystr)==2)//如果手头的牌也是炸弹
		{
			if(YMax>BMax)
			return true;
			else
			return false;
		}
	}
	//如果自己是炸弹
	if(GetPaxingNb(Ystr)==2)//如果对方是炸弹
	{
		if(GetPaxingNb(Bstr)>2)//如果手头的牌是炸弹以下
		return true;
	}
	//---处理除了火箭和炸弹以外的牌------------------
	
	if(Ylen!=Blen)
	return false;
	if(GetPaxingNb(Ystr)!=GetPaxingNb(Bstr))
	return false;
	//alert(YMax)
	//alert(BMax)
	if(YMax>BMax)
	return true;
	return false;
	
	
	
}

//alert(IsMaxPaxing("","[12-3][11-3][12-3][12-3]"))


