Votre tâche est simple: écrire un programme qui remplacera des pixels aléatoires dans un rectangle noir 16px * 8px (largeur par hauteur) par un pixel blanc.
Les trous doivent être uniformément aléatoires et vous devez sortir l'image 16px par 8 px avec les pixels blancs insérés.
Remplacez seulement 1 pixel par colonne (16 pixels remplacés au total)
Vous ne prenez aucune entrée et vous ne pouvez pas compter sur l'image stockée ailleurs sur l'ordinateur.
Il s'agit de code-golf, donc le programme avec le plus petit nombre de victoires!
code-golf
graphical-output
random
GracefulLemming
la source
la source
Réponses:
MATL ,
151413 octetsExemple (avec le compilateur MATL exécuté sur MATLAB):
Ou essayez-le sur MATL Online! (S'il ne s'exécute pas la première fois, appuyez à nouveau sur "Exécuter" ou actualisez la page). Notez que l'image est mise à l'échelle par l'interpréteur en ligne pour une meilleure visualisation.
Il s'agit d'un portage de ma réponse Octave / MATLAB (voir l'explication ici). Voici les déclarations équivalentes:
la source
Pyth -
1615 octetsSort l'image vers
o.png
.Exemple d'image:
la source
Octave / MATLAB,
483735 octetsExemple (sur Octave):
Explication
la source
C,
85100octetsÉcrit un fichier image PGM sur stdout (appelez-le avec
prog >out.pgm
).Non golfé et expliqué:
Mises à jour:
srand(time(0))
(:(
)la source
Traitement,
7473 octetsExemple de sortie:
Explication
la source
Rubis, 61 octets
Il s'agit d'un programme complet qui génère l'image au format netpbm sur stdout.
Exemple de sortie:
la source
Befunge, 90 octets
Cela génère un fichier PBM écrit sur stdout.
Essayez-le en ligne!
Explication
Les trois premières lignes composent le générateur de nombres aléatoires, stockant 16 nombres aléatoires de 3 bits (c'est-à-dire dans la plage 0-7) sur la dixième ligne du champ de jeu. La ligne quatre écrit l'en-tête PBM, et la dernière ligne génère ensuite les pixels de l'image. Cela se fait en comptant les 16 nombres aléatoires lors de la sortie des pixels - lorsque le nombre correspondant à une colonne particulière atteint zéro, nous émettons un 1 plutôt qu'un 0.
Exemple de sortie (zoomée):
la source
Mathematica,
7760 octetsExemple de sortie
Explication
Établissez des règles de remplacement pour chaque colonne; remplacer une position sélectionnée au hasard par 1.
Créez un
SparseArray
avec une taille 8x16 à partir des règles de remplacement. L'arrière-plan est0
par défaut. (8 x 16 car Mathematica compte d'abord les lignes)Convertissez le
SparseArray
en unImage
objet.Version 77 octets
la source
HTML + JavaScript, 148 octets
la source
R, 76 octets
Utilise le package
png
pour sortir dans un fichier.Exemple de sortie:
la source
QBasic, 59 octets
Assez simple. Le
-.5
est nécessaire carPSET
avec des arguments non entiers, il utilise l'arrondi au plus proche au lieu de floor ou truncate (et-.5
est plus court queINT()
).L'image en question est affichée dans le coin supérieur gauche de la fenêtre de sortie. Un exemple (recadré):
la source
Java, ( cela importe-t-il même les octets, importation AKA 244 + 18 = 262)
Était bizarre parce que le système de coordonnées comprend le volet de la fenêtre de trame ... Vous devez donc mettre en mémoire tampon au moins 26 octets ou rien ne s'affiche, d'où le
x=50
bit.la source
import java.awt.*;v->{new Frame(){public void paint(Graphics g){int x=50,i=16,y;g.setColor(Color.BLACK);g.fillRect(x,x,i,8);for(g.setColor(Color.WHITE);i>0;g.drawLine(x+i,x+y,x+i--,x+y),setVisible(1>0))y=(int)(Math.random()*8);}}.show();}
(Modifications apportées: statique supprimé; Java 8 lambda; certainsint
supprimés;i=16
réutilisés; mettez des choses dans la boucle for pour supprimer les crochets et;
)Postscript (65 octets)
Version non golfée:
la source
SmileBASIC, 30 octets
la source
Puce-8, 12 octets
Dessine l'image à l'écran.
la source
Tcl / Tk, 163
Deux approches différentes rendent le même octet:
la source
VBA Excel,
86105 octetsen utilisant la fenêtre immédiate
la source
Cells.RowHeight=42:[A1:P8].Interior.Color=0:For x=0To 15:[A1].Offset(Rnd*7,x).Interior.Color=-1:Next
-1
au lieu devbWhite
- explication complète des raisons ici )