Étant donné deux nombres arbitraires A, B. Imprimez le numéro B sous forme de motif LED numérique où A est l'échelle.
contribution:
1 2320451640799518
sortie:
_ _ _ _ _ _ _ _ _ _ _ _
_| _| _|| ||_||_ ||_ |_|| | ||_||_||_ ||_|
|_ _||_ |_| | _| ||_| ||_| | | | _| ||_|
contribution:
2 23
sortie:
__ __
| |
__| __|
| |
|__ __|
Règles:
Utilisez STDIN / STDOUT pour les entrées / sorties
Code avec la plupart des votes positifs. En cas d'égalité, le code le plus court sera accepté
La réponse ayant obtenu le plus de votes sera acceptée au 01/02/2014 (a accepté cette réponse avec les 12 votes les plus élevés)
ascii-art
popularity-contest
Étais-je
la source
la source
9
dans ma réponse , car je l'aime plus :-)Réponses:
Commodore 64 BASIC
Règles artistiques PETSCII :)
Sortie:
la source
Python 3,
286 282280Oui, j'ai joué à celui-ci. Beau défi!
En outre, voici une version Python 2 pesant seulement 273 octets!
Ne plus mettre à jour celui-ci avec une autre source originale de golf. Cela a été créé lorsque la source d'origine était de 282 octets (version Python 3).
Cela peut être de la triche, donc je l'ajoute séparément. Faites-moi savoir si cela est considéré comme valide ou non.
la source
Haskell (389 caractères)
La solution utilise 7 tableaux, un pour chaque segment du tableau, en utilisant les noms de cette image:
. La valeur
a !! 4
sera le caractère qui devrait être affiché à cette position pour le chiffre 4.Les valeurs sont multipliées par l'échelle le cas échéant (en utilisant
r
etrp
pour la réplication), et finalement imprimées.Le code
Exemple d'utilisation
la source
C,
249226 caractèresSolution golfée en C:
Avec des espaces supplémentaires:
Remarques:
Je vais vous expliquer comment cela fonctionne, si quelqu'un s'en soucie.
la source
#include <stdio.h>
(car il se compilera sans cela.) Vous pouvez également mettre un entiermain()
, par exemplemain(x)
, raser 1 octet - bien qu'il ne soit pas valide signature, et mettre à l'scanf
intérieurfor
:for(scanf("%d %98s", &s, &i); …)
rasage d'un de plus. - Jetez un oeil ici .#include
, déplacé l'scanf
intérieur dufor
, supprimé le inutile&
dans&i
et mis lesint
variables dans la portée globale pour exploiter l'initialisation statique 0. Le code devrait maintenant être encore légal C89, mais je n'ai pas vérifié attentivement. Je crois que mettre unint
enmain
est pas légal, donc je suis parti cela.int
pour les variables globales.%98s
Peut également l' être%s
(pour les chaînes plus longues, vous échouez de toute façon, est-ce important de quelle manière?)Ruby 2.0
Implémentation rapide et (pas si) rubis naïve.
Explication rapide:
Je déclare d'abord les chaînes représentant les chiffres d'activation et de désactivation des barres horizontales et verticales.
Ensuite, j'ai lu l'échelle et les chiffres.
Je déclare ensuite un tableau de la taille nécessaire pour stocker suffisamment de lignes pour l'échelle donnée. La chaîne étrange est en fait un mappage de valeurs 7 bits représentant les LED à allumer pour chaque chiffre.
Ensuite, pour chaque chiffre, je remplis le tableau de sortie de haut en bas, en tenant compte de la mise à l'échelle horizontale.
La boucle finale consiste à remplir les lignes qui n'ont que des barres verticales, qui peuvent simplement être générées à partir des lignes du milieu et du bas en supprimant les barres horizontales.
Enfin, j'imprime le tableau de sortie!
la source
Python 2.6 sans importation. Je dirais que l'attrait de cette solution est l'utilisation de modèles. Malheureusement, je pense que c'est pourquoi j'ai eu tellement de mal à le compacter.
Et un peu plus court (308 caractères):
la source
(Modifier: cette solution n'est plus valide car la sémantique de l'
銻
instruction a changé. Je ne savais pas que j'avais déjà utilisé l'instruction lorsque je l'ai changée. Vous pouvez cependant corriger ce programme en le changeant simplement en l'instruction la plus récente壹
.)Sclipting - 85 caractères①
Contribution:
Sortie:
②
Contribution:
Sortie:
la source
銻
en壹
, mais cela ferait tricher cette entrée car elle a壹
été inventée après la publication de ce défi.C # (
480443 caractères)Version étendue:
Mon idée était de diviser la tâche en 5 lignes horizontales, qui à leur tour sont divisées en parties gauche, droite et centrale pour chaque personnage.
la source
;
là-dedans (480); vous pouvez écrireAction<z,z,z,int>q=(l,m,r,n)=>{...};
(470); vous pouvez faire le premier paramètre deh
achar
et faire l'""+
intérieurh
(467); et enfin, vous pouvez déclarer et réutiliserz d="134579",b="1237"
(465). C'est le plus petit que j'ai pu faire jusqu'à présentJe suppose qu'il existe des solutions très courtes, mais comme ce n'est pas du code-golf, je suis assez satisfait!
Ce script PHP prendra deux nombres
a
,b
de STDIN et d'échob
au format LED, à laa
taille.EDIT: En regardant l'exemple de sortie précédent, j'ai supposé à tort que l'espace entre les chiffres devrait être aussi grand que la
a
taille. Cela a été corrigé avec la déclaration du PO qu'aucun espace n'est nécessaire.la source
C #,
435359473 octetsMODIFICATIONS:
Voici le code golfé (avec des sauts de ligne et des espaces ajoutés):
la source
using System;using S=System.String;class P{static void Main(){Action<S[]>D=n=>{var r=int.Parse(n[0]);Func<int,int,bool>F=(i,c)=>("ϭͱͼΟŅŭϻ"[i]&1<<c-48)>0;S s="",v="|",w=" ",x=new S('_',r),y=new S(' ',r);foreach(var c in n[1])s+=w+(F(0,c)?x:y)+w+w;for(int j=1;j<6;j+=3)for(int i=r;i-->0;){s+="\n";foreach(var c in n[1])s+=(F(j,c)?v:w)+(i<1&&F(j+1,c)?x:y)+(F(j+2,c)?v:w)+w;}Console.Write(s);};D(Console.ReadLine().Split(' '));}}
System
espace de noms le ramène à 423C (
561492 octets)L'auteur est frmar. Il m'a envoyé sa réponse la semaine dernière (il n'a pas encore créé son compte).
492 octets mais un peu plus obscurci:
Version précédente utilisant 561 octets:
Version originale de frmar (623 octets):
Compilation:
Exemples utilisant un
0123456789
numéro par défaut mais des tailles différentes:Autres exemples:
Grandes tailles:
la source
Perl + FIGlet + BRA * : 54 caractères
J'ai pensé que ce serait assez facile à faire avec FIGlet , mais il ne semblait pas y avoir de polices appropriées à cet effet. J'en ai donc fait :-)
Voici à quoi cela ressemble sur le terminal:
* BRA: abus flagrant des règles
la source
PERL,
261 244 187166 caractèresUn peu de philosophie d'encodage au niveau du bit rulez :-)
Code avec espace ajouté:
Perl doit être invoqué avec
-n
:Remarques:
Gl+%<UWm7=
:-) Un caractère correspond à un chiffre, encodé sont 3 positions de 3 caractères consécutifs dans la" _ _|_| |_ |"
chaîne.c
, qui effectue également un zoom vertical pour la deuxième et la troisième ligne.c
.Mon
sed
programme ne peut pas zoomer, mais il est beaucoup plus joli, non? :-)À peu près l'idée que mon script PERL utilise, mais dans PERL, c'est beaucoup plus laid. Notez que pour mon programme sed j'ai préféré utiliser
9
ce qui a le trait de soulignement dans la dernière ligne, pour être comme inversé 6.la source
C #,
386382364 caractères / 374 octets (UTF-8) et (beaucoup? De) place à amélioration ...EDIT Crap ... J'ai raté la partie "échelle"
Je lui donnerai un autre coup si j'y arrive ..
la source
J - 147
95caractèresAjout de la mise à l'échelle requise:
Version annotée:
Exemple:
la source
Ruby, 126 caractères ASCII
Chaque chiffre est donc codé sous forme de bitmap en tiers, chaque tiers étant représenté par un chiffre octal.
Comme tous les chiffres ont le bit 64 ou le bit 32, la plage est de 044 octal à 177 octal. Malheureusement, 177 est le caractère DEL non imprimable, donc la chaîne magique contient les chiffres 2 sous le code bitmap requis, et nous devons ajouter 2 dans la fonction.
Non testé dans le programme de test
Sortie
la source
Perl 6,
284241237Solutions précédentes:
la source