fork download
  1. open System
  2.  
  3. [<EntryPoint>]
  4. let main argv =
  5. let map =
  6. Map([1, [3; 5; 7];
  7. 2, [4; 1; 7];
  8. 3, [2; 5; 7];
  9. 4, [3; 1; 6];
  10. 5, [4; 2; 6];
  11. 6, [1; 2; 3];
  12. 7, [4; 5; 6]])
  13.  
  14. let random = Random();
  15.  
  16. let mutable continuar = true
  17. let mutable victorias = 0
  18. let mutable derrotas = 0
  19. let mutable empates = 0
  20.  
  21. while continuar do
  22. let numeroDelOrdenador = random.Next(1, 7)
  23.  
  24. printf "Opcciones = 1-Piedra, 2-Papel, 3-Tijera, 4-Spock, 5-Lagarto, 6-Troglodita, 7-Hielo\r\n"
  25. printf "Teclee la opción con el número correspondiente: "
  26. match Int32.TryParse(Console.ReadLine()) with
  27. | (true, n) when n >= 0 && n <= 7 ->
  28. printf "Ordenador: %i\r\n" numeroDelOrdenador
  29.  
  30. if n = numeroDelOrdenador then
  31. printf "Caramba! Es un empate\r\n"
  32. empates <- empates + 1
  33.  
  34. let ``n le gana a x`` n x = map.[n] |> Seq.exists(fun m -> m = x)
  35.  
  36. if ``n le gana a x`` n numeroDelOrdenador then
  37. printf "Super! usted gana\r\n"
  38. victorias <- victorias + 1
  39.  
  40. if ``n le gana a x`` numeroDelOrdenador n then
  41. Console.WriteLine("Usted pierde\r\n")
  42. derrotas <- derrotas + 1
  43. | (_ , _) ->
  44. printf "Por favor ingrese un número válido.\r\n"
  45.  
  46. printf "\r\n"
  47. printf "Quiere terminar ahora (S/N)? \r\n"
  48. continuar <- Console.ReadLine() <> "S"
  49.  
  50. printf "Victorias: %i\r\n" victorias
  51. printf "Derrotas: %i\r\n" derrotas
  52. printf "Empates: %i\r\n" empates
  53.  
  54. Console.ReadLine() |> ignore
  55. 0
Success #stdin #stdout 0.16s 24936KB
stdin
1
n
2
n
3
n
4
n
5
n
6
n
7
S
stdout
Opcciones = 1-Piedra, 2-Papel, 3-Tijera, 4-Spock, 5-Lagarto, 6-Troglodita, 7-Hielo
Teclee la opción con el número correspondiente: Ordenador: 2
Usted pierde


Quiere terminar ahora (S/N)? 
Opcciones = 1-Piedra, 2-Papel, 3-Tijera, 4-Spock, 5-Lagarto, 6-Troglodita, 7-Hielo
Teclee la opción con el número correspondiente: Ordenador: 2
Caramba! Es un empate

Quiere terminar ahora (S/N)? 
Opcciones = 1-Piedra, 2-Papel, 3-Tijera, 4-Spock, 5-Lagarto, 6-Troglodita, 7-Hielo
Teclee la opción con el número correspondiente: Ordenador: 2
Super! usted gana

Quiere terminar ahora (S/N)? 
Opcciones = 1-Piedra, 2-Papel, 3-Tijera, 4-Spock, 5-Lagarto, 6-Troglodita, 7-Hielo
Teclee la opción con el número correspondiente: Ordenador: 6
Super! usted gana

Quiere terminar ahora (S/N)? 
Opcciones = 1-Piedra, 2-Papel, 3-Tijera, 4-Spock, 5-Lagarto, 6-Troglodita, 7-Hielo
Teclee la opción con el número correspondiente: Ordenador: 5
Caramba! Es un empate

Quiere terminar ahora (S/N)? 
Opcciones = 1-Piedra, 2-Papel, 3-Tijera, 4-Spock, 5-Lagarto, 6-Troglodita, 7-Hielo
Teclee la opción con el número correspondiente: Ordenador: 4
Usted pierde


Quiere terminar ahora (S/N)? 
Opcciones = 1-Piedra, 2-Papel, 3-Tijera, 4-Spock, 5-Lagarto, 6-Troglodita, 7-Hielo
Teclee la opción con el número correspondiente: Ordenador: 1
Usted pierde


Quiere terminar ahora (S/N)? 
Victorias: 2
Derrotas: 3
Empates: 2