#!/usr/bin/env ruby
# Bola Mágica
# ================
# bola_magica.rb es un sencillo programa escrito en Ruby que toma simula las respuestas
# de una bola mágica. Espero que se diviertan :).
# Copyright (C) 2015 Francisco Javier de la Torre Inguanzo
# Este código es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la
# Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la
# versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior.
# Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso
# sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.
# Véase la Licencia Pública General de GNU para más detalles.
# Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha
# sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.
# Francisco Javier de la Torre Inguanzo http://linuxmanr4.com
# La legibilidad cuenta
mensajes = ["En mi opinión Sí",
"Es cierto",
"Decididamente así es",
"Probablemente",
"Buen pronóstico",
"Todo apunta a que sí",
"Sin duda",
"Sí",
"Sí - definitivamente",
"Debes confiar en ello",
"Mmmm...vuelve a intentarlo",
"Pregunta en otro momento",
"Será mejor que no te lo diga ahora",
"No puedo predecirlo ahora",
"Concéntrate y vuelve a preguntar",
"No cuentes con ello",
"Mi respuesta es no",
"Mis fuentes me dicen que no",
"Las perspectivas no son buenas",
"Muy dudoso"]
# Que el azar haga su parte
respuesta = Random.new
#Es necesario limpiar la pantalla ? Sí, para que se vea bien en el screenshot :)
system "clear" # Para limpiar la pantalla.
puts "Haga su pregunta: "
STDOUT.flush
pregunta = gets.chomp
# Es mejor usar como limite el tamaño del array usando la propiedad length,
# de esta forma si agregamos respuestas no tenemos que preocuparnos por actualizar este campo.
# Usar expansión de cadenas es mejor que usar varios puts
puts "\nLa respuesta es: \n.\n.\n.\n%s\n"%mensajes[respuesta.rand(0..mensajes.length-1)]
# El método length regresa el número total de elementos contenidos en el arreglo (en este caso 20)
# pero los indices comienzan en cero, o sea que van del 0 al 19, por eso le quito 1 a la longitud del arreglo
# para que los números aleatorios estén en el rango correcto.
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}