Jumping Jacks à asciimation


28

C'est mon premier défi, donc je reste assez simple.

Si vous avez déjà tapé telnet towel.blinkenlights.nlsur votre ligne de commande et appuyé sur Entrée, vous aurez connu la joie de l'asciimation. L'asciimation consiste, tout simplement, à faire une animation avec l'art ascii. Aujourd'hui, nous allons faire une asciimation très basique d'une personne faisant des sauts.

Il y aura deux images ascii que nous assemblerons en une seule asciimation. Numéro 1:

_o_
 0
/ \

Numéro 2:

\o/
_0_
<blank line>

Notez que le second a une ligne vide à la fin.

Votre programme doit donc effectuer ces étapes:

  1. Effacez l'écran de la console.
  2. Imprimez l'image d'art ascii correcte.
  3. Définissez un drapeau ou quelque chose pour que vous sachiez faire l'autre image la prochaine fois.
  4. Attendez un instant (environ une seconde).
  5. Continuez à 1.

Règles

  • Votre programme doit être une boucle infinie (théoriquement).
  • Le langage de programmation que vous utilisez doit avoir été créé avant la publication de ce défi.
  • C'est le , donc le code le plus court en octets gagne.
  • Des échappatoires standard s'appliquent.

Prendre plaisir!


Peut-il y avoir des espaces sur la <ligne vierge>?
Jakube

1
Cela doit-il être indépendant de la plate-forme car la commande clear Linux ( clear) est différente de celle de Windows ( cls)
Beta Decay

1
La ligne vierge est-elle juste pour expliquer le positionnement? Si l'impression à partir du haut de l'écran de sorte que la ligne vierge ne fait aucune différence visible, peut-elle être omise?
trichoplax

@Jakube oui, il peut y avoir des espaces.
bitsnbites

1
@trichoplax oui. La ligne vierge est juste pour souligner que la tête doit rester dans la même position.
bitsnbites

Réponses:


29

CJam, 51 45 42 38 36 octets

"c\o/
_0_""^[c_o_
 0
/ \^["{_o\6e4m!}g

Ce qui précède utilise la notation caret; la séquence ^[est en fait le caractère ASCII avec le point de code 27.

J'ai emprunté la séquence d'échappement ( ^[c) à la réponse de @DomHastings ( avec sa permission ) pour économiser 4 octets.

Vérification

Vous pouvez recréer le fichier comme ceci:

base64 -d > jj.cjam <<< ImNcby8KXzBfIiIbY19vXwogMAovIFwbIntfb1w2ZTRtIX1n

Pour exécuter le code, téléchargez l' interpréteur CJam et exécutez ceci:

java -jar cjam-0.6.5.jar jj.cjam

Cela fonctionnera sur n'importe quel terminal qui prend en charge console_codes ou un sous-ensemble approprié. 1

Comment ça marche

e# Push both jumping jacks on the stack.

"c\o/
_0_"

"^[c_o_
 0
/ \^["

e# When chained together, they contain two occurrences of the string "\ec",
e# which resets the terminal. Encoding the ESC byte in the second string
e# eliminates the need two escape a backslash before the string terminator.

{         e# Do:
  _o      e#   Copy the jumping jack on top of the stack and print the copy.
  \       e#   Swap the order of the jumping jacks.
  6e4m!   e#   Calculate the factorial of 60,000 and discard the result.
          e#   This takes "about a second".
}g        e# Since the discarded factorial was non-zero, repeat the loop.

1 Les prises sautantes seront plus belles si vous masquez le curseur du terminal avant d'exécuter le programme. Dans Konsole, par exemple, vous pouvez définir la couleur du curseur pour qu'elle corresponde à la couleur d'arrière-plan. Cela doit être fait via les paramètres de votre terminal, car ^[créinitialise le terminal.


36
+1 juste pour Calculate the factorial of 60,000 and discard the result. This takes "about a second".;)
ETHproductions

Peut 2Fm*- être est une bonne alternative d'un octet plus courte 6e4m!pour "un fonctionnement insensé qui renvoie une valeur vraie et prend environ une seconde pour calculer".
Lynn

@Mauris J'avais essayé quelque chose de similaire avec e!, mais ils semblent être mémorisés. Après la première itération, le pauvre Jack fait une crise cardiaque ...
Dennis

10

Pyth - 41 40 39 octets

.VZ"\x1b[H\x1b[J"@c"_o_
 0
/ \\\o/
_0_"Tb .p9

(Je compte les caractères \x1bcomme un octet car SO détruit les caractères spéciaux).

Clairement, ne fonctionne pas en ligne car c'est a) une boucle infinie et b) utilise des codes d'échappement terminaux.

#                Infinite loop
 "..."           Print escape sequences to clear screen
 @               Modular indexing
  c     T        Chop at index ten into the constituent frames
   "..."         Frames 1 & 2 concatenated (Pyth allows literal newlines in strings)
  ~              Post assign. This is an assign that returns the old value.
   h             Increment function. Putting it after an assign makes it augmented assign.
   Z             Variable auto-initialized to zero.
 .p9             Permutations(range(9), 9). Takes about a second on my machine.

J'ai été surpris de découvrir que l'augmentation-affectation fonctionnait avec la post-affectation. Pyth est génial.


utiliser .V0comme boucle infinie
Jakube

Vous pouvez peut-être enregistrer un octet maintenant que l'OP a confirmé que la ligne vierge n'a pas besoin d'être explicitement imprimée
trichoplax

@Jakube qui ne semble rien sauver.
Maltysen

Votre explication ne correspond pas à votre code: P
Beta Decay

9

QBasic, 58 octets

Testé sur QB64 .

CLS
?"_o_"
?0
?"/ \"
SLEEP 1
CLS
?"\o/"
?"_0_"
SLEEP 1
RUN

La bonne langue pour le problème peut être étonnamment compétitive, même si elle est généralement verbeuse. Le ?raccourci pour PRINTaide aussi, bien sûr. CLSest cl oreille de l'creen; RUNsans arguments redémarre le programme, qui est le moyen le plus court pour obtenir une boucle infinie.

La seule autre astuce ici est l'impression 0pour la section médiane de la première photo. QBasic place un espace devant (et après) les valeurs numériques non négatives lors de leur impression, ce qui entraîne 0 . Plus de 3 caractères enregistrés " 0".

Je peux également souligner que le retard dans ce code est littéralement une seconde et ne dépend pas de la machine. ; ^ P


2
Je me souviens avoir été ennuyé par les espaces environnants lors de l'impression de nombres dans différentes versions de BASIC. C'est bien de voir qu'il y a un bon usage pour ça ...
trichoplax

7

Perl (* nix) , 54 octets

sleep print"\x1bc",$-++%2?'\o/
_0_
':'_o_
 0
/ \
'while 1

( \x1best compté comme 1 octet mais échappé pour un test plus facile.) Ce qui précède a été testé avec Bash et raccourci d'un autre octet grâce à @Dennis !

Perl (Windows) , 56 octets

sleep print"\x1b[2J",$-++%2?'\o/
_0_
':'_o_
 0
/ \
'while 1

Merci à @Jarmex pour ses tests et ses conseils!


2
Peur que cela ne fonctionne pas sous Windows, mais vous ne pouvez vous en éloigner que d'un octet de plus avec print"@[2J":, en remplaçant le @ à l'intérieur des guillemets par ASCII 27 (à des fins de test, cela print"\033[2J"pourrait être plus facile).
Jarmex

Vous pouvez remplacer \epar un octet ESC littéral. - Ça vous dérangerait si j'utilisais l' \ecastuce dans ma réponse?
Dennis

@Dennis bien sûr, car ce "\e"n'est qu'un raccourci pour cela de toute façon. Allez-y!
Dom Hastings du

6

Javascript (ES6), 109 93 79 70 octets + HTML, 12 10 octets = 120 106 91 80 octets

Assez simple. Utilise des chaînes de modèle pour stocker les images et bascule une valeur booléenne pour déterminer laquelle utiliser.

REMARQUE: cette solution peut ne pas être valide, car elle n'utilise pas réellement de console. Cependant, je ne pense pas qu'il soit possible d'effacer une console de navigateur en utilisant JS, du moins pas en utilisant Firefox.

a=!1,setInterval(_=>O.innerHTML=(a=!a)?`_o_ 
 0
/ \\`:`\\o/ 
_0_`,1e3)
<pre id=O>


1
@orlp Code crée l'homme animé. (Chrome @ Windows). Cependant, il s'agit d'une interface graphique plutôt que d'une console. Peut ne pas être considéré comme valide en tant que tel.
Justin

3
1. Sur mon ordinateur, cela fonctionne bien dans Firefox mais pas dans Chrome, donc je suppose que vous devriez le nommer ECMAScript 6 pour éviter toute confusion. 2. Si vous mettez <pre id="a"/>la partie HTML, vous n'avez pas besoin des <pre>balises dans le code.
Dennis

1
Ou, mieux encore, débarrassez-vous du HTML et remplacez-le document.getElementById`a` par document.body.
NinjaBearMonkey

1
J'ai obtenu 87 octets en faisant le HTML <pre>et en le faisant document.all[4]. Cela vous permet de vous débarrasser de la chaîne wrapper et de la créer innerHTML=a?`...`:`...`}.
NinjaBearMonkey

1
Cela a cessé de fonctionner pour moi sur Chrome
Beta Decay

5

Bash, 86 84 octets

while sleep 1;do printf "\e[2J_o_\n 0\n/ \\";sleep 1;printf "\r\e[2J\o/\n_0_\n";done

3

Python 2, 99 octets

Fonctionne sur Windows

import os,time
g=0
while 1:os.system("cls");print["\\o/\n_0_","_o_\n 0 \n/ \\"][g];time.sleep(1);g=~g

Pour les machines UNIX, ajoutez deux octets:

import os,time
g=0
while 1:os.system("clear");print["\\o/\n_0_","_o_\n 0 \n/ \\"][g];time.sleep(1);g=~g

3

awk - 95 92 86 84 83

END{
    for(;++j;)
        system("clear;printf '"(j%2?"_o_\n 0\n/ \\":"\\o/\n_0_")"';sleep 1")
}

Belle séance d'entraînement: D Je me demandais simplement si c'était faisable. Pas de prix à gagner cependant ...;)

Si quelqu'un veut tester cela: après avoir exécuté le programme, vous devez appuyer sur Ctrl + D (fin de saisie) pour démarrer réellement le bloc END. Pour y mettre fin, je dois utiliser Ctrl + Z.

J'ai également ceci, qui n'est que de 74 octets, mais cela commence par une pause d'une seconde, ce qui n'est pas le comportement souhaité, je pense

END{
    for(;1;print++j%2?"_o_\n 0\n/ \\":"\\o/\n_0_")
        system("sleep 1;clear")
}

1
Le sommeil mesure-t-il des intervalles de trois secondes?
trichoplax

Oh mon Dieu. merci pour l'indice :) Ou si ce n'était pas un indice: non, cela n'a dormi que 0,33 seconde.
Cabbie407

Je ne sais pas awk mais il semblait probable que cela mesurerait en quelques secondes. :)
trichoplax

1
Ça a l'air tellement plus drôle si ça bouge plus vite, que j'ai oublié le golf là-bas; D
Cabbie407

la commande sleep n'est pas awk, c'est bash, btw
Cabbie407

2

Lot - 82 octets

Modifier: la commande de temporisation a été désactivée et la nouvelle ligne supplémentaire a été supprimée.

cls&echo _o_&echo  0&echo / \&timeout>nul 1&cls&echo \o/&echo _0_&timeout>nul 1&%0

J'ai vu 2 autres réponses de lot similaires, donc je ne voulais pas vraiment poster ceci, mais c'est mon tout premier golf.


1
Mais une mise à nu timeout 1mettra beaucoup de sortie non demandée sur la console
edc65

Certes, j'avais une sortie supplémentaire. Édité.
Peter Lenkefi

1
>mulc'est peut-être une erreur de type, ou peut-être que vous ne savez pas ce que nulc'est. en.wikipedia.org/wiki/Null_device
edc65

@ edc65 Les backdraws du copier-coller et non des tests. Merci!
Peter Lenkefi

2

BBC BASIC, 75 octets

Notez que la tokenisation le réduit à 75 octets. L'espace est ajouté par l'EDI.

      g=0
   10 IFg=0THENPRINT"\o/":PRINT"_0_"ELSEPRINT"_o_":PRINT" 0 ":PRINT"/ \"
      g=1-g:WAIT 100CLS:GOTO10

Propriétés indiquant la taille du programme


2

JavaScript ES6, 100 95 octets

(f=_=>{console.log(_?`_o_
 0
/ \\`:`\\o/
_0_`)
(b=setTimeout)(q=>(clear(),b(b=>f(!_))),1e3)})()

Se connecte à la console. Testé sur Safari Nightly


2

Lot, 151 130 118 octets

cls
@echo _o_
@echo  0
@echo / \
@PING -n 2 127.0.0.1>NUL
cls
@echo \o/
@echo _0_
@PING -n 2 127.0.0.1>NUL
%0

Vous pourrez peut-être économiser quelques octets maintenant que l'OP a confirmé que la ligne vierge n'a pas besoin d'être explicitement imprimée
trichoplax

Vous devriez pouvoir jouer au golf avec 12 personnages en utilisant à la @PING 127.0.0.1 -n 2>NULplace. Par défaut, Ping attend environ une seconde entre les tentatives, c'est donc à quelques millisecondes près d'être précis, suffisamment proche pour ce défi. Référence
AdmBorkBork

joué 12 octets grâce à TimmyD
Max

2

CBM 64 BASIC V2, 121 119 112 117 octets

2?CHR$(147)+"\o/":?" 0":?"/ \"
3GOSUB7
4?CHR$(147)+"_o_":?"_0_"
5GOSUB7
6RUN
7A=TI
8IFTI-A<60THENGOTO8
9RETURN

Efface ?CHR$(147)l'écran? Si c'est le cas, vous pourrez peut-être économiser 2 octets maintenant que l'OP a confirmé que la ligne vierge n'a pas besoin d'être explicitement imprimée
trichoplax

Cela ne produit pas la première image d'animation (c'est-à-dire où les bras sont au niveau).
Psychonaut

vous avez raison ... je vais le réparer!
Max

1

Julia, 70 octets

(sous Windows , en remplaçant clearpar cls, grâce à undergroundmonorail)

n(i=1)=(sleep(1);run(`cls`);print(i>0?"_o_
 0
/ \\":"\\o/
_0_");n(-i))

Sous Linux, 72 octets

n(i=1)=(sleep(1);run(`clear`);print(i>0?"_o_
 0
/ \\":"\\o/
_0_");n(-i))

Cela utilise des sauts de ligne réels plutôt que \nd'enregistrer un octet; sinon, le iest soit 1 ou -1 comme "drapeau", et il utilise la récursivité pour réaliser la boucle infinie. Appelez-le soit n(1)ou juste n().

En outre, run(`clear`)/ run(`cls`)utilise une commande shell pour effacer la fenêtre, car Julia n'a pas de commande window-clear intégrée.


Si vous exécutez cela sur Windows, vous économisez deux octets en changeant clearen cls(je suppose, je ne sais rien de Julia).
undergroundmonorail

@undergroundmonorail - Merci, mais j'utilise Ubuntu, cls ne fonctionne pas. Espérons que Julia décide de mettre en œuvre une véritable fonction de compensation de terminal.
Glen O

@GlenO sous Windows clsfonctionne (voir ma réponse)
Beta Decay

1

Windows Batch, 83 89

Edit a supprimé la ligne vide après la clarification par OP

@cls&echo _o_&echo  0&echo./ \&timeout>nul 1&cls&echo \o/&echo _0_&timeout>nul 1&%0

Si vous vous débarrassez de la ligne vide chez l'homme qui saute (qui ne peut pas être vu de toute façon), le score est de 83

Remarque: timeoutn'est pas présent dans Windows XP. Il fonctionne dans Vista ou dans des versions plus récentes. De plus timeoutn'est pas précis à la seconde, c'est donc un choix parfait pour implémenter l'étape 4 (Attendez un moment ( environ une seconde ))


1

Javascript (ES6), 82 octets

Une modification de ma réponse précédente qui utilise la console. Fonctionne partiellement dans Firefox, mais efface uniquement la console dans Chrome, AFAIK.

a=!0,c=console,setInterval(_=>c.log(c.clear(a=!a)|a?`_o_
 0
/ \\`:`\\o/
_0_`),1e3)

Comme toujours, les suggestions sont les bienvenues!


Aimer! Je remarque via cela que Chrome exécute également ES6 pour moi maintenant!
Dom Hastings du

@DomHastings Je n'ai jamais développé dans Chrome auparavant, mais j'avais entendu dire qu'il ne supportait pas ES6 par défaut, alors j'ai été aussi surpris que vous! :)
ETHproductions

1

JavaScript, 92 91 89 octets

x=0;setInterval(function(){console.log("\033c"+["_o_\n 0\n/ \\","\\o/\n_0_"][x^=1])},1e3)
  • Aucune fonctionnalité ES6 (mais serait considérablement plus courte avec eux)
  • Fonctionne avec Node.js sur Linux (je ne connais pas les autres environnements)
  • Fonctionne partiellement dans la console de Chrome ( cs'affiche au lieu de vider la console, interrompre la sortie)

En supprimant "\033c"+le code ci-dessus, ce qui suit fonctionne dans le navigateur, mais n'efface pas la console.

x=0;setInterval(function(){console.log(["_o_\n 0\n/ \\","\\o/\n_0_"][x^=1])},1e3)


Un travail impressionnant! En utilisant les fonctionnalités ES6, j'obtiens 77: x=0;setInterval(_=>console.log("\033c"+[`_o_<line break> 0<line break>/ \\`,`\\o/<line break>_0_`][x^=1]),1e3)pour une raison quelconque, JS ne me laisse pas passer en console.logtant que fonction et l'homme ASCII en tant que paramètre supplémentaire.
ETHproductions

@ETHproductions Merci! J'ai pensé à le faire dans ES6, mais ne l'ayant jamais utilisé et n'ayant pas installé io.js, j'ai décidé de ne pas le faire. En ce qui concerne le fait de ne pas pouvoir passer console.logà setInterval, la raison est que nous ne transmettons pas la fonction, mais l'appelons. Il serait évalué avant d' setIntervalêtre appelé, et comme console.logil ne revient pas, il serait essentiellement transmis undefinedà setInterval. Ça a du sens? Et merci de l'avoir raccourci!
Nateowami

Je comprends ce que vous dites, mais selon cette page , ce code devrait fonctionner: x=0;setInterval(console.log,1e3,"\033c"+[_o_ <saut de ligne> 0 <saut de ligne> / \ `, \\o/<line break>_0_] [x ^ = 1])` En fait, il n'apporte pas une erreur si je remplace console.logpar alert.
ETHproductions

Ah, je comprends ce que vous dites. Je pense que le problème est que nous devons enregistrer quelque chose de différent à chaque fois, mais qu'il "\033c"+[`_o_<line break> 0<line break>/ `,\\o/<line break>_0_`][x^=1]est évalué avant l'appel à setInterval.
Nateowami

0

Rubis, 79 octets

k=!0;loop{puts((k)?"\e[H\e[2J_o_\n 0\n/ \\":"\e[H\e[2J\\o/\n_0_");k=!k;sleep 1}

Nécessite des codes d'échappement.


0

Forth, 86 octets

Nécessite GNU Forth pour les chaînes échappées. Pour exécuter dans un Forth non GNU, changez simplement S\"en S"et les caractères échappés ne s'imprimeront pas correctement.

: P PAGE TYPE CR 999 MS ;
: R BEGIN S\" \\o/\n_0_" P S\" _o_\n 0 \n/ \\" P 0 UNTIL ; R


0

CBM BASIC v2.0 (68 caractères)

0?"S_o_q||0q||N M":goS1:?"SMoN":?"_0_":goS1:gO
1wA161,255,pE(161):reT

Ce qui précède nécessite quelques explications, car le balisage Stack Exchange ne représente pas correctement les caractères PETSCII:

  • Le programme est présenté ici pour plus de commodité en minuscules, mais peut et doit être entré et exécuté en mode majuscule sur un Commodore 64.
  • Les premier et troisième caractères "S" sont en fait en vidéo inverse, et produits en appuyant sur la CLRtouche ( SHIFT+HOME ).
  • Les caractères "q" sont en fait en vidéo inverse, et produits en appuyant sur le curseur bas ( CRSR ⇓).
  • Le "|" les personnages sont en fait en vidéo inverse, et produits en appuyant sur le curseur gauche ( SHIFT+ CRSR ⇒).

0

cire d'abeille ,119 113 octets

ph0`J2[`}ghq'-<gh0N}`0`}gN`/o\`Ngh0`J`<
>g}`o`}N` `0>'d`0 `N`/ \`0hg>-'phg}`[2`b
dF1f+5~Zzf(.FP9f..F3_#     d   <

Explication des parties importantes du programme:

left to right  right to left

3FBf   or       fBF3          27       ASCII code for (esc)
3             [x,x,3]•        set lstack 1st to 3
 F            [3,3,3]•        set lstack to 1st
  B           [3,3,27]•       1st=1st^2nd
   f                          push lstack 1st on gstack
——————
9PF.(f   or    f(.FP9         102400   counter to roughly match a wait time
                                       of 1 s on my i5 2410M Laptop
9             [x,x,9]•        set lstack 1st to 9
 P            [x,x,10]•       increment 1st
  F           [10,10,10]•     set lstack to 1st
   .          [10,10,100]•    1st=1st*2nd
    (         [10,10,102400]• 1st=1st<<2nd (100<<10=102400, arithmetic shift left)
     f                        push lstack 1st on gstack
——————
zZ~5+f   or    f+5~Zz         95       ASCII for '_'
z             [0,0,0]•        initialize lstack to zero
 Z            [0,0,90]•       get value from relative coordinate (0,0),
                              which is the location of `Z` itself, ASCII(Z)=90
  ~           [0,90,0]•       flip 1st and 2nd lstack values
   5          [0,90,5]•       set lstack 1st to 5 
    +         [0,90,95]•      1st = 1st+2nd
     f                        push lstack 1st on gstack

Les fvaleurs poussent les valeurs sur la gstack (pile globale) pour une utilisation ultérieure. Ces valeurs sont accessibles par les instructions 0gh(ou en miroir hg0) et hg( gh). hfait pivoter la gstack vers le haut, glit la valeur maximale de gstack et la pousse sur la lstack (pile locale) de l'abeille (pointeur d'instruction).

}`o`}N` 0 `N`/ \`                      sequence to print the standing man

N`\o/`Ng}`0`}N                         sequence to print the jumping man

}`[2J`                        equivalent to the ANSI escape sequence (esc)[2J
                              to clear the screen
>-'p  or >-'q  or >  p        loop for counting down (wait 1 s)
d  <      b  <    d'-<

Une explication détaillée suit plus tard, si nécessaire. Peut-être avec animation.


0

Poisson mort , sans compétition (658 octets)

iiisisdddddoiiiiiiiiiiiiiiiioddddddddddddddddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddsddddoiiiiiiiiiiiiiiiioddddddddddddddddoddddddddddddddddddddddodddsddodddddddddddddddoddddddddddddddddddddddsddddddddoddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoosddddddddoiiiiiiiiiiiiiiiiiiioddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddddddddddddddddddosdddddodddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddddddddddddddddsdddddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoo

Il s'agit d'une solution non concurrente , car elle ne répond pas complètement aux exigences du défi. Deadfish est une langue interprétée très étrange, qui n'a que 4 commandes et un accumulateur. L'accumulateur est une variable à un octet initialisée à 0. Les 4 commandes sont:

  • i = Incrémenter l'accumulateur a = a + 1
  • d = Décrémenter l'accumulateur a = a - 1
  • s = Mettre l'accumulateur au carré a = a * a
  • o = Sortie de l'accumulateur print(a)

Comme la langue n'inclut pas la répétition, l'effacement de l'écran ou les retards, elle ne répond pas aux exigences. Production attendue:

_o_
 0 
/ \
(Blank line, not from the program)
\o/
_0_
(Blank line, not from the program)
(Blank line, not from the program)

Explication du code:

_  iiisisdddddo
o  iiiiiiiiiiiiiiiio
_  ddddddddddddddddo
\n dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddo
   ddddsddddo
0  iiiiiiiiiiiiiiiio
   ddddddddddddddddo
\n ddddddddddddddddddddddo
/  dddsddo
   dddddddddddddddo
\  ddddddddddddddddddddddsddddddddo
\n ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddo
\n o
\  sddddddddo
o  iiiiiiiiiiiiiiiiiiio
/  ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddo
\n dddddddddddddddddddddddddddddddddddddo
_  sdddddo
0  dddddddddddddddddddddddddddddddddddddddddddddddo
_  ddddddddddddddddddddddddddddddddddddddsdddddo
\n dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddo
\n o

Interprète Deadfish dans Python 3:

c=input()
o=""
a=0
for p in range(0,len(c)):
    i=c[p]
    if i=="i":
        a += 1
    if i=="d":
        a+=-1
    if i=="s":
        a=a*a
    if i=="o":
        o+=chr(a)
print(o)

0

Noodel , non compressible 24 octets

Pas de compétition car Noodel est né après la création du challenge :)

”ṛ|ọBCḊCBCḣ“\o/¶_0_ḷėçḍs

Essayez-le :)

Comment ça marche

”ṛ|ọBCḊCBCḣ              # Creates a string that gets decompressed into "_o_¶¤0¤¶/¤\" and places it into the pipe.
           “\o/¶_0_      # Creates a string and places it into the pipe.
                   ḷ     # Unconditionally loop the code up to a new line or end of program.
                    ė    # Takes what is in the front of the pipe and puts it into the back.
                     ç   # Clears the screen and prints.
                      ḍs # Delays for one second.

Il n'existe actuellement aucune version de Noodel qui prend en charge la syntaxe utilisée dans ce défi. Voici une version qui fait:

24 octets

\o/¶_0_ _o_¶¤0¤¶/¤\ḷçėḍs

<div id="noodel" code="\o/¶_0_ _o_¶¤0¤¶/¤\ḷçėḍs" input="" cols="5" rows="5"></div>

<script src="https://tkellehe.github.io/noodel/noodel-latest.js"></script>
<script src="https://tkellehe.github.io/noodel/ppcg.min.js"></script>

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.