1
Fork 0
solar-conflux/fsharp/ygosim/src/Board.fs

43 lines
796 B
Forth
Raw Normal View History

module Board
module Side =
open Card
type Side =
{ field: Card option
monsters: Card list
spells: Card list
graveyard: Card list
deck: Card list }
let emptySide =
{ field = None
monsters = []
spells = []
graveyard = []
deck = [] }
module Player =
open Side
type Player =
{ lifePoints: int
side: Side }
let inflictDamage (player: Player) amount = { player with lifePoints = player.lifePoints - amount }
let initialPlayer lp =
{ lifePoints = lp
side = emptySide }
module Board =
open Player
type Board =
{ players: Player * Player }
let emptyBoard = { players = (initialPlayer 8000, initialPlayer 8000) }