public TsuisoResolver(MentsuComp comp) { janto = comp.getJanto(); shuntsuList = comp.getShuntsuList(); toitsuList = comp.getToitsuList(); kotsuList = comp.getKotsuKantsu(); }
public PinfuResolver(MentsuComp comp, GeneralSituation generalSituation, PersonalSituation personalSituation) : base(generalSituation, personalSituation) { janto = comp.getJanto(); shuntsuCount = comp.getShuntsuCount(); shuntsuList = comp.getShuntsuList(); last = comp.getLast(); }
/** * @return 役満が見つかったか */ private bool findYakuman() { //役満をストックしておき、見つかったら先にこちらに保存する List <Yakuman> yakumanStock = new List <Yakuman>(4); //それぞれの面子の完成形で判定する foreach (MentsuComp comp in hands.getMentsuCompSet()) { HashSet <YakumanResolver> yakumanResolverSet = Mahjong4jYakuConfig.getYakumanResolverSet(comp, generalSituation, personalSituation); foreach (YakumanResolver resolver in yakumanResolverSet) { if (resolver.isMatch()) { yakumanStock.Add(resolver.getYakuman()); } } //ストックと保存する役満リストと比較し大きい方を保存する if (yakumanList.Count() < yakumanStock.Count()) { yakumanList = yakumanStock; this.comp = comp; } } return(yakumanList.Count() > 0); }
private void findNormalYaku() { //それぞれの面子の完成形で判定する foreach (MentsuComp comp in hands.getMentsuCompSet()) { //役をストックしておく List <NormalYaku> yakuStock = new List <NormalYaku>(7); HashSet <NormalYakuResolver> resolverSet = Mahjong4jYakuConfig.getNormalYakuResolverSet(comp, generalSituation, personalSituation); foreach (NormalYakuResolver resolver in resolverSet) { if (resolver.isMatch()) { yakuStock.Add(resolver.getNormalYaku()); } } int hanSum = calcHanSum(yakuStock); if (hanSum > this.han) { han = hanSum; normalYakuList = yakuStock; this.comp = comp; } } if (han > 0) { calcDora(hands.getHandsComp(), generalSituation, normalYakuList.Contains(NormalYaku.REACH)); } calcScore(); }
/** * 待ちの種類による可符 * * @param comp * @param last * @return */ private int calcFuByWait(MentsuComp comp, Tile last) { if (comp.isKanchan(last) || comp.isPenchan(last) || comp.isTanki(last)) { return(2); } return(0); }
public static HashSet <YakumanResolver> getYakumanResolverSet(MentsuComp comp, GeneralSituation generalSituation, PersonalSituation personalSituation) { HashSet <YakumanResolver> yakumanResolverSet = new HashSet <YakumanResolver>(); yakumanResolverSet.Add(new ChinrohtohResolver(comp)); yakumanResolverSet.Add(new ChurenpohtohResolver(comp)); yakumanResolverSet.Add(new DaisangenResolver(comp)); yakumanResolverSet.Add(new DaisushiResolver(comp)); yakumanResolverSet.Add(new RyuisoResolver(comp)); yakumanResolverSet.Add(new ShosushiResolver(comp)); yakumanResolverSet.Add(new SuankoResolver(comp)); yakumanResolverSet.Add(new SukantsuResolver(comp)); yakumanResolverSet.Add(new TsuisoResolver(comp)); yakumanResolverSet.Add(new RenhoResolver(generalSituation, personalSituation)); yakumanResolverSet.Add(new ChihoResolver(generalSituation, personalSituation)); yakumanResolverSet.Add(new TenhoResolver(generalSituation, personalSituation)); return(yakumanResolverSet); }
public static HashSet <NormalYakuResolver> getNormalYakuResolverSet(MentsuComp comp, GeneralSituation generalSituation, PersonalSituation personalSituation) { HashSet <NormalYakuResolver> normalYakuResolverSet = new HashSet <NormalYakuResolver>(); normalYakuResolverSet.Add(new ChantaResolver(comp)); normalYakuResolverSet.Add(new ChunResolver(comp)); normalYakuResolverSet.Add(new ChinitsuResolver(comp)); normalYakuResolverSet.Add(new ChitoitsuResolver(comp)); normalYakuResolverSet.Add(new HakuResolver(comp)); normalYakuResolverSet.Add(new HatsuResolver(comp)); normalYakuResolverSet.Add(new HonitsuResolver(comp)); normalYakuResolverSet.Add(new HonrohtohResolver(comp)); normalYakuResolverSet.Add(new IkkitsukanResolver(comp)); normalYakuResolverSet.Add(new IpeikoResolver(comp)); normalYakuResolverSet.Add(new JunchanResolver(comp)); normalYakuResolverSet.Add(new RyanpeikoResolver(comp)); normalYakuResolverSet.Add(new SanankoResolver(comp)); normalYakuResolverSet.Add(new SankantsuResolver(comp)); normalYakuResolverSet.Add(new SanshokudohjunResolver(comp)); normalYakuResolverSet.Add(new SanshokudohkoResolver(comp)); normalYakuResolverSet.Add(new ShosangenResolver(comp)); normalYakuResolverSet.Add(new TanyaoResolver(comp)); normalYakuResolverSet.Add(new ToitoihoResolver(comp)); normalYakuResolverSet.Add(new PinfuResolver(comp, generalSituation, personalSituation)); normalYakuResolverSet.Add(new TsumoResolver(comp, generalSituation, personalSituation)); normalYakuResolverSet.Add(new JikazeResolver(comp, generalSituation, personalSituation)); normalYakuResolverSet.Add(new BakazeResolver(comp, generalSituation, personalSituation)); normalYakuResolverSet.Add(new IppatsuResolver(generalSituation, personalSituation)); normalYakuResolverSet.Add(new HouteiResolver(generalSituation, personalSituation)); normalYakuResolverSet.Add(new HaiteiResolver(generalSituation, personalSituation)); normalYakuResolverSet.Add(new ReachResolver(generalSituation, personalSituation)); normalYakuResolverSet.Add(new RinshankaihohResolver(comp, personalSituation)); normalYakuResolverSet.Add(new ChankanResolver(generalSituation, personalSituation)); normalYakuResolverSet.Add(new DoubleReachResolver(generalSituation, personalSituation)); return(normalYakuResolverSet); }
public RyuisoResolver(MentsuComp hands) { toitsuList = hands.getToitsuList(); shuntsuList = hands.getShuntsuList(); kotsuList = hands.getKotsuKantsu(); }
public HonrohtohResolver(MentsuComp comp) { shuntsuList = comp.getShuntsuList(); toitsuList = comp.getToitsuList(); kotsuList = comp.getKotsuKantsu(); }
public DaisangenResolver(MentsuComp comp) { kotsuList = comp.getKotsuKantsu(); }
public SanankoResolver(MentsuComp comp) { kotsuList = comp.getKotsuKantsu(); kotsuCount = comp.getKotsuCount() + comp.getKantsuCount(); }
public JikazeResolver(MentsuComp comp, GeneralSituation generalSituation, PersonalSituation personalSituation) : base(generalSituation, personalSituation) { this.comp = comp; }
public HonitsuResolver(MentsuComp comp) { allMentsu = comp.getAllMentsu(); }
public SankantsuResolver(MentsuComp comp) { kantsuCount = comp.getKantsuCount(); }
public ChantaResolver(MentsuComp comp) { this.comp = comp; }
public TanyaoResolver(MentsuComp comp) { allMentsu = comp.getAllMentsu(); }
public JunchanResolver(MentsuComp comp) { janto = comp.getJanto(); shuntsuList = comp.getShuntsuList(); kotsuList = comp.getKotsuKantsu(); }
public SanshokudohjunResolver(MentsuComp comp) { shuntsuCount = comp.getShuntsuCount(); shuntsuList = comp.getShuntsuList(); }
public ChinitsuResolver(MentsuComp comp) { this.comp = comp; }
public TsumoResolver(MentsuComp comp, GeneralSituation generalSituation, PersonalSituation personalSituation) { this.comp = comp; this.generalSituation = generalSituation; this.personalSituation = personalSituation; }
public IkkitsukanResolver(MentsuComp comp) { shuntsuList = comp.getShuntsuList(); shuntsuCount = comp.getShuntsuCount(); }
public ChinrohtohResolver(MentsuComp comp) { totalKotsuKantsu = comp.getKotsuCount() + comp.getKantsuCount(); kotsuList = comp.getKotsuKantsu(); janto = comp.getJanto(); }
public RyanpeikoResolver(MentsuComp comp) { shuntsuList = comp.getShuntsuList(); }
public ChurenpohtohResolver(MentsuComp comp) { janto = comp.getJanto(); shuntsuList = comp.getShuntsuList(); kotsuList = comp.getKotsuList(); }
public ShosushiResolver(MentsuComp comp) { janto = comp.getJanto(); kotsuList = comp.getKotsuKantsu(); kotsuCount = comp.getKotsuCount() + comp.getKantsuCount(); }
public RinshankaihohResolver(MentsuComp comp, PersonalSituation personalSituation) { this.comp = comp; this.personalSituation = personalSituation; }
public ShosangenResolver(MentsuComp comp) { janto = comp.getJanto(); kotsuList = comp.getKotsuKantsu(); }
public ToitoihoResolver(MentsuComp comp) { kotsuCount = comp.getKantsuCount() + comp.getKotsuCount(); }
public HakuResolver(MentsuComp comp) { kotsuList = comp.getKotsuKantsu(); }
public ChitoitsuResolver(MentsuComp comp) { toitsuCount = comp.getToitsuCount(); }