Exigences
Pour relever le défi, définissons une unité :
Une unité est définie comme tout point composant la grille dans laquelle le visage est dessiné (pixels pour l'écran, caractères pour l'art ASCII, etc.).
Les exigences minimales pour le visage sont:
Un visage souriant est composé d'une forme qui ressemble à un cercle (pas nécessairement parfait) de tout rayon. Il doit y avoir au moins 1 unité pour chacun des deux yeux et au moins 2 unités pour la bouche. Les yeux et la bouche doivent être dans la forme du visage. La bouche peut être orientée comme vous le souhaitez (heureuse, triste, indifférente, etc.).
Voici un exemple de la sortie:
0 0 0 . . .
0 . . 0 . o o .
0 --- 0 . \_/ .
0 0 0 . . .
Buts
Bien entendu, l’objectif principal est de proposer le code le plus court possible, mais l’ art est également important.
Gagnant
Le gagnant est choisi en fonction du nombre de votes des utilisateurs, au moins dans les 5 prochains jours.
la source
alt + 1
etalt + 2
produirai ☺ et ☻ respectivement. Par souci d'argumentation, je considérerai que laalt
touche appuie sur un caractère et appelle 2 caractères.Réponses:
Javascript, 340
Javascript, 283
version optimisée (avec quelques améliorations et sans espaces blancs inutiles)
Bien… peut-être que ce n'est pas aussi court que vous voudriez mais c'est non conventionnel à coup sûr. Il semble mieux lorsque votre navigateur est maximisé. J'ai vraiment apprécié votre question! Si vous voulez augmenter les détails, réduisez
d
légèrement la variable.edit: Malheureusement, je ne peux pas l’exécuter sur jsfiddle,
mais vous pouvez le coller sur la console Javascript dans le navigateur Aby. Oh, et activer les popups sur la page :).edit2: Vous pouvez l'exécuter pour créer un nouveau fichier html et y coller le code:
Ensuite, lorsque vous l'exécutez et que rien ne se passe, activez simplement les fenêtres contextuelles et rechargez la page. En plus je colle
la source
HTML,
200141 caractèresMerci d'avoir profité , j'ai réduit ce nombre à 141 caractères :
Voici le code HTML original:
Fonctionne mieux sur de petits écrans:
la source
Brainfuck: 583 caractères (sans compter les espaces)
Sortie:
la source
SVG
Renders comme ceci:
la source
Ruby, 224
Douglas Adams serait horrifié. :-P
Sortie:
Ruby, 110
Même technique. Moins de code. Moins astucieux. On dirait que quelqu'un a fondu un smiley en plastique. : -}
Sortie:
la source
QBasic ASCII, 134 (non optimisé)
Cette réponse trompe totalement en utilisant le caractère ASCII 1 pour son smiley. Cependant, contrairement aux réponses BF et "texte brut", il obéit aux règles en créant un art ASCII basé sur les pixels du caractère souriant, plutôt que d'imprimer simplement le caractère en tant que solution complète. La version non optimisée représente la manière dont l'EDI de QBasic enregistre les fichiers. L'EDI est "utilement" en train de corriger la syntaxe pour nous et d'ajouter beaucoup d'espaces où "nécessaire".
Sortie:
QBasic ASCII, 80 (optimisé)
Il s'agit d'une version optimisée du premier exemple de code, qui se charge toujours dans QBasic. Des choses qui ont été faites:
CHR$(1)
par une chaîne contenant le caractère réel. (Ici illustré avec un caractère Unicode correspondant. Si vous voulez réellement essayer le code, veuillez le remplacer par un vrai caractère ASCII 1 à l'aide d'un éditeur hexadécimal.)PRINT
par?
, comme le permet la tradition BASIC.IF
ligne par une ligne imprimant des caractères en fonction de la valeur de pixel source. Ce sera soit 0 ou 3. 0 est la couleur noire. Caractère 0 imprime un caractère nul qui est traité comme un espace. 3 est la couleur blanche de la palette 4 couleurs de CGA. Le caractère ASCII 3 est un coeur.Sortie:
QBasic graphique, 83 (optimisé pour les espaces)
Mais attendez, je vous le demande, vous ne pouvez pas utiliser les commandes graphiques intégrées de QBasic? Bien sûr, mais cela ne vous épargnera aucun octet, à cause de la verbosité du langage. Mais il a une fonction intégrée pour ne dessiner qu'un arc de cercle entre deux angles donnés, ce qui est agréable. Les angles sont donnés en radians, et
4
et se5.4
rapproche d' un arc de cercle symétriquement centrée autourπ*3/2
, ou si vous avez rejoint le bon côté ,τ*3/4
.Sortie:
Remarque: Les tailles de cette réponse indiquent la taille du fichier, en octets.
la source
APL, 97 caractères / octets *
Cela fonctionne en calculant quelques équations de cercle. Testé sur GNU APL .
Sortie ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
*: APL peut être écrit dans son propre jeu de caractères codé sur un octet (existant) qui mappe les symboles APL sur les valeurs supérieures à 128 octets. Par conséquent, aux fins de la notation, un programme de N caractères qui utilise uniquement des caractères ASCII et des symboles APL peut être considéré comme ayant une longueur de N octets.
la source
Bash, 63 caractères
Sortie:
Talent artistique:
Vaches.
la source
Bash, 22 caractères
Exemple de sortie:
Edit: cela pourrait être joué plus loin comme suggéré par plusieurs personnes. La version autonome la plus courte trouvée à ce jour est:
(merci nitro2k01)
la source
curl -L x.co/3WG0m
. Pourrait être optimisé si nous avions un nom d’hôte local à un caractère qui renvoie également les données directement (ce qui élimine le-L
commutateur nécessaire pour suivre les redirections.)Z
pointant vers un serveur hébergeant le fichier.Python
247230227 Caractères - et une version plus jolieCaractères Python 243 - Utilisation des couleurs
la source
C ++ - 122 caractères sans espaces inutiles
C’est le plus réaliste que je puisse trouver:
Pour ceux d'entre vous qui manquent, cela crée ceci:
la source
return 0;
n'est pas requis dans ISO C ++ :)la source
PHP, beaucoup d'autres langues ... - 1601 caractères
Smiley source: Asciiworld.com: Smiley
la source
html, css
Je sais que le codage n’est ni court ni réel, mais je voulais quand même poster ce message.
jsFiddle
la source
#d{border-radius:20px/10px;}
. Ou avec#d{border-radius:0 0 20px 20px/0 0 10px 10px;}
. Ou avec#d{height:10px;border-radius:0 0 20px 20px/0 0 10px 10px;margin-top:10px;}
.Rebmu , 24 caractères
Oh, l' humanité minimale . :-) Le programme Rebmu le moins impressionnant à ce jour, incorporant si volontairement pHp en hommage à la pilule bleue dans le monde de la programmation :
H{ -- }pHp{|..|^/|\/|}pH
Exécution:
Explication
Rebmu est juste un dialecte de Rebol . Il hérite des contraintes d'analyse, utilise des termes abrégés sans espaces séparés par des suites de majuscules. Il bénéficie d'un traitement spécial lorsque le premier cycle est capitalisé ou non capitalisé.
(Ainsi, plutôt que de séparer les termes,
AbcDefGhi
il peut utiliser la différence entreABCdefGHI
etabcDEFghi
pour extraire un morceau d’information. Les séquences dont les séquences commencent par des majuscules sont séparées, de sorte que le premier terme représente un "mot de réglage!", Souvent interprété contextuellement comme un désir. pour une mission voir vidéo )Si vous voulez traduire cela en Rebol natif, vous devez accepter des choses comme celle-ci. Cela commence par un H majuscule qui signifie en réalité un
h:
et non unh
. La source est donc analogue à:Assigne la chaîne
--
à h (en utilisant des délimiteurs de chaîne asymétriques carprint {"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 une fois, imprime une autre chaîne contenant
^/
la séquence d'échappement de la nouvelle ligne (carets étant moins utilisés dans les logiciels que les barres obliques inverses apparaissant souvent dans les chemins) , imprime à nouveau h.la source
JavaScript
262251Edit: ajouté de meilleurs yeux.
Imprime un visage souriant dans la console.
Pourrait perdre quelques caractères afin de simplifier mon masque binaire et d’imprimer un visage moins joli, ou d’utiliser une équation de cercle au lieu d’une ellipse pour rendre compte de l’espacement des caractères - mais ce n’est pas l’esprit.
Vous pouvez changer la
r
variable pour changer la taille et obtenir un visage plus ou moins détaillé; n'importe quel nombre>=7 && <=99
donnera un bon résultat et restera dans la limite de caractères.Lisible par l'homme:
Sortie:
Mon premier match de golf sera probablement une amélioration.
la source
Perl, 106 caractères
C’est un Perl oneliner, il suffit de le commander sur invite de commande, à condition que le
Acme::EyeDrops
module Perl soit déjà installé sur la machine.Une autre façon, un smiley avec Tirant un visage
Encore une autre façon, un smiley avec Tirant un visage à l'envers,
la source
Bash + ImageMagick: 137 caractères
Exemple de sortie:
Mais comme il s’agit d’un défi artistique ascii …
Bash + ImageMagick: 172 caractères
Exemple de sortie:
la source
GolfScript, 27
Ceci sort le 2ème exemple exactement comme donné.
La première peut être faite de la même façon, mais je pense que la deuxième est plus jolie :)
la source
Brainf *** - 2
Imprime
☺
ou ascii value 1. (pourrait ne pas fonctionner avec certaines plates-formes)la source
Bash - une doublure: 442 caractères
Exemple de sortie: (appelé par
m 8
)Un peu fou, mais j'ai choisi d'utiliser un diamant au lieu d'un cercle. Les yeux sont couverts par des lunettes de protection.
BASH - 252 caractères (merci @manatwork)
la source
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;}
. Ou bien si vous abandonnez la fonction m et placez le code dans un fichier script. On peut probablement réduire encore davantage en peaufinant les calculs, mais je n’ai pas le temps de le faire pour le moment.HTML + CSS, 83
capture d'écran (en utilisant firefox):
dommage que je sois trop en retard avec ma réponse (+10 répétitions aussi assez tard ...)
la source
border-radius:50%
et un single<hr>
: dabblet.com/gist/8472397
: jsfiddle.net/T9BdL/2GolfScript, 18 ans
Ce programme utilise des valeurs codées en binaire qui apparaissent sous forme de caractères étranges / non valides dans un éditeur de texte.
Voici le vidage hexadécimal:
Remarque: cela ne fonctionne pas dans les paramètres régionaux UTF-8, mais fonctionne parfaitement avec ISO-8859-1 par exemple.
La version développée avec des caractères d'échappement:
Sortie:
Pour une sortie plus agréable, vous pouvez remplacer le bloc avec
{2base{38+}%n}
lequel porte la version binaire à 23 octets. Version étendue:Sortie:
la source
JavaScript
Ce code doit être exécuté
f12
sur cette page:Sortie:
la source
CJam, 18 ans
J'ai décidé d'aller chercher un code court ... Essayez-le ici .
Explication
Cela exploite la symétrie du visage souriant que j'ai créé.
Sortie
la source
uu
pour le sourire est une option, si vousPython
Sortie:
la source
Python, 42
la source
HTML 5: 321 caractères
Fiddle: http://jsfiddle.net/wfNGx/
Source: http://www.codecademy.com/courses/web-beginner-en-SWM11/0/1
la source
Commande shell ou intégrée
Selon la saveur de votre shell ou de votre jeu de commandes,
echo
interprétez ou non les caractères de contrôle avec ou sans-e
... (... et j'exige que je sois ou non Vroomfondel!). Essayez ... et si tout le reste échoue, utiliserprintf
devrait être une valeur sûre ...la source
C 178 caractères:
source (espace ajouté - tout peut être supprimé sauf à
int x
sortie:
la source