This commit is contained in:
@@ -5,7 +5,16 @@ import de.knockoutwhist.rounds.Trick
|
||||
|
||||
import scala.util.Try
|
||||
|
||||
class AIPlayer private[player](name: String) extends AbstractPlayer(name) {
|
||||
class AIPlayer private[player](name: String, hand: Option[Hand]) extends AbstractPlayer(name, hand) {
|
||||
override def provideHand(hand: Hand): AbstractPlayer = {
|
||||
AIPlayer(name, Some(hand))
|
||||
}
|
||||
|
||||
override def removeCard(card: Card): (Int, AbstractPlayer) = {
|
||||
val npl = AIPlayer(name, Some(hand.get.removeCard(card)))
|
||||
(npl.hand.size, npl)
|
||||
}
|
||||
|
||||
override def handlePlayCard(hand: Hand, trick: Trick): Try[Card] = {
|
||||
Try{
|
||||
AILogic.decideCard(this, trick)
|
||||
|
||||
@@ -5,19 +5,11 @@ import de.knockoutwhist.rounds.Trick
|
||||
|
||||
import scala.util.Try
|
||||
|
||||
abstract case class AbstractPlayer private[player](var name: String) {
|
||||
private var hand: Option[Hand] = None
|
||||
abstract case class AbstractPlayer private[player](var name: String, hand: Option[Hand], doglife: Boolean = false) {
|
||||
def currentHand(): Option[Hand] = hand
|
||||
var doglife: Boolean = false
|
||||
def provideHand(hand: Hand): Boolean = {
|
||||
this.hand = Some(hand)
|
||||
true
|
||||
}
|
||||
def provideHand(hand: Hand): AbstractPlayer
|
||||
|
||||
def removeCard(card: Card): Int = {
|
||||
hand = Some(hand.get.removeCard(card))
|
||||
hand.get.cards.size
|
||||
}
|
||||
def removeCard(card: Card): (Int, AbstractPlayer)
|
||||
|
||||
def handlePlayCard(hand: Hand, trick: Trick): Try[Card]
|
||||
def handleDogPlayCard(hand: Hand, trick: Trick, needstoplay: Boolean): Try[Option[Card]]
|
||||
|
||||
@@ -8,7 +8,15 @@ import de.knockoutwhist.rounds.Trick
|
||||
import scala.util.Try
|
||||
|
||||
|
||||
class HumanPlayer private[player](name: String) extends AbstractPlayer(name) {
|
||||
class HumanPlayer private[player](name: String, hand: Option[Hand]) extends AbstractPlayer(name, hand) {
|
||||
override def provideHand(hand: Hand): AbstractPlayer = {
|
||||
HumanPlayer(name, Some(hand))
|
||||
}
|
||||
|
||||
override def removeCard(card: Card): (Int,AbstractPlayer) = {
|
||||
val npl = HumanPlayer(name, Some(hand.get.removeCard(card)))
|
||||
(npl.hand.size, npl)
|
||||
}
|
||||
override def handlePlayCard(hand: Hand, trick: Trick): Try[Card] = {
|
||||
ControlHandler.invoke(RequestCardEvent(hand))
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ class AIPlayerBuilder extends PlayerBuilder {
|
||||
|
||||
override def setName(name: String): PlayerBuilder = {
|
||||
if (unfinished.isEmpty) {
|
||||
unfinished = Some(AIPlayer(name))
|
||||
unfinished = Some(AIPlayer(name, None))
|
||||
} else {
|
||||
unfinished.get.name = name
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ class HumanoidBuilder extends PlayerBuilder {
|
||||
private var unfinished: Option[HumanPlayer] = None
|
||||
override def setName(name: String): PlayerBuilder = {
|
||||
if (unfinished.isEmpty) {
|
||||
unfinished = Some(HumanPlayer(name))
|
||||
unfinished = Some(HumanPlayer(name, None))
|
||||
} else {
|
||||
unfinished.get.name = name
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user