Essayez de créer une simple animation de ciseaux d'art ASCII!
Défi
Toutes les entrées seront des entiers de -31 à 31.
La sortie sera une animation (à sortir quelque part , tant que l'image précédente est remplacée. Les GIF sont autorisés.), Séparés par (environ) 1 quart de seconde.
Si l'entrée ( n
) est positive:
- L'animation devrait commencer par
8<
, les ciseaux ouverts AKA. - L'image suivante est
8=
. Cela montre les ciseaux "coupe". - Un tiret (marque de coupe) est ajouté derrière les ciseaux et l'animation se répète jusqu'à ce qu'il y ait des
n
tirets.
Si l'entrée est négative:
- Les ciseaux commencent ouverts et tournés vers la gauche (comme ceci:)
>8
, avec desn
espaces devant. - Les ciseaux se ferment et restent tournés vers la gauche (
=8
). - Les ciseaux se rouvrent, car l'espace est supprimé, et un tiret est ajouté derrière les ciseaux.
Si l'entrée est nulle:
- Sortie juste les ciseaux d'ouverture et de fermeture, pour 10 images. Ils peuvent faire face à l'une ou l'autre direction, à condition qu'elle soit cohérente.
Il s'agit de code-golf , donc la soumission la plus courte en octets l'emporte. (Même si votre participation ne gagnera clairement pas à cause d'une sorte de "langage du golf" nouveau, nous aimerions toujours le voir.)
Les messages d'erreur sont autorisés, tant que le message d'erreur lui-même n'interfère pas avec l'animation.
Exemples de paires d'entrée et de sortie:
(J'ai séparé les images pour plus de clarté, mais il devrait y avoir environ 0,25 seconde entre chaque image)
Input: 1
Output:
8<
8=
-8<
Input: 2
Output:
8<
8=
-8<
-8=
--8<
Input: 5
Output:
8<
8=
-8<
-8=
--8<
--8=
---8<
---8=
----8<
----8=
-----8<
Input: 0
Output:
8<
8=
8<
8=
8<
8=
8<
8=
8<
8=
Input: -2
Output:
>8
=8
>8-
=8-
>8--
Input: -3
Output:
>8
=8
>8-
=8-
>8--
=8--
>8---
Prendre plaisir!
Réponses:
SOGL V0.12 , 53 octets
Essayez-le ici!
la source
MATL ,
595857 octetsEssayez-le sur MATL Online! Ou voyez un exemple exécuté à partir du compilateur hors ligne:
la source
JavaScript (ES2017) + HTML, 165 + 10 octets
-16 octets par @Shaggy
Essayez-le dans l'extrait ci-dessous:
la source
alert
que chaque "trame" n'adhère pas aux spécifications, vous voudrez peut-être obtenir des éclaircissements à ce sujet.)alert
car les exigences sont que les images viennent à des intervalles de ~ 0,25 s, cealert
qui ne serait pas pris en charge sans autre intervention de l'utilisateur.TI-BASIC, 173 octets
Le fait que l'entrée 0 se termine dans une trame différente des autres était un obstacle très intéressant!
Étant donné que TI-BASIC n'aime pas les chaînes vides, cela maintient au moins un caractère factice à gauche des ciseaux, dont le premier est constamment un espace; pour éviter, espérons-le, de compter cela dans les n espaces pour les entrées négatives, ce programme commence à imprimer à partir de la colonne la plus à droite de la première ligne, puis enroule le reste de la chaîne vers le bas afin de commencer le champ réel d'animation là-bas, tout frais première colonne.
Quelques notes pour un appareil exotique: la taille du code TI-BASIC est mesurée en jetons, pas en caractères. Pour des comparaisons inter-calculatrices cohérentes, nous ignorons généralement le nombre d'octets traitant des longueurs d'en-tête (par exemple, nous soustrayons 8 de PROGRAM: SCISSORS). De plus, pour les routines qui se comportent parfaitement sur l'écran d'accueil (celles qui manquent de structures de contrôle, pour la plupart), nous éliminons en outre la taille d'un programme vide pour "économiser" sur 9 octets également. Ce programme en particulier n'est pas typable sur l'écran d'accueil, de sorte que la liberté ne sera pas prise.
la source
Octave ,
190186 octetsEssayez-le en ligne! (Remarque:
clc
ne fonctionne pas dans TIO, il s'agit donc uniquement de toutes les images d'animation générées de manière séquentielle). Merci pour @LuisMendo de m'avoir informé de la fonctione(...)
dans Octave, qui est égale àexp(1)*ones(...)
.Il s'avère que les affectations en ligne renvoient uniquement les entrées de tableau modifiées, pas le tableau entier. Cela signifie que les constructions comme
q(k(i+1)+=s)
ne sont pas possibles, donc le programme est presque comme MATLAB. En fait, l'entrée MATLAB n'est que légèrement plus longue,MATLAB,
198195 octetsla source
+ones
par le plus laid+~e
. Aussi, dans Octave et Matlab, remplacez[i i+1]
pari:i+1
.e(...)
comme ça? Je ne pense pas avoir jamais ressenti le besoin d'une matrice m par ne
. Fait pour le bon golf cependant.Nettoyer , 294 octets
Essayez-le en ligne!
Notez que cela ne fonctionne pas sur TIO, le lien est uniquement à des fins de présentation.
Vos résultats peuvent varier si vous avez une
CLOCK_PER_TICK
constante autre que1000
la valeur par défaut pour x86 Windows Clean.la source
Python 2 , 170 octets
Essayez-le en ligne!
la source
(approximately) 1 quarter of a second
; pourquoi ne pas utiliser un temps de sommeil de.2
quelques secondes et enregistrer un octet?Rubis, 169 octets
À peu près auto-explicatif lorsque vous y creusez, du moins à mon avis. Le programme doit être exécuté sur un ordinateur avec la commande / alias cls.
Essayez-le en ligne!(A dû écraser la méthode system (), juste pour ce script, en raison des limitations mentionnées ci-dessus.)
J'ai essayé d'utiliser
Mais il vient d'imprimer un personnage invisible, quelqu'un sait pourquoi?
la source