de linuxmanr4, 2 años han pasado desde su publicación, escrito en Ruby.
Este código es una respuesta a Re: Bola Mágica de Marco Antonio Islas Cruz
- ver diferencias
Insertar vínculo
  1. #!/usr/bin/env ruby
  2.  
  3. # Bola Mágica
  4. # ================
  5.  
  6. # bola_magica.rb es un sencillo programa escrito en Ruby que toma simula las respuestas
  7. # de una bola mágica. Espero que se diviertan :).
  8.  
  9. # Copyright (C) 2015 Francisco Javier de la Torre Inguanzo
  10. # Este código es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la
  11. # Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la
  12. # versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior.
  13. # Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso
  14. # sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.
  15. # Véase la Licencia Pública General de GNU para más detalles.
  16. # Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha
  17. # sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.
  18.  
  19. # Francisco Javier de la Torre Inguanzo http://linuxmanr4.com
  20.  
  21. # La legibilidad cuenta
  22. mensajes = ["En mi opinión Sí",
  23.   "Es cierto",
  24.   "Decididamente así es",
  25.   "Probablemente",
  26.   "Buen pronóstico",
  27.   "Todo apunta a que sí",
  28.   "Sin duda",
  29.   "Sí",
  30.   "Sí - definitivamente",
  31.   "Debes confiar en ello",
  32.   "Mmmm...vuelve a intentarlo",
  33.   "Pregunta en otro momento",
  34.   "Será mejor que no te lo diga ahora",
  35.   "No puedo predecirlo ahora",
  36.   "Concéntrate y vuelve a preguntar",
  37.   "No cuentes con ello",
  38.   "Mi respuesta es no",
  39.   "Mis fuentes me dicen que no",
  40.   "Las perspectivas no son buenas",
  41.   "Muy dudoso"]
  42.  
  43. # Que el azar haga su parte
  44. respuesta = Random.new
  45.  
  46. #Es necesario limpiar la pantalla ? Sí, para que se vea bien en el screenshot :)
  47. system "clear" # Para limpiar la pantalla.
  48. puts "Haga su pregunta: "
  49. STDOUT.flush
  50. pregunta = gets.chomp
  51. # Es mejor usar como limite el tamaño del array usando la propiedad length,
  52. # de esta forma si agregamos respuestas no tenemos que preocuparnos por actualizar este campo.
  53. # Usar expansión de cadenas es mejor que usar varios puts
  54. puts "\nLa respuesta es: \n.\n.\n.\n%s\n"%mensajes[respuesta.rand(0..mensajes.length-1)]
  55.  
  56. # El método length regresa el número total de elementos contenidos en el arreglo (en este caso 20)
  57. # pero los indices comienzan en cero, o sea que van del 0 al 19, por eso le quito 1 a la longitud del arreglo
  58. # para que los números aleatorios estén en el rango correcto.
  59.  
  60.