Mis suegros tienen un estanque de peces en su patio, lleno de koi. Realmente no se me pasó por la cabeza hasta que noté el siguiente extracto de mi código.
',') & '_'
... Tenía caras de pez mirándome desde la pantalla ...
Lo que me ha dado una gran idea ...
Mi búsqueda para ustedes, mis queridos golfistas, es crear un acuario ASCII de una línea, con las siguientes reglas:
- El tamaño del acuario desde el lado del tanque hasta el otro lado del tanque no debe ser menor de 60 caracteres ni mayor de 80 caracteres. Los lados del tanque deben indicarse utilizando el carácter de tubería / barra (
|
). - Los peces deben poder "nadar" de izquierda a derecha entre los lados del tanque. A medida que giren, se requiere una vista frontal para la transición de una dirección a otra.
El pez debe tener el siguiente aspecto:
}}< }} ',')
Peces nadando a la derecha(',' {{ >{{
Peces nadando a la izquierda}}('_'){{
Pescado de frente
Cuando un pez gira para cambiar de dirección (30% de probabilidad), debe comenzar desde una dirección, mirar hacia el frente, luego mirar hacia la otra dirección ... Asegúrese de que haya suficiente espacio para que el pez gire, es decir, requiere seis espacios antes del borde del tanque mínimo ...
- A menos que un pez esté soplando una burbuja o cambie de dirección, continuará en la dirección que está mirando, si se encuentra dentro de los seis espacios del costado del tanque, cambiará de dirección.
- El pez (mirando hacia la izquierda o hacia la derecha) en ocasiones (10% de probabilidad) puede dejar de soplar burbujas en sucesión (
.oO*
), por lo que se requiere que el pez tenga un espacio disponible al lado para que la burbuja exista, para que un pez pueda solo nade tan cerca de los costados, ahorre un espacio. La burbuja debe desaparecer antes de que el pez pueda avanzar ...
Una serie de líneas de ejemplo del comportamiento del pez, con -
caracteres que indican los espacios, ya que la función de visualización del código aquí es un poco estricta ... Esperaré que estos guiones sean reemplazados por espacios cuando codifique esto ...
Cada línea aquí podría considerarse un marco en un lapso de tiempo.
|-}}< }} ',')----------|
|--}}< }} ',')---------|
|---}}< }} ',')--------|
|----}}< }} ',')-------|
|-----}}< }} ',')------|
|-----}}< }} ',').-----|
|-----}}< }} ',')o-----|
|-----}}< }} ',')O-----|
|-----}}< }} ',')*-----|
|---------}}('_'){{----|
|-----------(',' {{ >{{|
|----------(',' {{ >{{-|
|---------(',' {{ >{{--|
|--------.(',' {{ >{{--|
|--------o(',' {{ >{{--|
|--------O(',' {{ >{{--|
|--------*(',' {{ >{{--|
|--------(',' {{ >{{---|
|-------(',' {{ >{{----|
|------(',' {{ >{{-----|
El ejemplo anterior es, como dije, pequeño, pero se entiende la idea general ...
El código más corto gana ...
Espero que la salida en la misma línea (si es posible), si no, mostrar cuadro tras cuadro está bien ... Ya sea que vaya una línea o varias líneas depende de usted. Si está haciendo varias líneas, deben estar separadas por una nueva línea.
También se impone un temporizador entre cuadros, 2000ms. Esto es obligatoria .
¡A ver qué tienes!