@@ -75,23 +75,23 @@ Abalone official coordinates system and "standard start position" are drawn belo
75
75
sealed trait DirectionString
76
76
77
77
object DirectionString {
78
- case object Left extends DirectionString
79
- case object UpLeft extends DirectionString
80
- case object UpRight extends DirectionString
81
- case object Right extends DirectionString
78
+ case object Left extends DirectionString
79
+ case object UpLeft extends DirectionString
80
+ case object UpRight extends DirectionString
81
+ case object Right extends DirectionString
82
82
case object DownRight extends DirectionString
83
- case object DownLeft extends DirectionString
83
+ case object DownLeft extends DirectionString
84
84
85
85
val all : List [DirectionString ] = List (Left , UpLeft , UpRight , Right , DownRight , DownLeft )
86
86
}
87
87
88
88
sealed trait DiagonalDirectionString
89
89
90
90
object DiagonalDirectionString {
91
- case object UpLeft extends DiagonalDirectionString
92
- case object UpRight extends DiagonalDirectionString
91
+ case object UpLeft extends DiagonalDirectionString
92
+ case object UpRight extends DiagonalDirectionString
93
93
case object DownRight extends DiagonalDirectionString
94
- case object DownLeft extends DiagonalDirectionString
94
+ case object DownLeft extends DiagonalDirectionString
95
95
96
96
val all : List [DiagonalDirectionString ] = List (UpLeft , UpRight , DownRight , DownLeft )
97
97
}
@@ -280,7 +280,6 @@ case class Pos private (index: Int) extends AnyVal {
280
280
def officialNotationKey = s " ${File (rank.index).getOrElse(" " )}${Rank (file.index).getOrElse(" " )}"
281
281
override def toString = key
282
282
283
-
284
283
private def diagonalDirectionString (dest : Pos ): DiagonalDirectionString =
285
284
(file.index - dest.file.index, rank.index - dest.rank.index) match {
286
285
case (0 , rankDiff) =>
@@ -338,74 +337,74 @@ object Pos {
338
337
else None
339
338
340
339
def directionFromDirectionString (directionString : DirectionString ): Direction = directionString match {
341
- case DirectionString .Left => _.left
342
- case DirectionString .UpLeft => _.upLeft
343
- case DirectionString .UpRight => _.upRight
344
- case DirectionString .Right => _.right
340
+ case DirectionString .Left => _.left
341
+ case DirectionString .UpLeft => _.upLeft
342
+ case DirectionString .UpRight => _.upRight
343
+ case DirectionString .Right => _.right
345
344
case DirectionString .DownRight => _.downRight
346
- case DirectionString .DownLeft => _.downLeft
345
+ case DirectionString .DownLeft => _.downLeft
347
346
}
348
347
349
348
// used by valid moves generator, based on the Direction currently considered
350
349
def diagonalDirectionsFromDirection (direction : Direction ): Directions = {
351
350
directionStringFromDirection(direction) match {
352
- case DirectionString .Left => List (_.downLeft, _.upLeft)
353
- case DirectionString .UpLeft => List (_.left, _.upRight)
354
- case DirectionString .UpRight => List (_.upLeft, _.right)
355
- case DirectionString .Right => List (_.upRight, _.downRight)
351
+ case DirectionString .Left => List (_.downLeft, _.upLeft)
352
+ case DirectionString .UpLeft => List (_.left, _.upRight)
353
+ case DirectionString .UpRight => List (_.upLeft, _.right)
354
+ case DirectionString .Right => List (_.upRight, _.downRight)
356
355
case DirectionString .DownRight => List (_.right, _.downLeft)
357
- case DirectionString .DownLeft => List (_.downRight, _.left)
356
+ case DirectionString .DownLeft => List (_.downRight, _.left)
358
357
}
359
358
}
360
359
361
- def potentialLineDirsFromSideMoveDir (sideMoveDirection : Direction ): Directions = {
360
+ def potentialLineDirsFromSideMoveDir (sideMoveDirection : Direction ): Directions = {
362
361
diagonalDirectionStringFromDirection(sideMoveDirection) match {
363
- case DiagonalDirectionString .UpLeft => List (_.left, _.upLeft)
364
- case DiagonalDirectionString .UpRight => List (_.upLeft, _.upRight, _.right)
362
+ case DiagonalDirectionString .UpLeft => List (_.left, _.upLeft)
363
+ case DiagonalDirectionString .UpRight => List (_.upLeft, _.upRight, _.right)
365
364
case DiagonalDirectionString .DownRight => List (_.right, _.downRight)
366
- case DiagonalDirectionString .DownLeft => List (_.downRight, _.downLeft, _.left)
365
+ case DiagonalDirectionString .DownLeft => List (_.downRight, _.downLeft, _.left)
367
366
}
368
367
}
369
368
370
- def potentialSideMoveDirsFromGlobalDir (globalDir : Direction ): Directions = {
369
+ def potentialSideMoveDirsFromGlobalDir (globalDir : Direction ): Directions = {
371
370
diagonalDirectionStringFromDirection(globalDir) match {
372
- case DiagonalDirectionString .UpLeft => List (_.left, _.upLeft)
373
- case DiagonalDirectionString .UpRight => List (_.upLeft, _.upRight, _.right)
371
+ case DiagonalDirectionString .UpLeft => List (_.left, _.upLeft)
372
+ case DiagonalDirectionString .UpRight => List (_.upLeft, _.upRight, _.right)
374
373
case DiagonalDirectionString .DownRight => List (_.right, _.downRight)
375
- case DiagonalDirectionString .DownLeft => List (_.downLeft, _.left, _.downRight)
374
+ case DiagonalDirectionString .DownLeft => List (_.downLeft, _.left, _.downRight)
376
375
}
377
376
}
378
377
379
378
def deducePotentialSideDirs (globalDir : Direction , lineDir : Direction ): Directions = {
380
379
diagonalDirectionStringFromDirection(globalDir) match {
381
- case DiagonalDirectionString .DownLeft => {
380
+ case DiagonalDirectionString .DownLeft => {
382
381
directionStringFromDirection(lineDir) match {
383
382
case DirectionString .DownLeft => List (_.left, _.downRight)
384
383
case DirectionString .DownRight => List (_.downLeft)
385
384
case DirectionString .Left => List (_.downLeft)
386
- case _ => List ()
385
+ case _ => List ()
387
386
}
388
387
}
389
- case DiagonalDirectionString .UpRight => {
388
+ case DiagonalDirectionString .UpRight => {
390
389
directionStringFromDirection(lineDir) match {
391
390
case DirectionString .UpLeft => List (_.upRight)
392
391
case DirectionString .UpRight => List (_.right, _.upLeft)
393
- case DirectionString .Right => List (_.upRight)
394
- case _ => List ()
392
+ case DirectionString .Right => List (_.upRight)
393
+ case _ => List ()
395
394
}
396
395
}
397
- case DiagonalDirectionString .UpLeft => {
396
+ case DiagonalDirectionString .UpLeft => {
398
397
directionStringFromDirection(lineDir) match {
399
398
case DirectionString .UpLeft => List (_.left)
400
- case DirectionString .Left => List (_.upLeft)
401
- case _ => List ()
399
+ case DirectionString .Left => List (_.upLeft)
400
+ case _ => List ()
402
401
}
403
402
}
404
403
case DiagonalDirectionString .DownRight => {
405
404
directionStringFromDirection(lineDir) match {
406
405
case DirectionString .DownRight => List (_.right)
407
- case DirectionString .Right => List (_.downRight)
408
- case _ => List ()
406
+ case DirectionString .Right => List (_.downRight)
407
+ case _ => List ()
409
408
}
410
409
}
411
410
}
0 commit comments