@startuml skinparam sequenceMessageAlign right entity " " as start participant Game participant Player participant Card participant Referee actor User actor Bot start -> Game: playGame() loop until someone wins Game -> Player: getPlay(currentCard) alt user's turn alt play User -> Player: play(card) Game <-- Player: playedCard Game -> Referee: checkPlay(currentCard, playedCard) else draw User -> Player: draw() end else bot's turn alt play Bot -> Player: play(card) Game <-- Player: playedCard Game -> Referee: checkPlay(currentCard, playedCard) else draw Bot -> Player: draw() end end end @enduml