Как избежать определенного числа при создании случайного числа в F #? - PullRequest
0 голосов
/ 09 декабря 2018

Я пытаюсь сгенерировать случайное число от 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)

1 Ответ

0 голосов
/ 09 декабря 2018

Вам нужно только одно из 3 значений:

let nd1 = random.Next 3
let nd = if nd1 >= d then nd1 + 1 else nd1
...