Afficher des pixels de couleur aléatoires


47

J'ai toujours aimé les écrans remplis de pixels colorés de manière aléatoire. Ils sont intéressants à regarder et les programmes qui les dessinent sont amusants à regarder.

Le défi

Remplissez votre écran ou une fenêtre graphique avec des pixels de couleur.

Les règles

  • Votre programme doit avoir une chance égale de choisir toutes les couleurs (c.-à-d. Dans la plage #000000de #FFFFFF) ou toutes les couleurs pouvant être affichées sur votre système.
  • Votre programme doit continuer à afficher des pixels aléatoires jusqu'à ce qu'il soit arrêté manuellement (il ne peut pas se terminer seul).
  • Les pixels peuvent avoir n'importe quelle taille, à condition que votre sortie ait au moins 40 x 40 "pixels".
  • Votre programme doit être exécuté à une vitesse telle qu'il puisse remplacer chaque pixel de l'écran / de la fenêtre au moins une fois après trois minutes d'exécution.
  • Votre programme doit choisir des couleurs véritablement aléatoires et des points à remplacer, c’est-à-dire aléatoires avec tous les points / couleurs également probables. Cela ne peut pas sembler aléatoire. Il doit utiliser un paramètre ou supérieur, et le résultat ne peut pas être identique à chaque fois.
  • Votre programme doit avoir une chance égale de choisir toutes les couleurs à chaque itération .
  • Votre programme doit remplacer un seul pixel à la fois.
  • Votre programme ne peut utiliser ni Internet ni votre système de fichiers ( /dev/randomet /dev/urandomexcepté).

Exemple

Votre sortie pourrait ressembler à ceci si elle était arrêtée à un moment aléatoire:

Le gagnant

La réponse la plus courte dans chaque langue gagne. S'amuser!


Par "vraiment aléatoire", je suppose que le pseudo-aléatoire est correct (comme Math.random () ou similaire)
OldBunny2800 le

@ OldBunny2800It must use a pRNG or better
TheLethalCoder

Puisque le programme ne peut pas utiliser Internet, je vais laisser ceci dans un commentaire: babelia.libraryofbabel.info/slideshow.html
KSmarts

1
Alors, la "limite de 3 minutes" s'applique-t-elle aussi au temps d'établissement? Ou juste une fois que le "programme" commence? Demander parce que j’ai une solution Redstone de Minecraft, qui s’exécute très rapidement, mais qui prend un certain temps à mettre en place au départ (il doit "placer" chaque "pixel" dans la grille 40x40) avant de pouvoir changer de couleur.
BradC

5
Vraiment aléatoire, par définition, exclut pseudo- aléatoire, mais ne définit pas de distribution. Je suppose que vous parlez d’un PRNG uniforme , où tous les événements sont équiprobables et indépendants les uns des autres.
Dennis

Réponses:


84

Minecraft 1.12 Blocs de commande Redstone, 4 355 2 872 octets

Minecraft capture d'écran avec armures et carte

(Taille déterminée par la taille du fichier de bloc de structure enregistré.)

Voici un aperçu complet de YouTube , mais je vais essayer de décrire le code ci-dessous.

Routine d'installation:

2 rangées de blocs de commande pour la configuration

Ceci établit la grille 40x40 des supports d’armure Minecraft. Les supports d'armure sont nécessaires car Minecraft n'a aucun moyen de substituer des variables aux coordonnées mondiales . La solution de contournement consiste donc à faire référence à l'emplacement de ces entités de stand d'armure.

(impulse) summon armor_stand 2 ~ 1 {CustomName:"A"} /create named armor stand
(chain) fill -2 ~ -2 43 ~ 43 stone                  /create big stone square
(chain) fill -1 ~ -1 42 ~ 42 air                    /leave just a ring of stone
(chain) setblock -4 ~ -12 redstone_block            /kicks off next sequence

Ce support nommé est fondamentalement notre "curseur" pour placer tous les supports dont nous aurons besoin. Le bloc redstone dans la dernière étape "alimente" les blocs proches (y compris nos blocs de commande), lance donc la prochaine boucle:

(repeat) execute @e[name=A] ~ ~ ~ summon armor_stand ~-1 ~ ~   /create new armor stand 
(chain) tp @e[name=A] ~1 ~ ~                                   /move "cursor" one block
(chain) execute @e[name=A] ~ ~ ~ testforblock ~1 ~ ~ stone     /if at end of row,
(conditional) tp @e[name=A] ~-40 ~ ~1                          /go to start of next row
(chain) execute @e[name=A] ~ ~ ~ testforblock ~ ~ ~2 stone     /If at last row
(conditional) setblock ~6 ~ ~ air                              /stop looping
(conditional) kill @e[name=A]                                  /kill cursor

À ce stade, notre grille est complète:

Grille de support complétée

Sélecteur de couleur aléatoire

Sélecteur de couleur et de pixel

Les répéteurs violets au centre de cette image choisissent une couleur aléatoire à l’aide de la commande suivante:

(repeat) execute @r[type=armor_stand,r=9] ~ ~ ~ setblock ~ ~-2 ~ redstone_block

Ce "@r []" est la sauce magique, il sélectionne une entité aléatoire dans le monde qui correspond aux conditions données . Dans ce cas, il trouve une armure dans un rayon de 9 blocs et nous avons mis en place 16 armures, une pour chaque couleur de laine. Sous la couleur sélectionnée, il place un bloc redstone (qui alimente les deux blocs de commande de chaque côté).

Sélecteur de pixels aléatoire

Placer le bloc redstone sous la couleur de laine sélectionnée déclenche deux autres blocs de commande:

(impulse) execute @r[type=armor_stand] ~ ~ ~ setblock ~ ~3 ~ wool X
(impulse) setblock ~ ~ ~1 air

Cette première ligne utilise notre même commande magique @r pour choisir n'importe quel support d'armure sur la carte entière (aucune restriction de rayon, ce qui inclut la grille 40x40), et place une laine de la couleur sélectionnée au-dessus de sa tête. Le X détermine la couleur et va de 0 à 15. La deuxième commande supprime le bloc redstone pour qu'il soit prêt à partir.

J'ai 5 blocs répéteurs violets, et redstone fonctionne par "ticks" 20 fois par seconde, je place donc 100 pixels par seconde (moins certains chevauchements de couleurs). Je l'ai chronométré et je couvre généralement toute la grille en 3 minutes environ.

C'était amusant, je vais essayer de rechercher d'autres défis qui pourraient également fonctionner dans Minecraft. Un grand merci à lorgon111 pour sa série de tutoriels sur YouTube Command Block .

EDIT: Réduit sérieusement la taille de la structure sauvegardée, passant à 2 872 octets sauvegardés :

des blocs de commande plus proches avec des blocs vides visibles

  1. Scooted choses dans un peu (dans les 3 dimensions) afin que je puisse réduire la taille globale de la zone enregistrée.
  2. Remplacé les laines de couleurs différentes en pierre, elles étaient simplement décoratives de toute façon.
  3. Suppression de la lampe Glowstone.
  4. Changé tous les blocs aériens pour annuler les blocs (les carrés rouges).

Testé en tirant la structure sauvegardée dans un nouveau monde, tout fonctionne toujours comme prévu.

EDIT 2 : lien Dropbox en lecture seule vers le fichier de structure NBT

Walk through est dans ma vidéo YouTube , mais voici les étapes:

  1. Dans Minecraft 1.12, créez un nouvel univers créatif super-plat en utilisant le préréglage "Redstone Ready". Faites en mode pacifique.
  2. Une fois que le monde existe, copiez le fichier NBT dans un nouveau \structuresdossier que vous créez avec la sauvegarde actuelle du monde.
  3. De retour dans le jeu, faites /give @p structure_block-le et /tp @p -12, 56, -22sautez au bon endroit pour commencer.
  4. Creusez un trou et placez le bloc de structure à -12, 55, -22.
  5. Cliquez avec le bouton droit sur le bloc de structure, cliquez sur le bouton de mode pour le basculer sur "Charger".
  6. Tapez "random_pixels", activez "include entity", et cliquez sur "Load"
  7. S'il trouve le fichier de structure, il affichera un aperçu du contour. Cliquez à nouveau avec le bouton droit de la souris et cliquez sur "Charger" pour amener la structure dans le monde.
  8. Appuyez sur le bouton pour exécuter la routine d’installation.
  9. Une fois l'opération terminée, actionnez le commutateur pour exécuter la randomisation de la laine.

6
Putain de merde ... tu l'as fait. Et c'est ta première réponse, wow! Bienvenue sur le site, et c’est une excellente façon de commencer!
MD XF

2
@MDXF En plus de votre +10, je donne +60
NoOneIsHere

2
@NoOneIsHere All right: P Mais si vous avez une réponse, elle devra être +100 ...
MD XF

2
Je vais essayer de jouer au golf si vous donnez le fichier du monde (je ne publierai pas une autre réponse, mais vous donnerai juste le fichier)
Christopher

2
Eh bien, shortest answer in each language winset c'est la réponse la plus courte dans Minecraft: P ont un extra +15
MD XF

19

sh + ffmpeg, 52 octets

ffplay -f rawvideo -s cif -pix_fmt rgb24 /dev/random

Ffmpeg compte-t-il comme un esolang? :RÉ

Malheureusement, pix_fmt est requis, car ffmpeg utilise par défaut yuv420p. Cela ne répond pas à l'exigence "doit avoir la même probabilité de toutes les couleurs de pixel possibles". Idéalement, cifest un raccourci pour une taille vidéo assez importante qui utilise moins d' espace que « 40x40 ».

Sans surprise, optimiser ce gif avec gifsicle n'a absolument rien fait. C'est 4MiB.


3
Est-ce que cela " ne remplace qu'un pixel à la fois "?
Scott Milner

1
Techniquement? Cependant, ffmpeg attend que l’ensemble de l’image soit rempli de pixels avant de l’afficher. J'ai mal interprété "ne doit remplacer qu'un pixel à la fois" en tant que "peut". : /
Una

1
Et bien sûr, gifsicle ne peut sauvegarder aucun octet dans le gif: il n’existe aucun moyen de compresser des données arbitraires et les pixels aléatoires sont disposés de manière chaotique, ce qui signifie que le moyen le plus efficace de les encoder est d’être pixel par pixel. Numberphile (je pense?) A diffusé une vidéo sur "qu'est-ce que l'information" et a-t-elle utilisé du bruit aléatoire pour perturber intentionnellement la compression de YouTube VSauce avait aussi une compression vidéo sur compression vidéo, mais j’oublie comment elle s’appelait.
Draco18s

2
@ Draco18s, je sais, la remarque sur son incompressibilité se moquait de moi pour avoir essayé de lancer gifsicle dessus de toute façon.
Una

2
Gifsicle est le mauvais outil. Precomp passe de 4 Mo à 3 Mo :) C'est parce que l'algorithme GIF élargit le caractère aléatoire au lieu de le compresser et que Precomp inverse ce comportement.
schnaader

17

C sur POSIX, 98 96 95 92 octets

-3 grâce à Tas

#define r rand()
f(){for(srand(time(0));printf("\e[%d;%dH\e[%d;4%dm ",r%40,r%40,r%2,r%8););}

Celui-ci choisit entre 16 couleurs (gris foncé, rouge, vert, bleu, orange, cyan, violet, gris clair, noir, rose, bleu clair, jaune, cyan clair, magenta, blanc) et les imprime directement sur le terminal.

Notez que si votre GPU est trop lent, cela peut sembler mettre à jour tout l'écran en même temps. Il se passe pixel par pixel, mais C est rapide.

couleurs

Solution alternative qui rend les couleurs plus distinctes:

f(){for(srand(time(0));printf("\e[%d;%dH\e[%d;3%dm█",rand()%40,rand()%40,rand()%2,rand()%8););}

Preuve que cela se passe pixel par pixel (capture d'écran d'un autre programme):

3d !!!

Wow, ça a l'air presque en 3 dimensions ...


Il manque un ;pour compiler correctement mais semble fonctionner très bien autre que ça! B-)
cleblanc

@cleblanc Oh, tu as raison! J'ai oublié d'ajouter cela après avoir basculé de whileà for.
MD XF

2
Vous pourriez probablement raser quelques octets en #define r rand()utilisant ensuiter%40, r%40, r%2, r%8
Tas

En n'utilisant pas la couleur 32 bits, cela ne répond pas aux exigences.
wberry

4
@wberry "Votre programme doit avoir une chance égale de choisir toutes les couleurs (c'est-à-dire dans la plage # 000000 à #FFFFFF), ou toutes les couleurs pouvant être affichées sur votre système. " Il s'agit de toutes les couleurs que le terminal POSIX peut afficher.
MD XF

13

JS + HTML 162 + 32 (194) 124 + 13 (137) octets

Merci à Luke et aux autres commentateurs de m'avoir sauvé de nombreux octets.

r=n=>n*Math.random()|0
setInterval("b=c.getContext`2d`;b.fillStyle='#'+r(2**24).toString(16);b.fillRect(r(99),r(99),1,1)",0)
<canvas id=c>


2
En fait, cela <canvas id=c>devrait suffire car je pense que la taille par défaut de l' canvasélément est 300 x 150 pxsupérieure à la "taille de la fenêtre d' affichage " 99 x 99 px. Quoi qu'il en soit, bonne solution.
insertusernamehere

1
@insertusernamehere, oui, merci
Octopus

1
Cela ne fonctionne pas dans Firefox maintenant. Cela fonctionne dans Chrome
ETHproductions

1
OK, OK, je l'ai. Enregistrez 2 octets en faisant b = c.getContext 2d. (Vous ne savez pas comment formater cela, mais si "2d" est un modèle de modèle, il n'a pas besoin de parenthèses.) (Suppression de mes suggestions précédentes.)
Rick Hitchcock

1
Avec la suggestion de Rick, utilisez une withdéclaration pour supprimer toutes les occurrences de b.:r=n=>n*Math.random()|0 setInterval("with(c.getContext`2d`)fillStyle='#'+r(2**24).toString(16),fillRect(r(99),r(99),1,1)")
darrylyeo

11

MATL, 28 octets

40tI3$l`3l2$r,40Yr]4$Y(t3YGT

Essayez-le sur MATL Online . J'ai ajouté une pause d'une demi-seconde ( .5Y.) à cette version.

entrez la description de l'image ici

Explication

40       % Push the number literal 40 to the stack
t        % Duplicate
I        % Push the number 3 to the stack
3$l      % Create a 40 x 40 x 3 matrix of 1's (40 x 40 RGB image)
`        % Do...while loop
  3l1$r  % Generate 3 random numbers (RGB)
  ,      % Do twice loop
    40Yr % Generate two integers between 1 and 40. These will be the
  ]      % row and column of the pixel to replace
  4$Y(   % Replace the pixel with the random RGB value
  t      % Make a copy of the RGB image
  3YG    % Display the image
  T      % Push a literal TRUE to create an infinite loop

1
J'aime cela! ----
MD XF

4
par curiosité, comment avez-vous giffifié la sortie de votre code?
Octopus

2
@Octopus Je viens d'utiliser LICEcap . Un de ces jours, je vais incorporer une sortie GIF animée dans le compilateur en ligne.
Suever

Comme cette réponse utilise moins de commandes / méthodes pour obtenir un résultat similaire, ne pouvez-vous pas la convertir en MATL pour éventuellement obtenir un score inférieur?
MD XF

J'ai vu un pixel déjà remplacé être remplacé à nouveau;).
Urne magique Octopus

7

TI-BASIC (84 + C (S) E uniquement), 37 35 octets

:For(A,1,5!
:For(B,1,5!
:Pxl-On(A,B,randInt(10,24
:End
:End
:prgmC //"C" is the name of this program

En raison de limitations matérielles, cela risque de planter, car chaque fois qu'un programme est imbriqué dans un programme dans TI-BASIC , 15 Ko de RAM sont alloués pour "conserver un signet" dans le programme parent. Cela fonctionnerait bien sur une calculatrice "théorique" avec une RAM infinie, mais si nous voulons qu'elle fonctionne indéfiniment sur une vraie calculatrice, nous pouvons simplement l'envelopper dans une While 1boucle pour 2 octets supplémentaires :

:While 1
:...
:End

Les calculatrices de la famille TI-83 avec écrans couleur (TI 84 + CE et CSE) prennent en charge 15 couleurs. Ils ont des codes de couleur à 10travers 24. Ceci parcourt tous les pixels dans un 5!carré de 120 sur 120 ( ) et attribue à chacun une couleur aléatoire.

Résultat:

entrez la description de l'image ici


Oui, une autre réponse BASIC! Juste pour être sûr, est-ce que ça marche pour toujours?
MD XF

@MDXF Maintenant c'est le cas! ;-) Vous avez manqué cette partie la première fois. +5 octets.
Scott Milner

Vous pouvez faire en sorte que les boucles for commencent à 0 si vous souhaitez couvrir 100 x 100 pixels.
kamoroso94

@ kamoroso94 Ah, c'est vrai. Je pourrais aussi faire 5!si je voulais 120 pixels.
Scott Milner

2
@MDXF TI-BASIC est basé sur des jetons . C'est-à-dire For(1 octet, Pxl-On(1 octet, randInt(2 octets, etc.
Scott Milner

5

MATLAB, 56 octets

x=rand(40,40,3);while imagesc(x),x(randi(4800))=rand;end

La sortie ressemble à l'image ci-dessous. Un "pixel" change à la fois et une seule des couleurs RVB change.

Pourquoi? Les couleurs dans MATLAB sont représentées sous forme de matrice 3D, une couche pour R, G et B. Le code ci-dessus modifie une seule des couches par itération. Tous les pixels et tous les calques peuvent être modifiés. Par conséquent, si vous attendez un peu, toutes les couleurs sont également possibles dans toutes les positions.

Ajoutez pause(t)à l'intérieur de la boucle pour faire une pause de tsecondes entre chaque image.

Vous devez l'arrêter avec Ctrl+ C.

entrez la description de l'image ici


3
Utilisation intelligente de la poignée sur l'objet graphique comme condition préalable à lawhere
Jeudi

2
Une règle a été clarifiée - Your program must have an equal chance of picking all colors/points each iteration. Votre programme remplit-il cela?
MD XF

5

Bash + coreutils, 59 56 octets

for((;;)){ printf "\e[48;5;`shuf -i 0-16777215 -n1`m ";}

\e[48;5;COLORm est le degré d’échappement à la couleur de fond.

Chaque "pixel" a la chance d'être à chaque fois dans la plage [0..16777215].


1
Wow, c'est une très bonne idée! +1
MD XF

Vous pouvez supprimer 3 octets, si vous utilisez jot:for((;;)){ printf "\e[48;5;`jot -r 1 0 16777215`m ";}
Moreaki

J'ai volé cette idée et l'ai réduite à 45 octets (\ e est un caractère d'échappement, et shuf | xargs la raccourcit (pas besoin de -n 1, ni de). Codegolf.stackexchange.com/a/158142/7017 Je peux le supprimer si vous le souhaitez (je ne sais pas vraiment si je devrais simplement proposer ceci sous forme de commentaire au lieu de le poster. Mon objectif est d’obtenir quelques points pour récompenser un jour les réponses étonnantes à l’étonnant "tetris" dans le jeu de la vie "défi & réponse! voir codegolf.stackexchange.com/q/11880/7017
Olivier Dulac

5

Javascript + HTML 118 + 13 (131 octets)

r=_=>255*Math.random()|0;setInterval('x=c.getContext`2d`;x.fillRect(r(),r(),1,1,x.fillStyle=`rgb(${[r(),r(),r()]})`)')
<canvas id=c>

  • Cela produira des couleurs RVB uniformément réparties. Vous ne pouvez pas utiliser des couleurs Hex sans rembourrage approprié sous forme de nombres comme #7n'est pas une couleur valide ou #777et #777777sont de la même couleur (2x les chances)
  • L'élément canvas est 300x150 par défaut, mais je dessine en fait sur un carré de 255x255. Il y a donc des pixels en dehors de la toile, la zone effective est donc 255x150.
  • Fonctionne uniquement sur Google Chrome.

2
Excellent premier post! Bienvenue sur le site!
MD XF

Je ne crois pas que cela puisse afficher des couleurs avec un canal défini sur 255, tel que le rouge, le vert, le bleu ou le blanc. Je pense que vous devez multiplier par 256 à la place.
kamoroso94

4

Excel VBA, 131 102 85 octets

Fonction de fenêtre immédiate VBE anonyme qui utilise une fonction d’aide (voir ci-dessous) pour générer un tableau de cellules de couleur aléatoire dans la plage A1:AN40de l’objet feuille active.

Remarque: cette solution est limitée aux installations 32 bits de MS Excel (et donc d'Office dans son ensemble), car 8^8elles ne seront pas compilées sur les versions 64 bits de VBA.

Randomize:Cells.RowHeight=48:For Each c In[A1:AN40]:c.Interior.Color=(8^8-1)*Rnd:Next

Exemple de sortie

Couleurs cellulaires aléatoires

La version précédente

Randomize:Cells.ColumnWidth=2:For Each c In Range("A1:AN40"):c.Interior.Color=RGB(n,n,n):Next

Fonction d'assistance

Affiche un int aléatoire dans l'intervalle [0,255]

Function n
n=Int(255*Rnd)
End Function

3

C #, 369 288 287 octets

namespace System.Drawing{class P{static void Main(){var g=Graphics.FromHwnd((IntPtr)0);var w=Windows.Forms.Screen.GetBounds(Point.Empty);for(var r=new Random();;)g.FillRectangle(new SolidBrush(Color.FromArgb(r.Next(256),r.Next(256),r.Next(256))),r.Next(w.Width),r.Next(w.Height),1,1);}}}

88 octets sauvegardés grâce à @CodyGray.

Un programme complet qui obtient la poignée de l'écran et sa taille, puis commence à dessiner de façon aléatoire des pixels. Notez que cela pourrait bloquer votre carte graphique lors de son exécution. De plus, si l'écran ou tout contrôle décide de repeindre à tout moment, les pixels seront perdus et devront être redessinés.

Remarque: lorsque vous exécutez, maintenez le focus sur la fenêtre pour la tuer, vous devez appuyer sur Alt + F4 ou appuyer sur le bouton de fermeture. Le faire lorsque vous ne pouvez pas voir l'écran est un peu difficile.

Je ne pouvais pas enregistrer ce travail, avec ScreenToGif, car cela obligeait à repeindre pour que les pixels soient supprimés. Cependant, voici une capture d'écran de celle-ci après environ 10-15 secondes, et je pense que j'ai peut-être bloqué mon PC! L'espace dans le coin supérieur droit est l'endroit où l'écran a forcé une nouvelle peinture au moment même où j'ai pris la capture d'écran.

Exemple de version complète

Version complète / formatée:

namespace System.Drawing
{
    class P
    {
        static void Main()
        {
            var g = Graphics.FromHdc((IntPtr)0);
            var w = Windows.Forms.Screen.GetBounds(Point.Empty);

            for (var r = new Random();;)
                g.FillRectangle(new SolidBrush(Color.FromArgb(r.Next(256), r.Next(256), r.Next(256))),
                                r.Next(w.Width), r.Next(w.Height), 1, 1);
        }
    }
}

Une version pour 308 227 226 octets qui s’appuie uniquement sur la région 0-40:

namespace System.Drawing{class P{static void Main(){var g=Graphics.FromHdc((IntPtr)0);for(var r=new Random();;)g.FillRectangle(new SolidBrush(Color.FromArgb(r.Next(256),r.Next(256),r.Next(256))),r.Next(40),r.Next(40),1,1);}}}

Exemple de sortie pour celui-ci:

Petit exemple de sortie



Graphics.FromHwnd((IntPtr)0)fonctionnerait également et serait beaucoup plus court que P / Invoking GetDC. Bien entendu, votre code est toujours semblable à celui de Tas et présente une fuite folle de ressources. C'est pourquoi il arrête votre machine après seulement une courte période d'exécution.
Cody Gray

@CodyGray Oh, je sais que cela fuit, mais qu'il devrait quand même fonctionner dans les limites du défi. Et GetDCne retourne pas IntPtr.Zerosi l'envoi que FromHdccela ne fonctionnera pas.
TheLethalCoder

1
Lisez la suggestion plus attentivement. :-) Je ne suggère pas que vous appeliez FromHdc, je suggère que vous appeliez FromHwnd. Notez que lorsque vous appelez GetDCpour obtenir le contrôleur de domaine pour un handle de fenêtre, vous transmettez un pointeur NULL (0) en tant que handle de fenêtre.
Cody Gray

@CodyGray Ah oui ça marche, merci! Ils sont nommés de la même façon, auraient dû lire votre commentaire plus attentivement ...
TheLethalCoder

3

Console C #, 233 220 189 188 octets

namespace System{using static Console;class P{static void Main(){for(var r=new Random();;){BackgroundColor=(ConsoleColor)r.Next(16);SetCursorPosition(r.Next(40),r.Next(40));Write(" ");}}}}

entrez la description de l'image ici

Utilise "tout" (Windows) 16 couleurs de console.

Merci pour la "fonctionnalité" qui permet d’aliaser des classes en C # via la usingdirective.

Modifier # 1

  • Supprimé des espaces.

  • Suppression de zéros de Random.Next ()

  • Est allé à namespace system{...}

Modifier # 2

  • La taille minimale de la grille est 40x40

  • Un octet en déclarant Random dans l'en-tête de la boucle

  • Supprimé publicde la méthode Main

Edit # 3

Il s'avère que ce using C=Console;n'est pas le meilleur qui soit. using static Consoleressemble beaucoup à la méthode VB.Net pour "importer" des classes

J'abandonne: TheLethalCoder a rendu cela possible


Code original pour adapter la taille de la fenêtre à 207 octets:

namespace System{using static Console;class P{static void Main(){for(var r=new Random();;){BackgroundColor=(ConsoleColor)r.Next(16);SetCursorPosition(r.Next(WindowWidth),r.Next(WindowHeight));Write(" ");}}}}

Image originale:

entrez la description de l'image ici


namespace Systemdevrait économiser des octets, r.Nextpeut supprimer le zéro, je crois, supprimer les espaces non pertinents,
TheLethalCoder

Aussi, juste titrer C #, c'est bien
TheLethalCoder

Merci! Je laisse Console dans le titre car je sens que ce défi fournit un contexte précieux. Je ne vois pas comment namespace System{}est plus court que using System;. Soin d'expliquer?
MrPaulch le

1
J'ai eu cette mémoire forte mais infondée que le public est nécessaire pour le Main. Les souvenirs non fondés sont les meilleurs!
MrPaulch le

1
Merci. N'abandonnerai pas! :) Utilisera ce que j'ai appris lors du prochain défi!
MrPaulch le

3

Traitement, 90 octets

void draw(){float n=noise(millis());int i=(int)(n*9999);set(i%99,i/99,(int)(n*(-1<<24)));}

entrez la description de l'image ici

développé et commenté:

void draw(){
  float n=noise(millis());//compute PRNG value
  int i=(int)(n*9999);    //compute 99x99 pixel index
  set(i%99,i/99,          //convert index to x,y 
  (int)(n*(-1<<24)));     //PRNG ARGB color = PRNG value * 0xFFFFFFFF 
}

Idéalement, je pourrais utiliser un index de pixels au lieu de x, y location, mais l' pixels[]accès à Processing nécessite des opérations loadPixels()pré et updatePixels()post, d'où l'utilisation de set(). point()fonctionnerait aussi, mais a plus de caractères et nécessite stroke(). La zone aléatoire est en réalité 99x99 pour économiser quelques octets (au lieu de 100x100), mais cela devrait couvrir 40x40 avec chaque pixel dans une telle zone à remplacer.

Le bruit Perlin () est utilisé à la place de random () pour le garder plus pseudo-aléatoire et un octet plus court. La valeur est calculée une fois, mais utilisée deux fois: une fois pour la position aléatoire, puis encore une fois pour la couleur.

La couleur est réellement ARGB(00000000 à FFFFFFFF) (pas RVB) (points bonus?: D).


Génial, et ravi de vous voir sur ce site!
Kevin Workman

Également ! et merci! :)
George Profenza

+1 set()est un truc très propre et peut être très utile pour Conseils pour jouer au golf dans le traitement
Kritixi Lithos

ooooooh! Je ne savais pas à ce sujet. Je vais l'ajouter ici, merci :)
George Profenza

2

Python, 133 octets

Je ne suis pas tout à fait sûr que cela corresponde aux spécifications, car c'est sur une toile dans une zone 40x40.

from turtle import*
from random import*
ht()
up()
speed(0)
R=randint
while 1:goto(R(0,39),R(0,39));dot(1,eval('('+'R(0,255),'*3+')'))

Essayez-le en ligne - version sanseval, qui ne fonctionne pas dans Trinket


Notez bien pourquoi, votre tortue dist est peut-être différente de la mienne, mais ma toile par défaut est de 300 par 400 alors que la valeur par défaut ne l’ colormodeest 1.0pas 255.
Jonathan Allan

Trinket.io est assez unique.
mbomb007

Ouais - J'ai juste essayé de changer colormodeet il n'y en aurait pas: /
Jonathan Allan

Pourquoi ne dot(1,R(0,255),R(0,255),R(0,255))fonctionne pas non plus? dotest censé accepter (width,*color). Ce n'est pas Python: p
Jonathan Allan

Parce que Trinket.io utilise skulpt.js, qui est une implémentation incomplète de Python.
mbomb007

2

JavaScript utilisant Canvas 340 316 324 octets

function r(t,e){return Math.floor(e*Math.random()+t)}function f(){x.fillStyle="rgba("+r(1,255)+","+r(1,255)+","+r(1,255)+", 1)",x.fillRect(r(0,40),r(0,40),1,1)}c=document.createElement("canvas"),c.width=40,c.height=40,x=c.getContext("2d"),document.getElementsByTagName("body")[0].appendChild(c),c.interval=setInterval(f,1);

version complète


2
Bienvenue sur le site! :)
DJMcMayhem

Cela respecte-t-il la règle suivante: "Votre programme doit continuer à afficher des pixels aléatoires jusqu'à ce qu'il soit arrêté manuellement (il ne peut pas se terminer tout seul)."?
Octopus

Cela semble générer simplement un groupe de pixels aléatoires lors de l'exécution. Il ne continue pas d'afficher les pixels un par un jusqu'à ce qu'il soit arrêté.
MD XF

Il semble que j'ai raté cette règle. J'ai pensé à tort que l'objectif était de créer une image et non une animation. Je mettrai à jour ma réponse lorsque je reviendrai sur mon ordinateur.
Tim Penner

1
@MDXF c'est animé maintenant
Tim Penner

2

Traitement, 112 octets

void setup(){size(40,40);}void draw(){stroke(random(255),random(255),random(255));point(random(40),random(40));}

Je ne peux pas garantir que chaque pixel est remplacé toutes les 3 minutes, mais cela semble être le cas. Au moins les chances qu’il manque un pixel, sur un total de 1600, en mettant à jour un aléatoire 30 fois par seconde, soit un total de 5400 mises à jour par minute, font qu’il est improbable qu’il en manque un.

Ungolfed:

Le programme est vraiment simple. Ouvrez une fenêtre de 40 x 40 pixels et chaque image (30 par seconde par défaut) prend une couleur aléatoire et tracez un point situé à une coordonnée aléatoire entre 0 et le paramètre. 40 pour les coordonnées en pixels, 255 pour les couleurs.

void setup()
{
  size(40,40);
}

void draw()
{
  stroke(random(255),random(255),random(255));
  point(random(40),random(40));
}

entrez la description de l'image ici


Pouvez-vous enlever le size(40,40);et changer pointen point(random(99),random(99));? (ou 100 au lieu de 99 si 99 ne fonctionne pas)
Kritixi Lithos

@KritixiLithos dans Processing, la sizefonction DOIT être la première ligne de code dans la fonction de configuration (les raisons sont compliquées), je ne peux donc pas contourner ce problème . Je peux changer toutes les occurrences de 40 à 99. Je ne l'ai tout simplement pas fait, car cela ne m'a pas épargné d'espace. Je suis principalement allé avec la taille minimale pour augmenter les chances que chaque pixel soit rafraîchi en 3 minutes
Cody

Heh, c'est ce que je pensais d'abord aussi, jusqu'à ce que quelqu'un m'en parle et que tout se passe bien, comme vous pouvez le voir ici dans une de mes soumissions.
Kritixi Lithos

1
Supprimer la totalité de la setup()fonction sur la dernière version de Processing sur ma machine fonctionne correctement sans erreur.
Kritixi Lithos

Je suppose que ma version de Processing est assez ancienne et que je ne l'utilise pas assez pour prendre la peine de mettre à niveau pour le moment.
Cody

2

HTML + SVG + PHP, 245 octets

<?$u=$_GET;$u[rand()%40][rand()%40]=sprintf("%06x",rand()%16777216);echo'<meta http-equiv="refresh" content="0.1; url=?'.http_build_query($u).'" /><svg>';foreach($u as$x=>$a)foreach($a as$y=>$c)echo"<rect x=$x y=$y width=1 height=1 fill=#$c />";

Étendu

$u=$_GET; # Get the Url
$u[rand()%40][rand()%40]=sprintf("%06x",rand()%16777216); # Set One Value in a 2 D Array
echo'<meta http-equiv="refresh" content="0.1; url=?'.http_build_query($u).'" /><svg>'; # refresh the site after 0.1 second follow the new Get parameter
foreach($u as$x=>$a) #loop through x Coordinates as Key
  foreach($a as$y=>$c) #loop through y Coordinates as Key value is the color
    echo"<rect x=$x y=$y width=1 height=1 fill=#$c />"; #print the rects for the SVG

Exemple pour une sortie sans balise meta et dans une version supérieure

<svg viewBox="0 0 40 40" width=400 height=400><rect x=11 y=39 width=1 height=1 fill=#1b372b /><rect x=11 y=7 width=1 height=1 fill=#2c55a7 /><rect x=11 y=31 width=1 height=1 fill=#97ef86 /><rect x=11 y=26 width=1 height=1 fill=#94aa0a /><rect x=11 y=4 width=1 height=1 fill=#f8bf89 /><rect x=11 y=6 width=1 height=1 fill=#266342 /><rect x=11 y=29 width=1 height=1 fill=#369d80 /><rect x=11 y=20 width=1 height=1 fill=#ccfab8 /><rect x=11 y=12 width=1 height=1 fill=#ac0273 /><rect x=13 y=25 width=1 height=1 fill=#0d95e9 /><rect x=13 y=0 width=1 height=1 fill=#d2a4cb /><rect x=13 y=37 width=1 height=1 fill=#503abe /><rect x=13 y=35 width=1 height=1 fill=#4e60ae /><rect x=13 y=30 width=1 height=1 fill=#3cdd5e /><rect x=13 y=12 width=1 height=1 fill=#60464c /><rect x=13 y=17 width=1 height=1 fill=#a3b234 /><rect x=13 y=3 width=1 height=1 fill=#48e937 /><rect x=13 y=20 width=1 height=1 fill=#58bb78 /><rect x=13 y=4 width=1 height=1 fill=#5c61e6 /><rect x=13 y=10 width=1 height=1 fill=#758613 /><rect x=13 y=21 width=1 height=1 fill=#9b3a09 /><rect x=13 y=28 width=1 height=1 fill=#6c6b3b /><rect x=13 y=32 width=1 height=1 fill=#9b3a0f /><rect x=13 y=14 width=1 height=1 fill=#0c9bcc /><rect x=38 y=34 width=1 height=1 fill=#a3a65d /><rect x=38 y=23 width=1 height=1 fill=#c4441a /><rect x=38 y=25 width=1 height=1 fill=#cec692 /><rect x=38 y=39 width=1 height=1 fill=#535401 /><rect x=38 y=30 width=1 height=1 fill=#21371a /><rect x=38 y=26 width=1 height=1 fill=#7560a4 /><rect x=38 y=33 width=1 height=1 fill=#f31f34 /><rect x=38 y=9 width=1 height=1 fill=#3fce3f /><rect x=38 y=13 width=1 height=1 fill=#78cab8 /><rect x=3 y=39 width=1 height=1 fill=#c6cf06 /><rect x=3 y=26 width=1 height=1 fill=#d7fc94 /><rect x=3 y=31 width=1 height=1 fill=#048791 /><rect x=3 y=19 width=1 height=1 fill=#140371 /><rect x=3 y=12 width=1 height=1 fill=#6e7e7a /><rect x=3 y=21 width=1 height=1 fill=#f917da /><rect x=3 y=36 width=1 height=1 fill=#00d5d7 /><rect x=3 y=24 width=1 height=1 fill=#00f119 /><rect x=34 y=15 width=1 height=1 fill=#e39bd7 /><rect x=34 y=1 width=1 height=1 fill=#c1c1b8 /><rect x=34 y=36 width=1 height=1 fill=#0d15d5 /><rect x=34 y=29 width=1 height=1 fill=#d15f57 /><rect x=34 y=11 width=1 height=1 fill=#6f73b9 /><rect x=34 y=33 width=1 height=1 fill=#93ce78 /><rect x=34 y=16 width=1 height=1 fill=#ddd7bd /><rect x=34 y=14 width=1 height=1 fill=#73caa6 /><rect x=34 y=28 width=1 height=1 fill=#972d89 /><rect x=34 y=31 width=1 height=1 fill=#27e401 /><rect x=34 y=10 width=1 height=1 fill=#559d6d /><rect x=34 y=22 width=1 height=1 fill=#170bc2 /><rect x=30 y=13 width=1 height=1 fill=#a9ac0d /><rect x=30 y=4 width=1 height=1 fill=#3d9530 /><rect x=30 y=10 width=1 height=1 fill=#67b434 /><rect x=30 y=15 width=1 height=1 fill=#54930a /><rect x=30 y=11 width=1 height=1 fill=#8ce15b /><rect x=30 y=7 width=1 height=1 fill=#ddf53d /><rect x=30 y=32 width=1 height=1 fill=#04de14 /><rect x=30 y=19 width=1 height=1 fill=#f52098 /><rect x=30 y=22 width=1 height=1 fill=#dc7d70 /><rect x=30 y=0 width=1 height=1 fill=#d458c3 /><rect x=30 y=30 width=1 height=1 fill=#1f8895 /><rect x=30 y=36 width=1 height=1 fill=#b3d891 /><rect x=30 y=29 width=1 height=1 fill=#0f9810 /><rect x=30 y=5 width=1 height=1 fill=#b4ce36 /><rect x=30 y=33 width=1 height=1 fill=#a837ba /><rect x=30 y=23 width=1 height=1 fill=#02beb3 /><rect x=30 y=24 width=1 height=1 fill=#2a75da /><rect x=37 y=2 width=1 height=1 fill=#7b3aa3 /><rect x=37 y=26 width=1 height=1 fill=#0e9fb2 /><rect x=37 y=32 width=1 height=1 fill=#afb3a1 /><rect x=37 y=24 width=1 height=1 fill=#b421d6 /><rect x=37 y=16 width=1 height=1 fill=#39e872 /><rect x=37 y=38 width=1 height=1 fill=#552970 /><rect x=37 y=11 width=1 height=1 fill=#2a0b2a /><rect x=37 y=18 width=1 height=1 fill=#1fe310 /><rect x=37 y=36 width=1 height=1 fill=#a80fe3 /><rect x=37 y=6 width=1 height=1 fill=#141100 /><rect x=26 y=13 width=1 height=1 fill=#5d521d /><rect x=26 y=11 width=1 height=1 fill=#d7227e /><rect x=26 y=1 width=1 height=1 fill=#8dae67 /><rect x=26 y=19 width=1 height=1 fill=#acfd2c /><rect x=26 y=2 width=1 height=1 fill=#307dd5 /><rect x=26 y=35 width=1 height=1 fill=#76b559 /><rect x=26 y=4 width=1 height=1 fill=#e6a551 /><rect x=12 y=34 width=1 height=1 fill=#266a0a /><rect x=12 y=16 width=1 height=1 fill=#8bcf44 /><rect x=12 y=13 width=1 height=1 fill=#00caac /><rect x=12 y=3 width=1 height=1 fill=#bb7aa5 /><rect x=12 y=37 width=1 height=1 fill=#3b0559 /><rect x=12 y=27 width=1 height=1 fill=#e82087 /><rect x=12 y=8 width=1 height=1 fill=#b65157 /><rect x=19 y=20 width=1 height=1 fill=#556336 /><rect x=19 y=33 width=1 height=1 fill=#81bca0 /><rect x=19 y=34 width=1 height=1 fill=#65478a /><rect x=19 y=35 width=1 height=1 fill=#256956 /><rect x=19 y=10 width=1 height=1 fill=#c49f9c /><rect x=19 y=12 width=1 height=1 fill=#99bd3d /><rect x=19 y=13 width=1 height=1 fill=#dae45d /><rect x=19 y=36 width=1 height=1 fill=#de28e2 /><rect x=19 y=30 width=1 height=1 fill=#f26ff1 /><rect x=4 y=23 width=1 height=1 fill=#3a31dc /><rect x=4 y=4 width=1 height=1 fill=#d480e7 /><rect x=4 y=24 width=1 height=1 fill=#a304c6 /><rect x=4 y=28 width=1 height=1 fill=#775aeb /><rect x=4 y=16 width=1 height=1 fill=#d942d1 /><rect x=4 y=8 width=1 height=1 fill=#ad6c7e /><rect x=4 y=3 width=1 height=1 fill=#8ef507 /><rect x=4 y=9 width=1 height=1 fill=#c59549 /><rect x=4 y=7 width=1 height=1 fill=#f757fb /><rect x=4 y=35 width=1 height=1 fill=#2db5de /><rect x=20 y=22 width=1 height=1 fill=#340f7b /><rect x=20 y=2 width=1 height=1 fill=#ae6b7c /><rect x=20 y=20 width=1 height=1 fill=#120232 /><rect x=20 y=1 width=1 height=1 fill=#bb534c /><rect x=20 y=11 width=1 height=1 fill=#a736a1 /><rect x=20 y=38 width=1 height=1 fill=#63646f /><rect x=20 y=8 width=1 height=1 fill=#8e2095 /><rect x=20 y=27 width=1 height=1 fill=#2ae2c6 /><rect x=32 y=20 width=1 height=1 fill=#56dc7a /><rect x=32 y=34 width=1 height=1 fill=#ec16ca /><rect x=32 y=19 width=1 height=1 fill=#e2ce80 /><rect x=32 y=21 width=1 height=1 fill=#5c7638 /><rect x=32 y=0 width=1 height=1 fill=#35647c /><rect x=32 y=33 width=1 height=1 fill=#9e174a /><rect x=32 y=5 width=1 height=1 fill=#8217b4 /><rect x=32 y=30 width=1 height=1 fill=#b3e018 /><rect x=32 y=36 width=1 height=1 fill=#90ea3d /><rect x=22 y=29 width=1 height=1 fill=#9d975f /><rect x=22 y=12 width=1 height=1 fill=#b50680 /><rect x=22 y=31 width=1 height=1 fill=#9cd270 /><rect x=22 y=16 width=1 height=1 fill=#05a7f7 /><rect x=22 y=20 width=1 height=1 fill=#f6c4d5 /><rect x=22 y=21 width=1 height=1 fill=#9b0dd8 /><rect x=22 y=22 width=1 height=1 fill=#bc1c9e /><rect x=22 y=26 width=1 height=1 fill=#22b4c3 /><rect x=22 y=36 width=1 height=1 fill=#f54b7b /><rect x=22 y=19 width=1 height=1 fill=#7d3be4 /><rect x=22 y=6 width=1 height=1 fill=#ff9c6f /><rect x=22 y=34 width=1 height=1 fill=#cce01c /><rect x=22 y=30 width=1 height=1 fill=#7c4fd0 /><rect x=22 y=33 width=1 height=1 fill=#c2ef4e /><rect x=25 y=3 width=1 height=1 fill=#35c580 /><rect x=25 y=31 width=1 height=1 fill=#172b52 /><rect x=25 y=39 width=1 height=1 fill=#5e724d /><rect x=25 y=10 width=1 height=1 fill=#f50c4a /><rect x=25 y=4 width=1 height=1 fill=#012808 /><rect x=25 y=33 width=1 height=1 fill=#3a0dc3 /><rect x=25 y=12 width=1 height=1 fill=#2f254a /><rect x=25 y=30 width=1 height=1 fill=#19ff2c /><rect x=25 y=38 width=1 height=1 fill=#4a3112 /><rect x=0 y=1 width=1 height=1 fill=#886f4f /><rect x=0 y=35 width=1 height=1 fill=#0bb010 /><rect x=0 y=0 width=1 height=1 fill=#a7f77e /><rect x=0 y=27 width=1 height=1 fill=#1b38da /><rect x=0 y=39 width=1 height=1 fill=#3788ae /><rect x=0 y=13 width=1 height=1 fill=#af5149 /><rect x=0 y=32 width=1 height=1 fill=#dcb445 /><rect x=0 y=20 width=1 height=1 fill=#36a218 /><rect x=0 y=2 width=1 height=1 fill=#aacbb8 /><rect x=0 y=14 width=1 height=1 fill=#fb17e3 /><rect x=17 y=8 width=1 height=1 fill=#cb2be8 /><rect x=17 y=11 width=1 height=1 fill=#dd80b1 /><rect x=17 y=35 width=1 height=1 fill=#a269aa /><rect x=17 y=6 width=1 height=1 fill=#9faf64 /><rect x=17 y=9 width=1 height=1 fill=#762811 /><rect x=17 y=23 width=1 height=1 fill=#94fa57 /><rect x=17 y=26 width=1 height=1 fill=#9bacc3 /><rect x=17 y=1 width=1 height=1 fill=#93c849 /><rect x=17 y=4 width=1 height=1 fill=#4a9fd4 /><rect x=17 y=22 width=1 height=1 fill=#1fc5f3 /><rect x=17 y=37 width=1 height=1 fill=#76d6a3 /><rect x=17 y=5 width=1 height=1 fill=#a13389 /><rect x=9 y=38 width=1 height=1 fill=#064ba3 /><rect x=9 y=23 width=1 height=1 fill=#cc83ad /><rect x=9 y=25 width=1 height=1 fill=#1de7e8 /><rect x=9 y=3 width=1 height=1 fill=#834afe /><rect x=9 y=9 width=1 height=1 fill=#15a0fb /><rect x=9 y=27 width=1 height=1 fill=#4d54dc /><rect x=9 y=21 width=1 height=1 fill=#2bf614 /><rect x=9 y=28 width=1 height=1 fill=#8080b7 /><rect x=9 y=39 width=1 height=1 fill=#d76a3b /><rect x=9 y=33 width=1 height=1 fill=#f8da2c /><rect x=9 y=26 width=1 height=1 fill=#5884ae /><rect x=7 y=39 width=1 height=1 fill=#a0264b /><rect x=7 y=15 width=1 height=1 fill=#bd87c7 /><rect x=7 y=18 width=1 height=1 fill=#4d4878 /><rect x=7 y=35 width=1 height=1 fill=#1dcc8c /><rect x=7 y=38 width=1 height=1 fill=#76497f /><rect x=7 y=1 width=1 height=1 fill=#87b1ae /><rect x=35 y=24 width=1 height=1 fill=#5d947e /><rect x=35 y=17 width=1 height=1 fill=#eabbdc /><rect x=35 y=19 width=1 height=1 fill=#01c75b /><rect x=35 y=36 width=1 height=1 fill=#06b0dd /><rect x=35 y=21 width=1 height=1 fill=#0fbba8 /><rect x=35 y=1 width=1 height=1 fill=#480be1 /><rect x=35 y=11 width=1 height=1 fill=#3f8ef6 /><rect x=35 y=30 width=1 height=1 fill=#7691d0 /><rect x=35 y=13 width=1 height=1 fill=#c9a286 /><rect x=27 y=12 width=1 height=1 fill=#08083e /><rect x=27 y=25 width=1 height=1 fill=#95d3b4 /><rect x=27 y=30 width=1 height=1 fill=#584c1b /><rect x=27 y=9 width=1 height=1 fill=#c01082 /><rect x=27 y=3 width=1 height=1 fill=#3bf653 /><rect x=27 y=33 width=1 height=1 fill=#c06f23 /><rect x=27 y=38 width=1 height=1 fill=#184c3e /><rect x=27 y=0 width=1 height=1 fill=#725d4c /><rect x=27 y=36 width=1 height=1 fill=#e7a71b /><rect x=27 y=16 width=1 height=1 fill=#43c039 /><rect x=23 y=30 width=1 height=1 fill=#947161 /><rect x=23 y=37 width=1 height=1 fill=#e8a8e5 /><rect x=23 y=12 width=1 height=1 fill=#bd9976 /><rect x=23 y=6 width=1 height=1 fill=#15085d /><rect x=23 y=31 width=1 height=1 fill=#102c95 /><rect x=23 y=24 width=1 height=1 fill=#173bc2 /><rect x=23 y=2 width=1 height=1 fill=#bac13c /><rect x=23 y=36 width=1 height=1 fill=#eb5a88 /><rect x=23 y=22 width=1 height=1 fill=#5ddc38 /><rect x=28 y=19 width=1 height=1 fill=#1ea833 /><rect x=28 y=38 width=1 height=1 fill=#dc6f6b /><rect x=28 y=2 width=1 height=1 fill=#d9fd8a /><rect x=28 y=15 width=1 height=1 fill=#eb213e /><rect x=28 y=22 width=1 height=1 fill=#b23956 /><rect x=28 y=16 width=1 height=1 fill=#875b0a /><rect x=28 y=14 width=1 height=1 fill=#ba6172 /><rect x=28 y=18 width=1 height=1 fill=#b9779a /><rect x=39 y=26 width=1 height=1 fill=#df5e52 /><rect x=39 y=4 width=1 height=1 fill=#aabb4f /><rect x=39 y=2 width=1 height=1 fill=#7ce85c /><rect x=39 y=16 width=1 height=1 fill=#1f70a8 /><rect x=39 y=15 width=1 height=1 fill=#55e398 /><rect x=39 y=29 width=1 height=1 fill=#955213 /><rect x=39 y=33 width=1 height=1 fill=#976c99 /><rect x=39 y=34 width=1 height=1 fill=#a23109 /><rect x=39 y=25 width=1 height=1 fill=#36aeae /><rect x=39 y=9 width=1 height=1 fill=#28a600 /><rect x=39 y=17 width=1 height=1 fill=#771e5b /><rect x=39 y=30 width=1 height=1 fill=#9980b1 /><rect x=31 y=14 width=1 height=1 fill=#8ffea6 /><rect x=31 y=13 width=1 height=1 fill=#d35c5c /><rect x=31 y=39 width=1 height=1 fill=#407beb /><rect x=31 y=10 width=1 height=1 fill=#45ba53 /><rect x=31 y=2 width=1 height=1 fill=#842997 /><rect x=31 y=20 width=1 height=1 fill=#ca47b0 /><rect x=31 y=37 width=1 height=1 fill=#ed098e /><rect x=31 y=5 width=1 height=1 fill=#041b67 /><rect x=31 y=22 width=1 height=1 fill=#4aaaa6 /><rect x=31 y=31 width=1 height=1 fill=#40ccbd /><rect x=31 y=27 width=1 height=1 fill=#6325ca /><rect x=33 y=18 width=1 height=1 fill=#cfbbbc /><rect x=33 y=34 width=1 height=1 fill=#b3f6b8 /><rect x=33 y=26 width=1 height=1 fill=#ef3b82 /><rect x=33 y=16 width=1 height=1 fill=#c7df5b /><rect x=33 y=39 width=1 height=1 fill=#5ad5ba /><rect x=33 y=12 width=1 height=1 fill=#9361fd /><rect x=33 y=35 width=1 height=1 fill=#1f4795 /><rect x=33 y=3 width=1 height=1 fill=#86a80c /><rect x=33 y=17 width=1 height=1 fill=#582008 /><rect x=33 y=9 width=1 height=1 fill=#686941 /><rect x=33 y=36 width=1 height=1 fill=#76ada4 /><rect x=33 y=21 width=1 height=1 fill=#511f50 /><rect x=33 y=14 width=1 height=1 fill=#64aaf7 /><rect x=8 y=28 width=1 height=1 fill=#3de9b7 /><rect x=8 y=24 width=1 height=1 fill=#5c8451 /><rect x=8 y=31 width=1 height=1 fill=#e75b30 /><rect x=8 y=38 width=1 height=1 fill=#4ee9d0 /><rect x=8 y=29 width=1 height=1 fill=#544381 /><rect x=8 y=16 width=1 height=1 fill=#12332f /><rect x=8 y=0 width=1 height=1 fill=#9e775f /><rect x=8 y=34 width=1 height=1 fill=#02224e /><rect x=8 y=1 width=1 height=1 fill=#b299f4 /><rect x=8 y=10 width=1 height=1 fill=#b2bd80 /><rect x=8 y=20 width=1 height=1 fill=#054876 /><rect x=8 y=27 width=1 height=1 fill=#ab273a /><rect x=2 y=30 width=1 height=1 fill=#1bd5f4 /><rect x=2 y=10 width=1 height=1 fill=#b00e99 /><rect x=2 y=9 width=1 height=1 fill=#bf18b0 /><rect x=2 y=8 width=1 height=1 fill=#9aa92b /><rect x=2 y=16 width=1 height=1 fill=#aa7e3d /><rect x=2 y=1 width=1 height=1 fill=#c383ea /><rect x=2 y=24 width=1 height=1 fill=#63ab54 /><rect x=2 y=19 width=1 height=1 fill=#086cac /><rect x=2 y=0 width=1 height=1 fill=#4510cc /><rect x=2 y=6 width=1 height=1 fill=#7b529c /><rect x=6 y=27 width=1 height=1 fill=#fcc946 /><rect x=6 y=20 width=1 height=1 fill=#0a7324 /><rect x=6 y=26 width=1 height=1 fill=#d93cc2 /><rect x=6 y=14 width=1 height=1 fill=#c8d410 /><rect x=6 y=33 width=1 height=1 fill=#0e5b22 /><rect x=6 y=1 width=1 height=1 fill=#e2accf /><rect x=6 y=2 width=1 height=1 fill=#06064a /><rect x=6 y=39 width=1 height=1 fill=#fae1de /><rect x=6 y=30 width=1 height=1 fill=#db50d3 /><rect x=6 y=15 width=1 height=1 fill=#59b1c5 /><rect x=6 y=16 width=1 height=1 fill=#a0178a /><rect x=16 y=29 width=1 height=1 fill=#1eb287 /><rect x=16 y=31 width=1 height=1 fill=#5fa9b0 /><rect x=16 y=36 width=1 height=1 fill=#918835 /><rect x=16 y=2 width=1 height=1 fill=#d46404 /><rect x=16 y=1 width=1 height=1 fill=#31808e /><rect x=16 y=15 width=1 height=1 fill=#22d652 /><rect x=10 y=25 width=1 height=1 fill=#94f771 /><rect x=10 y=14 width=1 height=1 fill=#e3a90a /><rect x=10 y=4 width=1 height=1 fill=#7fbdb3 /><rect x=10 y=32 width=1 height=1 fill=#d71f68 /><rect x=10 y=10 width=1 height=1 fill=#f3dcd7 /><rect x=10 y=27 width=1 height=1 fill=#cadd64 /><rect x=10 y=31 width=1 height=1 fill=#3c38c0 /><rect x=10 y=34 width=1 height=1 fill=#542641 /><rect x=10 y=19 width=1 height=1 fill=#e17ef2 /><rect x=10 y=24 width=1 height=1 fill=#676729 /><rect x=10 y=11 width=1 height=1 fill=#619f8e /><rect x=10 y=0 width=1 height=1 fill=#1576eb /><rect x=10 y=16 width=1 height=1 fill=#52854c /><rect x=36 y=2 width=1 height=1 fill=#fe133c /><rect x=36 y=31 width=1 height=1 fill=#b67ea7 /><rect x=36 y=7 width=1 height=1 fill=#92babc /><rect x=36 y=16 width=1 height=1 fill=#fc24a0 /><rect x=36 y=26 width=1 height=1 fill=#a80f75 /><rect x=36 y=15 width=1 height=1 fill=#5ddb90 /><rect x=18 y=13 width=1 height=1 fill=#64180c /><rect x=18 y=9 width=1 height=1 fill=#d67c04 /><rect x=18 y=18 width=1 height=1 fill=#3e0988 /><rect x=18 y=4 width=1 height=1 fill=#072b32 /><rect x=18 y=34 width=1 height=1 fill=#723cab /><rect x=18 y=14 width=1 height=1 fill=#560f7d /><rect x=18 y=29 width=1 height=1 fill=#4a7dd0 /><rect x=18 y=30 width=1 height=1 fill=#db0cfc /><rect x=18 y=16 width=1 height=1 fill=#f79bbf /><rect x=14 y=18 width=1 height=1 fill=#e45cec /><rect x=14 y=4 width=1 height=1 fill=#05b63c /><rect x=14 y=38 width=1 height=1 fill=#ee0251 /><rect x=14 y=14 width=1 height=1 fill=#12fb9f /><rect x=14 y=17 width=1 height=1 fill=#f8fbc9 /><rect x=14 y=22 width=1 height=1 fill=#58e112 /><rect x=14 y=1 width=1 height=1 fill=#a5bc5c /><rect x=14 y=10 width=1 height=1 fill=#3c6002 /><rect x=14 y=5 width=1 height=1 fill=#556f7a /><rect x=14 y=36 width=1 height=1 fill=#ccfaa9 /><rect x=14 y=15 width=1 height=1 fill=#2a8597 /><rect x=1 y=28 width=1 height=1 fill=#899272 /><rect x=1 y=29 width=1 height=1 fill=#be4da2 /><rect x=1 y=6 width=1 height=1 fill=#cbe1a5 /><rect x=1 y=1 width=1 height=1 fill=#8aebd4 /><rect x=1 y=31 width=1 height=1 fill=#547b9e /><rect x=1 y=10 width=1 height=1 fill=#ba7996 /><rect x=1 y=34 width=1 height=1 fill=#e29661 /><rect x=1 y=0 width=1 height=1 fill=#899d3f /><rect x=1 y=4 width=1 height=1 fill=#6993f0 /><rect x=1 y=13 width=1 height=1 fill=#119a7c /><rect x=1 y=15 width=1 height=1 fill=#e7c61c /><rect x=1 y=17 width=1 height=1 fill=#6e8770 /><rect x=1 y=36 width=1 height=1 fill=#cdda71 /><rect x=5 y=8 width=1 height=1 fill=#318f52 /><rect x=5 y=34 width=1 height=1 fill=#763499 /><rect x=5 y=37 width=1 height=1 fill=#5d0d72 /><rect x=5 y=0 width=1 height=1 fill=#97c9e7 /><rect x=5 y=12 width=1 height=1 fill=#babcca /><rect x=5 y=20 width=1 height=1 fill=#37d5cb /><rect x=5 y=31 width=1 height=1 fill=#642296 /><rect x=5 y=24 width=1 height=1 fill=#a6688c /><rect x=5 y=1 width=1 height=1 fill=#697956 /><rect x=29 y=32 width=1 height=1 fill=#b53b61 /><rect x=29 y=7 width=1 height=1 fill=#d131a3 /><rect x=29 y=18 width=1 height=1 fill=#0e082e /><rect x=29 y=17 width=1 height=1 fill=#8ca3dd /><rect x=29 y=11 width=1 height=1 fill=#376e46 /><rect x=29 y=20 width=1 height=1 fill=#11e2cf /><rect x=29 y=37 width=1 height=1 fill=#24b8de /><rect x=24 y=10 width=1 height=1 fill=#a906da /><rect x=24 y=36 width=1 height=1 fill=#ae0516 /><rect x=24 y=8 width=1 height=1 fill=#e0b9b1 /><rect x=24 y=27 width=1 height=1 fill=#29b27b /><rect x=24 y=33 width=1 height=1 fill=#78ea3e /><rect x=24 y=7 width=1 height=1 fill=#e5147e /><rect x=24 y=11 width=1 height=1 fill=#ce7084 /><rect x=24 y=23 width=1 height=1 fill=#78f645 /><rect x=24 y=25 width=1 height=1 fill=#a01f02 /><rect x=24 y=4 width=1 height=1 fill=#e4340c /><rect x=24 y=16 width=1 height=1 fill=#9b69d7 /><rect x=21 y=31 width=1 height=1 fill=#58ca7d /><rect x=21 y=39 width=1 height=1 fill=#037cb5 /><rect x=21 y=36 width=1 height=1 fill=#097454 /><rect x=21 y=28 width=1 height=1 fill=#71d744 /><rect x=21 y=38 width=1 height=1 fill=#10457c /><rect x=15 y=2 width=1 height=1 fill=#f4bf09 /><rect x=15 y=7 width=1 height=1 fill=#90357d /><rect x=15 y=27 width=1 height=1 fill=#6079ba /><rect x=15 y=5 width=1 height=1 fill=#cff723 /><rect x=15 y=17 width=1 height=1 fill=#54a6db />


2

C ++ sous Windows, 125 octets

#include<Windows.h>
#include<ctime>
#define r rand()%256
int main(){for(srand(time(0));;)SetPixel(GetDC(0),r,r,RGB(r,r,r));}

Les nouvelles lignes sont nécessaires et incluses dans le nombre d'octets.

Boucle indéfiniment, sélectionne de manière aléatoire une valeur comprise entre 0 et 255 (inclus) pour les valeurs de ligne et de colonne, attribue des valeurs R, V, B aléatoires entre 0 et 255 (inclus)


1
Je me rends compte que vous jouez cela, mais l'homme, cette fuite d'un contexte d'appareil à chaque boucle, fait vraiment tinter mes sens spidey!
Cody Grey

Économisez 15 octets en le rendant C sous Windows au lieu de C ++ sous Windows, car les compilateurs C vous permettront de laisser le #includes. (Et oui, il existe des compilateurs non Visual Studio C pour Windows.)
MD XF

2

Python 3.6 + Tkinter, 281 octets

from tkinter import*
from random import*
from threading import*
a=randrange
x=40
d={"width":x,"height":x}
w=Tk()
c=Canvas(w,**d)
c.pack()
i=PhotoImage(**d)
c.create_image((20,20),image=i)
def r():
 while 1:i.put(f"{a(0,0xffffff):0>6f}",(a(0,x),a(0,x)))
Thread(r).start()
mainloop()

Comme il tkinters'agit d'une bibliothèque standard, vous n'avez pas besoin de l'inclure dans l'en-tête
caird coinheringaahing

Je reçois la même erreur - Windows 10, Python 3.6.0, je peux deviner pourquoi init voit quatre paramètres passés - la méthode est en train de passer implicitement un paramètre "self". Mais je ne sais pas pourquoi cela génère une erreur, car la documentation montre que le constructeur de Canvas accepte trois paramètres (maître, x, y), comme indiqué dans le code.
CCB60

Devrait être corrigé maintenant.
Martmists

1
De plus, @Ilikemydog Tkinter n'est pas toujours sous stdlib. Sous Windows, c'est facultatif lors de l'installation, et je ne pense pas que Tkinter soit installé sur ma partition arch. Pourrait aussi bien l'inclure.
Martmists

il ya une faute de frappe - "img" au lieu de "i". Et ça ne fonctionne toujours pas, cette fois je reçoisc.create_image((20,20),i) File "C:\Python36\lib\tkinter\__init__.py", line 2483, in create_image return self._create('image', args, kw) File "C:\Python36\lib\tkinter\__init__.py", line 2474, in _create *(args + self._options(cnf, kw)))) _tkinter.TclError: unknown option "pyimage1"
Mikhail V

2

JavaScript (ES7) + HTML utilisant SVG, 129 + 10 = 139 octets

Version SVG fortement inspirée de l' <canvas>approche de @ Octopus .

JS

r=n=>n*Math.random()|0
setInterval('s.innerHTML+=`<rect x=${r(40)} y=${r(40)} fill=#${r(2**24).toString(16)} width=1 height=1>`')

HTML

<svg id=s>

Puisque l'extrait de pile aime casser le script en analysant la <rect>balise, voici un CodePen .


2

6502 Assembly, 92 bytes

loo: lda $fe
sta $00
lda $fe
and #$3
clc
adc #$2
sta $01
lda $fe
ldy #$0
sta ($00),y
jmp loo

Sortie:

sortie

Explication:

loop: lda $fe       ; accumulator = random
      sta $00       ; store accumulator
      lda $fe       ; accumulator = random
      and #$3       ; accumulator &= 3
      clc           ; clear carry
      adc #$2       ; accumulator += 2
      sta $01       ; store accumulator
      lda $fe       ; accumulator = random
      ldy #$0       ; register Y = 0
      sta ($00),y   ; store register Y
      jmp loop      ; loop

1
Quelle est votre plate-forme cible 6502 ici? BBC Micro? Pomme ][? Commodore VIC-20 etc ...?
Shaun Bebbers

Les noms d'étiquette doivent-ils comporter au moins trois caractères?
Jonathan Frech

2

LOGO, 71 octets

Le seul langage que je connaisse, n'étant pas ésotérique / spécialement conçu pour le golf-code, et ayant une foreverfonction. Une idée de la mappart?

pu forever[setxy random 100 random 100 setpixel map[random 256][1 1 1]]

2

shortC , 66 56 octets

Dr rand()
AOZR"\e[%d;%dH\e[%d;4%dm ",r%40,r%40,r%2,r%8);

-10 octets grâce au Dr. Rand. : P

A                                                                  main function
 O                                                                 for
  Z                                                                seed rand()
   R                                                               print
    "\e[%d;%dH                                                     coordinate placeholder string
              \e[%d;4%dm "                                         color placeholder string
                          ,rand()%40,rand()%40,rand()%2,rand()%8   fill placeholders
                                                                ); interpreter hole

Aucun lien TIO, car vous ne pouvez évidemment pas imprimer sur le type de terminal requis en ligne.


2

Perl (sur * nix), 69 octets

Les \x1bs sont des caractères d'échappement littéraux.

S'appuie sur la sttycommande et fonctionne bien sur OS X.

{printf"\x1b[%i;%iH\x1b[48;5;%im ",map{rand$_}`stty size`=~/\d+/g,256;redo}

Semblable à d’autres approches, mais j’ai aimé la combinaison de tous les paramètres dans un seul appel à la printfpensée que je partagerais. Tue mon terminal.

entrez la description de l'image ici


Deux fois plus de pixels, 83 octets

{printf"\x1b[%i;%iH\x1b[48;5;%i;38;5;%im▄",map{rand$_}`stty size`=~/\d+/g,256,256;redo}

Cette approche utilise un bloc Unicode et une couleur de premier plan et d’arrière-plan aléatoires qui donne un pixel plus carré. Tue mon terminal aussi, mais a l'air plus cool.

entrez la description de l'image ici


N'oubliez pas que vous pouvez utiliser l'octet d'échappement littéral, ASCII 0x1B (27) au lieu de \e. Et sur StackExchange cela peut être représenté par .
MD XF

@MDXF Ouais ... Je dois tester cela en tant que script, car cela ne fonctionnait pas via -e! J'ai également besoin d'augmenter le nombre d'octets de celui avec l'unicode. Oops! Merci pour le rappel!
Dom Hastings

2

Bash, 104 octets

Les \es sont des caractères d'échappement littéraux.

Ce sont en gros des traductions de ma soumission Perl, mais en utilisant une syntaxe de style bombe bombe à la bombe! Pas aussi intelligent que l'autre entrée bash qui écrit directement sur l'écran, j'en ai bien peur.

:(){ printf "\e[%i;%iH\e[48;5;%im " $((RANDOM%`tput lines`)) $((RANDOM%`tput cols`)) $((RANDOM%256));:;};:

Plus de pixels, 130 octets

Identique à ma réponse Perl, cela utilise un caractère Unicode pour le premier plan et colorie également l’arrière-plan de chaque pixel.

:(){ printf "\e[%i;%iH\e[48;5;%i;38;5;%im▄" $((RANDOM%`tput lines`)) $((RANDOM%`tput cols`)) $((RANDOM%256)) $((RANDOM%256));:;};:

Pas mal. Cependant, je ne comprends toujours pas le "\e[48;5;%im". Pourquoi les 48 et 5 sont-ils nécessaires?
MD XF

Cela donne accès à la totalité des 256 couleurs, plutôt qu'à la palette standard de 16 couleurs. Dans les terminaux qui le prennent en charge, il est possible de l'utiliser \e[48;2;RRR;GGG;BBBmmais très peu d'émulateurs de terminaux le prennent en charge ... :(
Dom Hastings

Sainte mère de code ... Je ne savais pas que c'était possible. Ma vie est un mensonge. Merci mille fois: P
MD XF

@MDXF ^^ et 38;5indique également le premier plan et le 48;5fond de désordre. misc.flogisoft.com/bash/tip_colors_and_formatting
Dom Hastings le

1
@MDXF Pas de soucis! Heureux de vous aider! Dommage que cela me manque quand c'était tout neuf, mais que Minecraft réponde ... irréel!
Dom Hastings

2

Langage machine x86 (mode réel) pour IBM PC, 20 19 octets

 0:       b8 12 00                mov    $0x12,%ax
 3:       31 db                   xor    %bx,%bx
 5:       cd 10                   int    $0x10
 7:       0f c7 f0                rdrand %ax
 a:       88 e1                   mov    %ah,%cl
 c:       0f c7 f2                rdrand %dx
 f:       b4 0c                   mov    $0xc,%ah
11:       eb f2                   jmp    0x5

Cela nécessite un processeur avec l' rdrandinstruction et un adaptateur VGA (réel ou émulé). Ce qui précède peut être copié dans un bloc de démarrage ou un fichier MS-DOS * .COM.

Pour essayer ceci, compilez ce qui suit et enregistrez la sortie dans un fichier du type floppy.imget démarrez l'image sur une machine virtuelle.

#include<stdio.h>
#include<string.h>
#include<unistd.h>
int main(){
  char buffer[ 1440*1024 ];
  memcpy( buffer, "\xb8\x12\x00\x31\xdb\xcd\x10\x0f\xc7\xf0\x88\xe1\x0f\xc7\xf2\xb4\x0c\xeb\xf2", 20 );
  memcpy( buffer + 510, "\x55\xaa", 2 );
  write( 1, buffer, sizeof buffer );
}

2

Super Chip (48) ?, 12 octets

0x00FF 'enter high resolution mode (64x128 pixels)
0xA209 'set I to 0x209 (second byte of draw instruction)
0xC03F 'set register 0 to a random number from 0 to 63
0xC13F 'set register 1 to a random number from 0 to 63
0xD101 'draw a sprite. x=register 1, y=register 0, height=1
0x1204 'jump to third instruction

Je ne suis pas sûr du nom exact, mais je devais utiliser celui-ci au lieu de Chip-8 normal à cause de la limitation de 40x40 pixels.


Lien vers cette langue (très intéressante)?
MD XF

Vous pouvez utiliser l'émulateur Octo: johnearnest.github.io/Octo
12Me21

2

QBIC , 34 octets

screen 12{pset(_r640|,_r480|),_r16

Malheureusement, QBIC ne définit pas de SCREENmode par défaut, ce qui consomme des octets.PSETest une commande illégale dans le contexte graphique par défaut de QBIC.

Explication

screen 12           Set the screen to a mode supporting (colored) graphics
{                   DO until the compiler is killed by ctrl-scroll lock
pset                PSET is a QBasic command to set one pixel
(_r640|,_r480|)     it takes a set of coords (x, y) which QBIC chooses at random with _r
,_r16               and a color (1,16)

Échantillon de sortie

@Anonymous a détecté une erreur dans la rnd()fonction de QBIC . Fixation qui donne la sortie ci-dessous. Merci!

entrez la description de l'image ici


Comme vous devriez le voir sur la capture d'écran, votre solution ne remplit pas les conditions du caractère aléatoire. Avec une coordonnée, toutes les couleurs n’ont pas la même probabilité et une même couleur; toutes les coordonnées n’ont pas la même probabilité; ils sont fortement corrélés et c'est un euphémisme. Le problème est le générateur de nombres aléatoires que vous utilisez: FUNCTION getRandomNumber! (Bottom!, Top!) ↵ RANDOMIZE TIMER 'this sets the random number generator ↵ IF Bottom > Top THEN ... END IF ↵ getRandomNumber = INT((Top - Bottom + 1) * RND + Bottom) ↵ END FUNCTIONVos nombres aléatoires ne sont que des hachages de l'heure actuelle.
Anonyme

@Anonymous C'est corrigé maintenant, merci!
Steenbergh

2

6502 Assembly, 582 bytes

Ouf, c'était amusant. Fait plus ou moins la même chose que ma solution Applesoft BASIC.

start:
lda #15
sta $0
sta $1
loo:
lda $fe
and #3
cmp #0
beq g_l
cmp #1
beq g_r
cmp #2
beq g_d
dec $1
d_w:
lda $1
and #$1f
asl
tax
lda ypo,x
sta $2
inx
lda ypo,x
sta $3
lda $0
and #$1f
tay
lda ($2),y
tax
inx
txa
sta ($2),y
jmp loo
g_d:
inc $1
jmp d_w
g_l:
dec $0
jmp d_w
g_r:
inc $0
jmp d_w
ypo:
dcb $00,$02,$20,$02,$40,$02,$60,$02
dcb $80,$02,$a0,$02,$c0,$02,$e0,$02
dcb $00,$03,$20,$03,$40,$03,$60,$03
dcb $80,$03,$a0,$03,$c0,$03,$e0,$03
dcb $00,$04,$20,$04,$40,$04,$60,$04
dcb $80,$04,$a0,$04,$c0,$04,$e0,$04
dcb $00,$05,$20,$05,$40,$05,$60,$05
dcb $80,$05,$a0,$05,$c0,$05,$e0,$05

S'agit-il de la version sans golf de votre autre réponse d'assemblage 6502 ? :-)
Cody Grey

@CodyGray Nope, il fait les choses un peu différemment. Cela ressemble plus à ma réponse Applesoft BASIC (utilise une marche aléatoire), et l’autre réponse d’ensemble 6502 est plus semblable à toutes les autres.
MD XF

Je ne suis pas d’accord avec le nombre d’octets: c’est bien inférieur à 583 octets d’assemblage?
Olivier Dulac

@OlivierDulac tio.run/##Zc/… ?
MD XF

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.