package com.wolf.server;
import java.util.ArrayList;
import com.wolf.common.Constant;
import com.wolf.entity.MajiangButton;
public class MajiangService
{
private final static int NUMBER = 136;
/**
* 拿到一副新牌
* @return HashSet<MajiangButton> [返回类型说明]
* @exception throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
*/
public static ArrayList<MajiangButton> getMajiang()
{
ArrayList<MajiangButton> majiangList = new ArrayList<MajiangButton>(
NUMBER);
//初始化“萬、筒、索”字
for (int i = 1; i < 10; i++)
{
for (int j = 0; j < 4; j++)
{
MajiangButton majiang_t = new MajiangButton();
majiang_t.setValue(i + "22");
majiang_t.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_t.getValue()
+ Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_b = new MajiangButton();
majiang_b.setValue(i + "1");
majiang_b.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_b.getValue()
+ Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_w = new MajiangButton();
majiang_w.setValue(i + "333");
majiang_w.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_w.getValue()
+ Constant.MajiangIcon.ICOSTRINGEND);
majiangList.add(majiang_t);
majiangList.add(majiang_b);
majiangList.add(majiang_w);
}
}
//初始化“风字,箭字”
for (int i = 0; i < 4; i++)
{
MajiangButton majiang_e = new MajiangButton();
majiang_e.setValue("e");
majiang_e.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_e.getValue() + Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_s = new MajiangButton();
majiang_s.setValue("s");
majiang_s.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_s.getValue() + Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_w = new MajiangButton();
majiang_w.setValue("w");
majiang_w.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_w.getValue() + Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_n = new MajiangButton();
majiang_n.setValue("n");
majiang_n.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_n.getValue() + Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_zh = new MajiangButton();
majiang_zh.setValue("zh");
majiang_zh.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_zh.getValue() + Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_f = new MajiangButton();
majiang_f.setValue("f");
majiang_f.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_f.getValue() + Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_b = new MajiangButton();
majiang_b.setValue("b");
majiang_b.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_b.getValue() + Constant.MajiangIcon.ICOSTRINGEND);
majiangList.add(majiang_e);
majiangList.add(majiang_s);
majiangList.add(majiang_w);
majiangList.add(majiang_n);
majiangList.add(majiang_zh);
majiangList.add(majiang_f);
majiangList.add(majiang_b);
}
return majiangList;
}
/**
* 判断手牌中哪张牌需要出
* @param list
* @return [参数说明]
*
* @return MajiangButton [返回类型说明]
* @exception throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
*/
public static MajiangButton outMajiang(ArrayList<MajiangButton> list)
{
MajiangButton majiang = null;
MajiangButton majiangtmp = null;
MajiangButton majiangtmp1 = null;
MajiangButton majiangtmp2 = null;
MajiangButton majiang1 = null;
MajiangButton majiang2 = null;
String strvalue1 = null;
String strvalue2 = null;
int intvalue1 = 0;
int intvalue2 = 0;
int index = 0;
for (int i = list.size() - 1; i >= 0; i--)
{
majiang1 = list.get(i);
for (int j = i - 1; j >= 0; j--)
{
majiang2 = list.get(j);
strvalue1 = majiang1.getValue();
strvalue2 = majiang2.getValue();
try
{
intvalue1 = Integer.parseInt(strvalue1.substring(0, 1));
}
catch (Exception e)
{
intvalue1 = -1;
}
try
{
intvalue2 = Integer.parseInt(strvalue2.substring(0, 1));
}
catch (Exception e)
{
intvalue2 = -1;
}
if (strvalue1.equals(strvalue2))
{
index = j;
majiangtmp2 = majiang1;
//j = list.size();
continue;
}
else if (intvalue2 + 1 == intvalue1)
{
index = j;
majiangtmp1 = majiang1;
//j = list.size();
continue;
}
else if (intvalue2 + 2 == intvalue1)
{
majiangtmp = majiang2;
index = j;
//j = list.size();
continue;
}
else
{
majiang = majiang1;
index = j;
break;
}
}
if (null != majiang)
{
break;
}
}
list.remove(index);
if (null == majiang && null==majiangtmp && null == majiangtmp1)
{
return majiangtmp2;
}
else if (null == majiang && null==majiangtmp)
{
return majiangtmp1;
}
else if(null == majiang)
{
return majiangtmp;
}
else
{
return majiang;
}
}
/**
* main测试方法
* @return void [返回类型说明]
* @exception throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
*/
public static void main(String[] args)
{
/*ArrayList<MajiangButton> majiang = getMajiang();
for (MajiangButton majiangButton : majiang)
{
System.out.print(majiangButton.getValue() + " ");
}
System.out.println("\n");
Collections.shuffle(majiang);
for (MajiangButton majiangButton : majiang)
{
System.out.print(majiangButton.getValue() + " ");
}*/
//int dianshu = new Random().nextInt(12) + 1;
System.out.println("122".compareTo("21"));
}
}
import java.util.ArrayList;
import com.wolf.common.Constant;
import com.wolf.entity.MajiangButton;
public class MajiangService
{
private final static int NUMBER = 136;
/**
* 拿到一副新牌
* @return HashSet<MajiangButton> [返回类型说明]
* @exception throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
*/
public static ArrayList<MajiangButton> getMajiang()
{
ArrayList<MajiangButton> majiangList = new ArrayList<MajiangButton>(
NUMBER);
//初始化“萬、筒、索”字
for (int i = 1; i < 10; i++)
{
for (int j = 0; j < 4; j++)
{
MajiangButton majiang_t = new MajiangButton();
majiang_t.setValue(i + "22");
majiang_t.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_t.getValue()
+ Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_b = new MajiangButton();
majiang_b.setValue(i + "1");
majiang_b.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_b.getValue()
+ Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_w = new MajiangButton();
majiang_w.setValue(i + "333");
majiang_w.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_w.getValue()
+ Constant.MajiangIcon.ICOSTRINGEND);
majiangList.add(majiang_t);
majiangList.add(majiang_b);
majiangList.add(majiang_w);
}
}
//初始化“风字,箭字”
for (int i = 0; i < 4; i++)
{
MajiangButton majiang_e = new MajiangButton();
majiang_e.setValue("e");
majiang_e.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_e.getValue() + Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_s = new MajiangButton();
majiang_s.setValue("s");
majiang_s.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_s.getValue() + Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_w = new MajiangButton();
majiang_w.setValue("w");
majiang_w.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_w.getValue() + Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_n = new MajiangButton();
majiang_n.setValue("n");
majiang_n.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_n.getValue() + Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_zh = new MajiangButton();
majiang_zh.setValue("zh");
majiang_zh.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_zh.getValue() + Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_f = new MajiangButton();
majiang_f.setValue("f");
majiang_f.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_f.getValue() + Constant.MajiangIcon.ICOSTRINGEND);
MajiangButton majiang_b = new MajiangButton();
majiang_b.setValue("b");
majiang_b.setIcon(Constant.MajiangIcon.ICOSTRING
+ majiang_b.getValue() + Constant.MajiangIcon.ICOSTRINGEND);
majiangList.add(majiang_e);
majiangList.add(majiang_s);
majiangList.add(majiang_w);
majiangList.add(majiang_n);
majiangList.add(majiang_zh);
majiangList.add(majiang_f);
majiangList.add(majiang_b);
}
return majiangList;
}
/**
* 判断手牌中哪张牌需要出
* @param list
* @return [参数说明]
*
* @return MajiangButton [返回类型说明]
* @exception throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
*/
public static MajiangButton outMajiang(ArrayList<MajiangButton> list)
{
MajiangButton majiang = null;
MajiangButton majiangtmp = null;
MajiangButton majiangtmp1 = null;
MajiangButton majiangtmp2 = null;
MajiangButton majiang1 = null;
MajiangButton majiang2 = null;
String strvalue1 = null;
String strvalue2 = null;
int intvalue1 = 0;
int intvalue2 = 0;
int index = 0;
for (int i = list.size() - 1; i >= 0; i--)
{
majiang1 = list.get(i);
for (int j = i - 1; j >= 0; j--)
{
majiang2 = list.get(j);
strvalue1 = majiang1.getValue();
strvalue2 = majiang2.getValue();
try
{
intvalue1 = Integer.parseInt(strvalue1.substring(0, 1));
}
catch (Exception e)
{
intvalue1 = -1;
}
try
{
intvalue2 = Integer.parseInt(strvalue2.substring(0, 1));
}
catch (Exception e)
{
intvalue2 = -1;
}
if (strvalue1.equals(strvalue2))
{
index = j;
majiangtmp2 = majiang1;
//j = list.size();
continue;
}
else if (intvalue2 + 1 == intvalue1)
{
index = j;
majiangtmp1 = majiang1;
//j = list.size();
continue;
}
else if (intvalue2 + 2 == intvalue1)
{
majiangtmp = majiang2;
index = j;
//j = list.size();
continue;
}
else
{
majiang = majiang1;
index = j;
break;
}
}
if (null != majiang)
{
break;
}
}
list.remove(index);
if (null == majiang && null==majiangtmp && null == majiangtmp1)
{
return majiangtmp2;
}
else if (null == majiang && null==majiangtmp)
{
return majiangtmp1;
}
else if(null == majiang)
{
return majiangtmp;
}
else
{
return majiang;
}
}
/**
* main测试方法
* @return void [返回类型说明]
* @exception throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
*/
public static void main(String[] args)
{
/*ArrayList<MajiangButton> majiang = getMajiang();
for (MajiangButton majiangButton : majiang)
{
System.out.print(majiangButton.getValue() + " ");
}
System.out.println("\n");
Collections.shuffle(majiang);
for (MajiangButton majiangButton : majiang)
{
System.out.print(majiangButton.getValue() + " ");
}*/
//int dianshu = new Random().nextInt(12) + 1;
System.out.println("122".compareTo("21"));
}
}