Shanten Without Got
constructor(shantenNum: Int, advance: Set<Tile>, advanceNum: Int = 0, goodShapeAdvance: Set<Tile>? = if (shantenNum == 1) emptySet() else null, goodShapeAdvanceNum: Int? = if (shantenNum == 1) 0 else null, improvement: Map<Tile, List<Improvement>>? = if (shantenNum == 0) emptyMap() else null, improvementNum: Int? = if (shantenNum == 0) 0 else null, goodShapeImprovement: Map<Tile, List<Improvement>>? = if (shantenNum == 0) emptyMap() else null, goodShapeImprovementNum: Int? = if (shantenNum == 0) 0 else null)