Imgur es un servicio gratuito de alojamiento de imágenes. Mucha gente lo usa. Aquí hay un ejemplo de un enlace imgur: http://i.imgur.com/T55muMD.png . Escriba un programa que muestre continuamente enlaces imgur aleatorios (válidos). Por ejemplo, aquí hay un ejemplo de salida de mi programa (no se muestra porque contiene algunos trucos que tendrá que descubrir usted mismo):
http://i.imgur.com/uFmsA.png
http://i.imgur.com/FlpHS.png
http://i.imgur.com/eAbsZ.png
http://i.imgur.com/lEUsq.png
http://i.imgur.com/RuveH.png
http://i.imgur.com/BoEwB.png
http://i.imgur.com/HVFGQ.png
http://i.imgur.com/PZpMg.png
http://i.imgur.com/DezCY.png
Consejos útiles:
- Cuando imgur era nuevo, se usaban enlaces de 5 letras.
- Cuando imgur era nuevo, no se usaban números.
- Puede usar esto para su ventaja: solo encuentre imágenes de enlace de 5 letras con solo letras. Eso es lo que hace mi programa.
- Además, todas las imágenes se guardan como
.png
.
Requisitos:
- Salida continua de enlaces imgur aleatorios
- Enlaces considerados suficientemente "aleatorios" si se emiten 50 sin repeticiones
- Cuando se visita, los enlaces deben ser una imagen
- Los enlaces deben comenzar
http://i.imgur.com/
y terminar con.png
- La puntuación es la cantidad de caracteres
Lo hice en Java (TERRIBLE para jugar al golf) en 452 caracteres. ¡No se muestra aquí porque contiene algunos trucos que tendrás que descubrir por ti mismo!)
Respuestas:
PHP 5.4, 76 caracteres
Las URL se generan en orden secuencial utilizando solo letras mayúsculas y nunca se repiten, cumpliendo con la letra de la especificación.
fuente
Perl (93 + 4 = 97)
Usando el propio mecanismo aleatorio de imgur para obtener sus URL de imágenes, que no son URL png la mayoría de las veces:
(Necesitas Mojolicious para esto).
fuente
HTML (152)
Esto registra todas las imágenes encontradas en la consola JavaScript usando
console.log()
. Funciona en todos los navegadores probados (Firefox, Chrome, IE9, Safari y Opera).La parte divertida es que todo tipo de imágenes divertidas están apareciendo por un abrir y cerrar de ojos :).
¡Intentalo! (jsFiddle envuelve esto en una página HTML más completa, pero los navegadores también aceptan el elemento único).
¡Apoyos al increíble método de cadenas aleatorias con doble toque !
¿Dónde puedo ver la consola de JavaScript y las imágenes registradas?
fuente
Perl (87)
Encontrar imágenes con mayúsculas, minúsculas y dígitos desde 0 hasta cualquier carácter, algún día.
fuente
Mathematica , 108
Espacio en blanco agregado.
fuente
Pitón (
174158156)Quiero nombres de módulos más cortos en Python. También es un método más fácil de obtener letras al azar. :)
Explicación:
El operador de módulo en una cadena es el comando de formateo, en este caso reemplaza '% s' en la cadena con 5 letras mayúsculas al azar si
a
el nombre del sitio web (tipostr
)('File'not in urllib.urlopen(a).read())
es Verdadero cuando 'Archivo' (de '¡Archivo no encontrado!') se no se encuentran en el código HTML de la URL. (typebool
)bool
*str
=str
ifbool
= True, por lo que solo se generaráa
si 'File' no se encuentra en el código HTML.fuente
chr(random.randint(65,90))
'File'
:) :)'XXXXX'
lugar derange(5)
. Esto también tiene la ventaja de no requerir espacios en blanco entre este y elin
.Enfoque único de Python.
361355334332322314 caracteres: un poco ofuscado, nada demasiado difícil. Puede haber una inusualmente alta densidad de imágenes de gatos, se le ha advertido.Salida:
fuente
R, 182 caracteres
fuente
Python, 153 caracteres
Si bien esto funciona, es muy lento y puede tardar muchos segundos antes de devolver cualquier salida.
Inspirado por la solución de @ beary605, me salvó un montón de personajes ya que estaba planeando buscar imágenes por encabezado de tipo de contenido.
fuente
random.sample
:) Esa es una forma mucho mejor de elegir personajes.Golpe
(129, 121)(117, 109)Tengo dos versiones: una iterativa y una recursiva interminable (que lentamente consumirá toda la memoria). Ambas versiones verifican si realmente hay un archivo PNG presente (se ignoran los archivos jpg, gif y otros tipos de archivos).
Iterativo (antiguo) (129):
Recursivo (antiguo) (121):
Nota : puede haber un problema de compatibilidad con grep. Mi manual grep dice que
-s
silencia la salida de grep pero no hace nada. Sin embargo, usar--quiet
,--silent
o en su-q
lugar funciona.EDITAR:
Usando encabezados de contenido ahora después de leer /codegolf//a/10499/7195 :)
Iterativo (117):
Recursivo (109):
fuente
Rubí (103 caracteres)
fuente
.png
al final de la URL.Bash / herramientas de línea de comandos, 72 caracteres
Pedir prestada la técnica inteligente de @ memowe :
Esto logra un ciclo continuo al volver a ejecutarse dentro del mismo espacio de proceso.
fuente