Este desafío es un desafío de arte ASCII simple inspirado en el eclipse solar que ocurrió el 21 de agosto de 2017. Dada una entrada 0 <= n <= 4, salida de la etapa correspondiente del eclipse que se describe a continuación:
n=0:
*****
** **
* *
* *
** **
*******
n=1:
*****
** *****
* *******
* *******
** ******
*******
n=2:
*****
*********
***********
***********
***********
*******
n=3:
*****
***** **
******* *
******* *
****** **
*******
n=4:
*****
** **
* *
* *
** **
*******
Reglas
- Puede 0 o 1 índice, indicar lo que eligió.
- Los caracteres utilizados son espacio y
*puede utilizar cualquier carácter imprimible para*(que no sea espacio). - Los espacios finales son opcionales (puede que los tenga o no).
- Este es el código de golf , el conteo de bytes más bajo es el ganador.

*" ... ¿incluido el espacio? ;)Respuestas:
Python 2 ,
161149142135 bytesPruébalo en línea!
-7 gracias al Sr. Xcoder .
fuente
Carbón ,
82815543 bytes-38 bytes gracias a Neil!
Pruébalo en línea! El enlace es a la versión detallada.
Lo hice por el gusto de hacerlo. : P
Probablemente saldré de golf por 40 bytes.2638 bytes ... ¿Lo suficientemente cerca?fuente
PolygonHollow. : P 2) Ohh, bien. ¡Gracias!Chicle de canela , 70 bytes
Hexdump:
Pruébalo en línea!
He esperado tanto tiempo para descubrir cómo usar este idioma. :PAGS
Entonces, Cinnamon Gum es Bubblegum, pero es más un lenguaje "real" que Bubblegum.
El primer byte (
l) establece el modo en modo diccionario. El resto de los bytes es la siguiente cadena comprimida.Esto esencialmente hace una tabla de búsqueda con cada texto asignado a un número. El programa luego toma entrada y da salida al texto respectivo.
fuente
argument%4oargument&3guardar bytes?JavaScript (ES6),
103102 bytesEditar: guardado 1 byte gracias a @darrylyeo.
fuente
*666777333*\nen una variable.SOGL V0.12 ,
4039 bytesPruébalo aquí!
fuente
VI, 108 bytes
<CR>es elEnteraccidente cerebrovascular,<C-?>corresponde aControl + ?, y<Esc>queEscapeobviamente. Cada uno de estos cuenta para 1 byte (ver meta ). Los saltos de línea en la solución son para facilitar la lectura. Solo<CR>representaEntertrazos reales .Entrada
El archivo de entrada debe contener solo 1 carácter, que representa
n.Lanzamiento
VI debe comenzar como:
Explicaciones
Hay 3 partes en la solución. Primero describiré la segunda parte (segunda línea), ya que es la más fácil de explicar.
Dibujando el sol
El comando para dibujar el sol es:
El sol debe ser dibujado con
,*,0,1y3, de esta manera:Una simetría habría ayudado a reducir el tamaño de bytes de esta parte, pero no es tan importante. No explicaré la línea completa, pero el patrón
*****se usa para generar fácilmente la última línea, y el patrón**1110333**se ha tomado como referencia para generar las otras 3 líneas que contienen0,1y3.Es importante usarlo
0,1y3para las partes solares que se pueden llenar (vea las siguientes explicaciones). Dibujar este sol toma 55 bytes , y probablemente se pueda jugar golf con algunos trucos.Llenando el sol de acuerdo a
nPara llenar correctamente el sol, las instrucciones a seguir son:
n = 0, entonces0,1y3(todos los dígitos) deben reemplazarse conn = 1, entonces1debe ser reemplazado con, los otros dígitos con*n = 2, entonces0,1y3(todos los dígitos) deben reemplazarse con*n = 3, entonces3debe ser reemplazado con, los otros dígitos con*n = 4, entonces0,1y3(todos los dígitos) deben reemplazarse con(liken = 0)A partir de eso, podemos inferir que las sustituciones requeridas son:
( primera sustitución )*( segunda sustitución )Tenga en cuenta que "algunos dígitos" pueden significar "sin dígitos" (
n = 2por ejemplo). Y "todos los demás dígitos" también pueden representar "sin dígitos", si todos los dígitos ya han sido reemplazados por la primera sustitución (n = 0por ejemplo).La segunda sustitución se puede escribir fácilmente en 11 bytes :
La primera sustitución depende
n, por lo que primero tenemos que calcular qué dígitos se van a reemplazar. Si los caracteres reemplazados se almacenan en el registroa, el comando de sustitución también se escribe en 11 bytes :<C-r>ase reemplaza por el contenido del registroacuando se escribe el comando.Para calcular el valor de
a, siguiendo las instrucciones anteriores, el algoritmo es (en pseudocódigo):"X"La cadena se utiliza porque cuandon = 2no se reemplazan los dígitos por espacios. Aquí se puede usar cualquier cadena que no sea el sol, siempre que la primera sustitución no haga nada.Esto podría escribirse en 31 bytes :
Solución
Ponga todas estas partes en el orden correcto y tendrá la solución:
fuente
PHP, 114 + 1 bytes
+1 byte para
-R. Gracias @Neil por la indirecta cambiante.usa guión bajo para
*, indexado a 0. Ejecutar como tubería-nRo probarlo en línea .Requiere PHP 5.5 o posterior:
PHP anterior no comprende la indexación de cadenas literales (error de análisis);
PHP 7.1 se queja de valores no numéricos (reemplace
+$ccon$c>0para arreglar).fuente
" _"[$c*2>>$argn&1]evita los parámetros de cambio negativos si lo necesitas.Python 2 ,
170169 bytesPruébalo en línea!
fuente
Python 2 , 181 bytes
Pruébalo en línea!
Enfoque muy ingenuo,
trabajando en golfin 'nvm.fuente
Java 8,
225213211 bytesPruébalo aquí
fuente
05AB1E , 46 bytes
Pruébalo en línea!
fuente