forked from woowacourse/kotlin-omok
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Board.kt
24 lines (18 loc) · 683 Bytes
/
Board.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package domain.board
import domain.player.Player
import domain.player.Players
import domain.rule.OmokRule
import domain.stone.Stone
import domain.stone.StoneColor
class Board(private val players: Players) {
constructor(blackPlayer: Player, whitePlayer: Player, rule: OmokRule) : this(Players(blackPlayer, whitePlayer, rule))
fun putStone(stoneColor: StoneColor, stone: Stone): Board? {
if (players.canPlace(stone)) {
return Board(players.putStone(stoneColor, stone))
}
return null
}
fun getPlayers(): Players = players.copy()
fun isRunning(): Boolean = players.isRunning
fun isLose(): Boolean = players.isBlackLose
}