2018-08-28 08:04:04 +00:00

34 lines
916 B
Kotlin

class GameLoop(private val first: Character,
private val second: Character,
val complition: (Character, Character) -> Unit) {
fun init() {
//enemy must be initialized first since the Card initiate needs them
first.enemy = second
second.enemy = first
first.endGameAsLoser = { //first's deck is empty
complition(second, first)
}
second.endGameAsLoser = { //second's deck is empty
complition(first, second)
}
first.drawFromDeck(3)
second.drawFromDeck(3)
}
fun start() {
while(first.life > 0 && second.life > 0) {
first.nextTurn()
second.nextTurn()
}
endGame()
}
private fun endGame() {
val winner = if (first.life > 0) first else second
val loser = winner.enemy
complition(winner, loser)
}
}