Requisitos
Por el bien del desafío, definamos una unidad :
Una unidad se define como cualquier punto que componga la cuadrícula en la que se dibuja la cara (píxeles para la pantalla, caracteres para el arte ASCII, etc.).
Los requisitos mínimos para la cara son:
Una cara sonriente se compone de una forma que se asemeja a un círculo (no necesariamente perfecto) de cualquier radio. Debe haber al menos 1 unidad para cada uno de los dos ojos y al menos 2 unidades para la boca. Tanto los ojos como la boca deben estar dentro de la forma de la cara. La boca puede orientarse como quieras (feliz, triste, indiferente, etc.).
Aquí hay un ejemplo de la salida:
0 0 0 . . .
0 . . 0 . o o .
0 --- 0 . \_/ .
0 0 0 . . .
Metas
Por supuesto, el objetivo principal es encontrar el código más corto posible, pero el arte también es importante.
Ganador
El ganador se elige en función de la cantidad de votos de los usuarios, en, al menos, los próximos 5 días.
fuente
alt + 1
yalt + 2
produciré ☺ y ☻ respectivamente. En aras de la discusión, consideraré que laalt
tecla presiona un carácter y llamaré a eso 2 caracteres.Respuestas:
Javascript, 340
Javascript, 283
versión optimizada (con algunas mejoras y sin espacios en blanco innecesarios)
Bueno ... tal vez no sea tan corto como te gustaría, pero no es convencional. Se ve mejor cuando su navegador está maximizado. Realmente disfruté tu pregunta! Si desea aumentar los detalles, simplemente reduzca
d
ligeramente la variable.editar: Desafortunadamente no puedo ejecutarlo en jsfiddle
pero puedes pegarlo en la consola Javascript en cualquier navegador. Ah, y habilite las ventanas emergentes en la página :).edit2: puede ejecutarlo haciendo un nuevo archivo html y pegar el código en él:
Luego, cuando lo ejecute y no ocurra nada, simplemente habilite las ventanas emergentes y vuelva a cargar la página. Además pego
fuente
HTML,
200141 caracteresGracias a la disponibilidad , he reducido esto a 141 caracteres :
Aquí está el HTML original:
Funciona mejor en pantallas pequeñas:
fuente
Brainfuck: 583 caracteres (sin contar espacios en blanco)
Salida:
fuente
SVG
Renders como este:
fuente
Rubí, 224
Douglas Adams estaría horrorizado. :-PAGS
Salida:
Ruby, 110
La misma técnica Menos código Menos ingenioso Parece que alguien derritió una carita de plástico. : -}
Salida:
fuente
Q ASCII básico, 134 (sin optimizar)
Esta respuesta engaña totalmente al usar el carácter ASCII 1 para su carita sonriente. Sin embargo, a diferencia de las respuestas BF y "texto sin formato", en realidad obedece las reglas al hacer arte ASCII basado en los píxeles del carácter sonriente, en lugar de simplemente imprimir el carácter como su solución completa. La versión no optimizada representa cómo el IDE de QBasic guarda los archivos. El IDE está "ayudando" arreglando la sintaxis para nosotros y agregando mucho espacio en blanco donde "se necesita".
Salida:
QBasic ASCII, 80 (optimizado)
Esta es una versión optimizada del primer ejemplo de código, que aún se carga en QBasic. Cosas que se hicieron:
CHR$(1)
con una cadena que contiene el carácter real. (Aquí se ilustra con un carácter Unicode correspondiente. Si realmente desea probar el código, reemplácelo con un carácter ASCII real 1 usando un editor hexadecimal).PRINT
con?
, como la tradición BÁSICO permite.IF
línea con una línea que imprime caracteres en función del valor de píxel de origen. Será 0 o 3. 0 es el color negro. El carácter 0 imprime un carácter nulo que se trata como un espacio. 3 es el color blanco en la paleta de 4 colores de CGA. El carácter ASCII 3 es un corazón.Salida:
QBasic gráfica, 83 (espacio en blanco optimizado)
Pero espera, aquí te preguntas, ¿no puedes usar los comandos gráficos integrados de QBasic? Claro, pero eso en realidad no le ahorrará bytes, debido a la verbosidad del idioma. Pero tiene una función incorporada para dibujar solo un arco circular entre dos ángulos dados, lo cual es bueno. Los ángulos se dan en radianes, y
4
y5.4
se aproximan a un arco de círculo de forma simétrica en torno aπ*3/2
, o si se ha unido el lado bueno ,τ*3/4
.Salida:
Nota: Los tamaños en esta respuesta indican lo grande que es el archivo, en bytes.
fuente
APL, 97 caracteres / bytes *
Funciona calculando algunas ecuaciones circulares. Probado en GNU APL .
Salida ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ *: APL se puede escribir en su propio juego de
caracteres de un solo byte (heredado) que asigna símbolos APL a los valores superiores de 128 bytes. Por lo tanto, para fines de puntuación, un programa de N caracteres que solo usa caracteres ASCII y símbolos APL puede considerarse que tiene una longitud de N bytes.
fuente
Bash, 63 caracteres
Salida:
Arte:
Vacas
fuente
Bash, 22 caracteres
Salida de muestra:
Editar: esto podría ser más golf como lo sugieren varias personas. La versión autónoma más corta encontrada hasta ahora es:
(gracias nitro2k01)
fuente
curl -L x.co/3WG0m
. Podría optimizarse aún más si tenemos una, el nombre de host de un carácter local, que también devolver los datos directamente (eliminando el-L
interruptor necesario para seguir redirecciones.)Z
que apunta a un servidor que aloja el archivo.Python
247230227 Personajes - y una versión más lindaPersonajes de Python 243: uso de colores
fuente
C ++ - 122 caracteres sin espacios innecesarios
Esto es lo más realista que se me ocurrió:
Para aquellos de ustedes que se están perdiendo, esto crea esto:
fuente
return 0;
no se requiere en ISO C ++ :)fuente
PHP, muchos otros idiomas ... - 1601 caracteres
Fuente sonriente: Asciiworld.com: Smiley
fuente
html, css
Sé que no es una codificación corta ni real, pero todavía quería publicar esto
jsFiddle
fuente
#d{border-radius:20px/10px;}
. O con#d{border-radius:0 0 20px 20px/0 0 10px 10px;}
. O con#d{height:10px;border-radius:0 0 20px 20px/0 0 10px 10px;margin-top:10px;}
.Rebmu , 24 caracteres
Oh, la humanidad mínima . :-) Menos impresionante programa de Rebmu todavía, por lo que incrustar deliberadamente pHp como un tributo a la píldora azul en el mundo de la programación :
H{ -- }pHp{|..|^/|\/|}pH
Ejecución:
Explicación
Rebmu es solo un dialecto de Rebol . Hereda las restricciones de análisis, utiliza términos abreviados sin espacios separados por corridas de mayúsculas. Tiene un tratamiento especial cuando la primera corrida se capitaliza vs no capitalizada.
(Por lo tanto, en lugar de separar términos como
AbcDefGhi
este, puede usar la diferencia entreABCdefGHI
yabcDEFghi
para extraer un poco de información. Las secuencias cuyas ejecuciones comienzan en mayúsculas se separan de manera que el primer término representa una "palabra clave", a menudo interpretada contextualmente como un deseo para una tarea ver video )Si desea traducir esto a Rebol nativo, debe aceptar cosas como esa, comienza con una H mayúscula para significar que en realidad es una
h:
y no unah
. La fuente es, por lo tanto, análoga a:Asigna la cadena
--
a h (usando delimitadores de cadena asimétricos porqueprint {"Isn't it nice," said {Dr. Rebmu}, "when you have asymmetric multi-line string delimiters with no need for escaping matched nested pairs, and that accept apostrophes and quotes too?"}
Imprime h una vez, imprime otra cadena donde
^/
está la secuencia de escape para la nueva línea (los cuidados se usan menos en el software que las barras invertidas que aparecen a menudo en las rutas) , imprime h nuevamente.fuente
JavaScript
262251Editar: agregó mejores ojos.
Imprime una cara sonriente en la consola.
Podría perder bastantes caracteres para simplificar mi máscara de bits e imprimir una cara menos bonita, o usar una ecuación circular en lugar de una elipse para explicar el espaciado entre caracteres, pero ese no es el espíritu.
Puede cambiar la
r
variable para cambiar el tamaño y obtener una cara más o menos detallada; cualquier número>=7 && <=99
dará un buen resultado y se mantendrá dentro del límite de caracteres.Legible por humanos:
Salida:
Es probable que mi primer juego de golf tenga algunas mejoras.
fuente
Perl, 106 caracteres
Es una línea de Perl, solo tiene que C&P en el símbolo del sistema, siempre que el
Acme::EyeDrops
módulo Perl ya esté instalado en la máquina.Otra forma, una carita sonriente con una cara
Otra forma más, un smiley con poner una cara al revés,
fuente
Bash + ImageMagick: 137 caracteres
Salida de muestra:
Pero como este es un desafío de arte ascii ...
Bash + ImageMagick: 172 caracteres
Salida de muestra:
fuente
GolfScript, 27
Esto genera el segundo ejemplo exactamente como se indica.
La primera se puede hacer de la misma manera, pero creo que la segunda se ve mejor :)
fuente
Brainf *** - 2
Impresiones
☺
o valor ascii 1. (podría no funcionar con algunas plataformas)fuente
Bash - one liner: 442 caracteres
Ejemplo de salida: (llamado por
m 8
)Un poco loco, pero elegí usar un diamante en lugar de un círculo. Los ojos están cubiertos por gafas de seguridad.
BASH - 252 caracteres (gracias @manatwork)
fuente
s(){ (($1>1))&&echo -n "${2:- }"&&s $[$1-1] $2;};m(){ ((t=2*$1));while ((t=t-1));do v=$[$1-t];l=$[${v#-}+1];s $l;q=$[2*($1-l)];w=`s $q`;((l>t&&l<t+3&&q>2))&&w=" `s $[q-2] 0` ";((t>$1+1&&q>3))&&{ g=`s $[(q-1)/2] 0`;w=" $g $g ";};echo "+${w:+$w+}";done;}
. O 245 si abandonas la función my pones el código en un archivo de script. Probablemente se puede reducir aún más ajustando los cálculos, pero no tengo tiempo para eso ahora.HTML + CSS, 83
captura de pantalla (usando firefox):
lástima que llegue demasiado tarde con mi respuesta (obtuve +10 rep también bastante tarde ...)
fuente
border-radius:50%
un solo<hr>
: dabblet.com/gist/8472397
: jsfiddle.net/T9BdL/2GolfScript, 18
Este programa utiliza algunos valores codificados en binario que aparecen como caracteres extraños / inválidos en un editor de texto.
Aquí está el volcado hexadecimal:
Nota: no funciona en un entorno local UTF-8, pero funciona bien con ISO-8859-1, por ejemplo.
La versión expandida con caracteres escapados:
Salida:
Para una salida más agradable, puede reemplazar el bloque con el
{2base{38+}%n}
que la versión binaria llega a 23 bytes. Versión ampliada:Salida:
fuente
JavaScript
Este código debe ejecutarse en
f12
esta página:Salida:
fuente
CJam, 18
Decidí ir por un código corto ... Pruébalo aquí .
Explicación
Esto explota la simetría de la cara sonriente que diseñé.
Salida
fuente
uu
de la sonrisa es una opción, si usted va para que "gato" tipo de sonrisa ...Pitón
Salida:
fuente
Python, 42
fuente
HTML 5: 321 caracteres
Violín: http://jsfiddle.net/wfNGx/
Fuente: http://www.codecademy.com/courses/web-beginner-en-SWM11/0/1
fuente
Comando de shell o incorporado
Dependiendo del sabor de su shell o conjunto de comandos,
echo
puede o no interpretar caracteres de control con o sin-e
... (... ¡y exijo que pueda o no ser Vroomfondel!) Solo intente ... y si todo lo demás falla, usarprintf
debería ser una apuesta segura ...fuente
C 178 caracteres:
fuente (espacio en blanco agregado: todo se puede eliminar excepto en
int x
salida:
fuente