Fuck SE

open System.IO
open System
open System.Diagnostics

[<EntryPoint>]
let main argv = 
    let csp = new System.Security.Cryptography.RNGCryptoServiceProvider()
    let buf = Array.zeroCreate 8
    let mutable total = 0
    let mutable succ = 0
    let sw = new Stopwatch();
    sw.Start()
    File.ReadAllLines(argv.[0])
    |> Array.chunkBySize 8
    //|> Array.skip (Array.sum [|12;10;10;10;10; 8;8;10;10;10;|])
    //|> Array.take 10
    |> Array.sortBy (fun _ -> csp.GetBytes buf; System.BitConverter.ToUInt64(buf, 0))
    //|> Array.map (fun x -> Convert.ToInt32(x.[0]))
    |> Array.iter (fun x ->
        Console.WriteLine(String.concat " " x.[1..2]) 
        Array.iter (printfn "%s") x.[3..6]
        Console.Write("<- ")
        if Console.ReadLine().Trim().ToLower() = x.[7].Split(("你").ToCharArray()).[0].Split(":".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).[1].Trim().ToLower() then
            Console.WriteLine("行")
            succ <- succ + 1
        else
            Console.BackgroundColor <- ConsoleColor.DarkRed
            Console.WriteLine("WDNMD!!!!!!!!!!!!!!!!!!")
            Console.Beep(440, 1000)
        total <- total + 1
        Console.BackgroundColor <- ConsoleColor.Black
        Console.WriteLine(x.[7].Split(("你").ToCharArray()).[0])
        Console.WriteLine()
        Console.WriteLine())

    sw.Stop()
    Console.WriteLine("-------------- END --------------")
    Console.WriteLine(sw.Elapsed.ToString())
    Console.WriteLine((double)succ / (double)total)
    Console.ReadLine() |> ignore
    0

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注