我正在尝试为每个方向生成一个从0到3的随机数-n,e,s,w。无论递归函数以前的方向是什么,都不能再次使用,我正在尝试找出实现此目标的最佳方法。我也想避免使用可变变量。下面是我到目前为止所拥有的,并且可以正常运行,但是我敢肯定有更好的方法可以做到这一点...
open System
let width = Console.WindowWidth
let height = Console.WindowHeight
let (map: int[,]) = Array2D.zeroCreate width height
let random = Random()
let main x y d =
let mutable nd = random.Next(4)
while nd = d do
nd <- random.Next(4)
答案 0 :(得分:3)
您只需要以下三个值之一:
let nd1 = random.Next 3
let nd = if nd1 >= d then nd1 + 1 else nd1