Skip to content

Commit d8f559b

Browse files
chore: improve codestyle
- return empty List() instead of None before flattening when we are supposed to return a List overall - remove unnecessary use of a List - use map in case the inner code can only ever return something, e.g. : (x) => "a value whatever the value of x"
1 parent ece31e5 commit d8f559b

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

src/main/scala/abalone/variant/Variant.scala

+11-13
Original file line numberDiff line numberDiff line change
@@ -114,28 +114,26 @@ abstract class Variant private[variant] (
114114
situation.board.isEmptySquare(pos.dir(dir))
115115
}
116116

117-
val possibleSideMovesDirections = Pos.sideMovesDirsFromDir(direction)
118-
def possibleSideMoves: List[Option[(Pos, Pos)]] = possibleSideMovesDirections.map(
117+
def possibleSideMoves: List[(Pos, Pos)] = Pos.sideMovesDirsFromDir(direction).map(
119118
dir =>
120-
if (lineOfMarbles.flatMap(
121-
(pos) => Some(canMoveTowards(pos, dir))
119+
if (lineOfMarbles.map(
120+
(pos) => canMoveTowards(pos, dir)
122121
).contains(false)) None
123-
else List(
122+
else (
124123
lineOfMarbles.headOption,
125124
lineOfMarbles.reverse.headOption.flatMap(_.dir(dir))
126125
) match {
127-
case List(Some(head), Some(tail)) => Some( (head, tail) )
126+
case (Some(head), Some(tail)) => Some( (head, tail) )
128127
case _ => None
129128
}
130-
)
129+
).flatten
131130

132-
List(
133-
if (lineOfMarbles.size == 3) generateSideMoves(lineOfMarbles.dropRight(1), direction)
134-
else None,
131+
List(
132+
if (lineOfMarbles.size == 3) generateSideMoves(lineOfMarbles.dropRight(1), direction) else List(),
135133
possibleSideMoves.flatMap {
136-
case Some((orig, dest)) => Some(createMove(orig, dest, "side"))
137-
case _ => None
138-
}
134+
case ( (orig, dest) ) => Some(createMove(orig, dest, "side"))
135+
case _ => None
136+
}
139137
).flatten
140138
}
141139

0 commit comments

Comments
 (0)