module DndCharacter open System let random = Random() let diceRoll = (random.Next 5) + 1 let modifier x = int (floor (float (x - 10) / 2.0)) let ability () = List.sum (List.take 3 (List.sortDescending [ for i in 1 .. 4 -> diceRoll ])) type Character = { Strength: int Dexterity: int Constitution: int Intelligence: int Wisdom: int Charisma: int Hitpoints: int } let createCharacter () = let constitution = ability () { Strength = ability () Dexterity = ability () Constitution = constitution Intelligence = ability () Wisdom = ability () Charisma = ability () Hitpoints = (10 + modifier constitution) }