summaryrefslogtreecommitdiff
path: root/src/main/scala/me/robbyzambito/othello/game/AIPlayer.scala
blob: 4fbb2d95b692574cdaf0b7ae5652f054f62ed38b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package me.robbyzambito.othello.game

/**
 * Decides how the AI player should behave.
 *
 * Written by Robby Zambito
 * Written on 11/20/2019
 * Targeting Scala 2.13.1
 *
 * See [[Player]]
 */
case class AIPlayer(override val color: Position) extends Player(color) {

  implicit class MoveScore(m: Move) {
    def score: Int = m.takenPositions.length
  }

  override def nextMove(board: Board): Move = {

    implicit val moveOrdering: Ordering[Move] = (x, y) => x.score.compareTo(y.score)

    println(s"$this moving...")
    Thread.sleep(1000L)
    println()

    possibleMoves(board).max
  }

}