Esempio n. 1
0
  public boolean isMatch() {
    if (shuntsuCount < 4) {
      return false;
    }
    // 雀頭が三元牌の場合はfalse
    Tile janto = this.janto.getTile();
    if (janto.getType() == SANGEN) {
      return false;
    }

    if (!isSituationsNull()) {
      if (janto == generalSituation.getBakaze()) {
        return false;
      }
      if (janto == personalSituation.getJikaze()) {
        return false;
      }
    }

    boolean isRyanmen = false;
    for (Shuntsu shuntsu : shuntsuList) {
      // 鳴いていた場合もfalse
      if (shuntsu.isOpen()) {
        return false;
      }

      // 両面待ちならそれを保存しておく
      if (isRyanmen(shuntsu, last)) {
        isRyanmen = true;
      }
    }

    return isRyanmen;
  }