Advertisement
Braber01

tail recursion make brain go burrr

Nov 1st, 2020
7,113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.17 KB | None | 0 0
  1. module DndCharacter
  2.  
  3. open System
  4. open System.Random
  5.  
  6. let modifier x =
  7.     ((double x) - 10.0 / 2.0
  8.     |> floor
  9.     |> int
  10.  
  11. let rand = Random()
  12. let ability() =
  13.     let dice = [rand.Next(1,7);rand.Next(1,7);rand.Next(1,7);rand.Next(1,7)]
  14.     let min = List.min dice
  15.     let removeMin (nums: int list) =
  16.        let minNumber = List.min nums
  17.        let rec removeMin left right minNumber =
  18.             match right with
  19.             | [] -> left
  20.             | head :: tails -> if (head = minNumber) then left @ tails else removeMin (left @ [head]) tails minNumber
  21.         removeMin dice min
  22.            
  23.  
  24.    
  25. // TODO: define the Character type
  26. type character =
  27.     struct
  28.         val Strength: int
  29.         val Dexterity: int
  30.         val Constitution: int
  31.         val Intelligence: int
  32.         val Wisdom: int
  33.         val Charisma: int
  34.         val Hitpoints: int
  35.     end
  36.  
  37. let createCharacter() =
  38.     let character.Strength = ability()
  39.     let character.Dexterity = ability()
  40.     let character.Constitution = ability()
  41.     let character.Intelligence = ablity()
  42.     let character.Charisma = ability()
  43.     let character.Hitpoints = modifer character.Constitution
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement