Aquí hay un ejemplo que acabo de escribir que toma una matriz y genera espacios en blanco si es necesario. Puede descomentar la variable de velocidad para controlar la velocidad en tiempo de ejecución. Quite también el otro reposo 0.2. La última parte de la matriz debe estar en blanco para dar salida a toda la matriz y seguir trabajando en su reparación.
#@speed = ARGV[0]
strArray = [ "First String there are also things here to backspace", "Second Stringhereare other things too ahdafadsf", "Third String", "Forth String", "Fifth String", "Sixth String", " " ]
#array = [ "/", "-", "|", "|", "-", "\\", " "]
def makeNewLine(array)
diff = nil
print array[0], "\r"
for i in (1..array.count - 1)
#sleep @speed.to_f
sleep 0.2
if array[i].length < array[i - 1].length
diff = array[i - 1].length - array[i].length
end
print array[i]
diff.times { print " " } if !diff.nil?
print "\r"
$stdout.flush
end
end
20.times { makeNewLine(strArray) }
#20.times { makeNewLine(array)}
Hmm, me gusta mejor la solución de @ jsegal, así que elije su respuesta. Recuerde '' lavar '' todavía su salida. – cam
Estoy dividido aquí, porque su respuesta es un fragmento de código perfectamente funcional de lo que pregunté exactamente: una solución en * Ruby *. Sí, podría ser más elegante si usara la sugerencia de jsegal. Pero a) la respuesta de jsegal no es específica de ruby yb) Preferiría aceptar una respuesta con un fragmento de trabajo. Así que voy a seguir adelante y edito su respuesta para reflejar la sugerencia de jsegal, y cuando/si esa edición es aceptada, aceptaré su respuesta y recompensaré a jsegal al votarlo. Es lo mejor que puedo hacer bajo este sistema. –
@Steph: su dilema sobre qué respuesta aceptar parece basarse principalmente en el hecho de que la respuesta de jsegal no incluía un fragmento de código. Teniendo en cuenta que Stack Overflow no es un sitio de intercambio de código, parece un requisito bastante arbitrario. Deberías votar mejor las dos respuestas si las encontraste útiles y aceptar la que más te ayudó * a encontrar la solución que funcionó para ti. –