Rasgele renkli pikselleri görüntüle


47

Rasgele renkli piksellerle dolu ekranları her zaman sevdim. Onlar bakmak ilginç ve onları çekmek programları izlemek için eğlenceli.

Meydan okuma

Ekranınızı veya grafik penceresini renkli piksellerle doldurun.

Kurallar

  • Programınız toplama eşit bir şansa sahip olmalıdır tüm renkleri (aralığında yani #000000için #FFFFFF) veya sisteminizde görüntülenebilir tüm renkleri.
  • Programınız, manuel olarak durdurulana kadar rastgele pikselleri göstermeye devam etmelidir (kendi kendine sona erdirilemez).
  • Piksel, çıktınız en az 40x40 "piksel" olduğu sürece herhangi bir boyutta olabilir .
  • Programınız, ekranda / penceredeki her pikseli en az üç dakika çalıştıktan sonra en az bir kez değiştirebilecek şekilde çalışmalıdır.
  • Programınız değiştirilmek üzere gerçekten rastgele renkler ve noktalar seçmeli , yani tüm noktalar / renkler eşit olasılıkla rastgele seçmelidir . Sadece olamaz bakmak rastgele. Bir pRNG veya daha iyisini kullanmalı ve çıkış her seferinde aynı olamaz.
  • Programınız, her yinelemede tüm renkleri seçme konusunda eşit şansa sahip olmalıdır .
  • Programınız bir kerede yalnızca bir pikseli değiştirmelidir.
  • Programınız interneti ve dosya sisteminizi ( /dev/randomve /dev/urandomhariç) kullanamaz .

Örnek

Rastgele bir zamanda durdurulursa çıktınız şöyle görünebilir:

Kazanan

Her dilde en kısa cevap kazanır. İyi eğlenceler!


"Gerçekten rastgele" derken, sözde rasgele "Tamam" (Math.random () veya benzeri bir şey gibi) var
OldBunny2800

@ OldBunny2800It must use a pRNG or better
TheLethalCoder

Program interneti kullanamadığı için bunu yorumda bırakacağım: babelia.libraryofbabel.info/slideshow.html
KSmarts

1
Öyleyse "3 dakikalık limit" de kurulum süresi için geçerli midir? Ya da sadece bir kez "program" başlar? Sormak, çünkü bir kez gittiğinde çok hızlı bir şekilde çalışan bir Minecraft redstone çözümüm var, ancak başlangıçta kurulması biraz zaman alıyor (40x40 ızgaraya "her" pikseli "yerleştirmek zorunda").
BradC

5
Tanım gereği gerçekten rastgele sözde -randomu hariç tutar, ancak bir dağılım tanımlamaz. Tüm olayların birbiriyle eşitlenebilir ve birbirlerinden bağımsız olduğu tek tip bir PRNG demek istediğinizi varsayıyorum .
Dennis

Yanıtlar:


85

Minecraft 1.12 Redstone Komut Blokları, 4.355 2.872 bayt

Zırh standları ve harita ile Minecraft ekran görüntüsü

(Boyut, kaydedilen yapı bloğu dosya boyutuna göre belirlenir.)

İşte tam bir YouTube genel bakışı , ancak aşağıdaki kodu ana hatlarıyla belirtmeye çalışacağım.

Kurulum rutin:

Kurulum için 2 satır komut bloğu

Bu, Minecraft zırh standlarının 40x40 ızgarasını ayarlar. Zırh standları gereklidir, çünkü Minecraft'ın değişkenleri dünya koordinatlarına koyma yolu yoktur . Bu nedenle geçici çözüm, bu zırh standı varlıklarının konumuna atıfta bulunmaktır .

(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

Bu adlandırılmış zırh standı temelde ihtiyaç duyacağımız tüm zırh standlarını yerleştirmek için "imlecimiz" dir. Son adımdaki redstone bloğu yakındaki bloklara (komut bloklarımız dahil) "güç verir", bu nedenle bir sonraki döngüden başlıyor:

(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

Bu noktada şebekemiz tamamlanmıştır:

Tamamlanmış zırh standı ızgarası

Rastgele Renk Seçici

Renk ve Piksel Seçici

Bu resmin ortasındaki mor tekrarlayıcılar, aşağıdaki komutla rastgele bir renk seçer:

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

Bu "@ r []" sihirli sosu, dünyada verilen şartlara uyan rastgele bir varlık seçer . Bu durumda, 9 blok yarıçapında bir zırh standı bulur ve her yün rengi için bir tane 16 zırh standı kurduk. Seçilen rengin altına, bir redstone bloğu yerleştirir (her iki taraftaki iki komut bloğuna güç verir).

Rastgele Piksel Seçici

Redstone bloğunu seçilen yün renginin altına yerleştirmek iki tane daha komut bloğunu tetikler:

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

Bu ilk satır , tüm haritadaki herhangi bir zırh standını seçmek için aynı magic @r komutunu kullanır (yarıçap kısıtlaması yoktur, böylece 40x40 ızgarayı içerir) ve seçilen rengin yününü başının üstüne yerleştirir. X rengi belirler ve 0 ila 15 arasındadır. İkinci komut redstone bloğunu kaldırır, böylece tekrar gitmeye hazır olur.

5 adet mor tekrarlayıcı bloğum var ve redstone saniyede 20 kez "keneler" olarak çalışıyor, bu yüzden saniyede 100 piksel koyabiliyorum (eksi biraz renk çakışması). Zaman aşımına uğradım ve genellikle bütün ızgarayı yaklaşık 3 dakika içinde kapatıyorum.

Bu eğlenceliydi, Minecraft'ta da çalışabilecek başka zorluklar aramaya çalışacağım. YouTube Komut Bloğu eğitim serisi için lorgon111'e çok teşekkürler .

EDIT: Kaydedilen yapının boyutunda bazı ciddi indirimler yapıldı, şimdi 2.872 byte :

görünür boşluklu bloklarla daha yakın komut blokları

  1. Scooted şeyler biraz (tüm 3 boyutta) böylece kaydedilen alanın toplam boyutunu azaltabilir.
  2. Farklı renkli yünleri taşa dönüştürdüler, yine de dekoratiflerdi.
  3. Kızdırma taşı lambasını çıkardı.
  4. Tüm hava bloklarını blokları (kırmızı kareler) boşaltacak şekilde değiştirdik.

Kaydedilen yapıyı yeni bir dünyaya çekerek test edilen her şey hala tasarlandığı gibi çalışıyor.

2 EDIT : Salt Okunur Dropbox NBT yapı dosyasına bağlantı

Gezinmek YouTube videomda , ancak işte adımlar:

  1. Minecraft 1.12'de, "Redstone Ready" ön ayarını kullanarak yeni bir yaratıcı yüzeysel dünya yaratın. Huzurlu mod yap.
  2. Dünya var olduğunda, NBT dosyasını \structuresmevcut dünya kaydetme altında oluşturduğunuz yeni bir klasöre kopyalayın.
  3. Geri oyunda, do /give @p structure_blockve /tp @p -12, 56, -22doğru noktaya atlamak için başlamak için.
  4. Bir çukur kazın ve yapı bloğunu -12, 55, -22'ye yerleştirin.
  5. Yapı bloğunu sağ tıklayın, "Yükle" olarak değiştirmek için mod düğmesini tıklayın.
  6. "Random_pixels" yazın, "include varlıklarını" AÇIK hale getirin ve "Yükle" ye tıklayın
  7. Yapı dosyasını bulursa, anahattı önizler. Yapıyı dünyaya getirmek için tekrar sağ tıklayın ve "yükle" yi tıklayın.
  8. Kurulum rutini çalıştırmak için düğmeye basın.
  9. Tamamlandığında, yün randomizasyonunu çalıştırmak için düğmeyi çevirin.

6
Kutsal bok ... gerçekten yaptın. Ve bu senin ilk cevabın, vay! Siteye hoşgeldiniz ve bu başlamak için harika bir yol!
MD XF

2
@MDXF +10'unuza ek olarak +60
NoOneIsHere

2
@Hayır YokHere Pekala: P Ama bir cevabınız varsa, +100 ... olmalıdır
MD XF

2
Eğer dünya dosyasını verirseniz bunu denemeye çalışacağım (başka bir cevap göndermeyeceğim ama sadece dosyayı vereceğim)
Christopher

2
Peki, shortest answer in each language winsbu Minecraft'taki en kısa cevap: P +15
MD XF

20

sh + ffmpeg, 52 bayt

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

Ffmpeg bir esolang olarak sayılır mı? : D

Ne yazık ki pix_fmt gereklidir, zira ffmpeg öntanımlı olarak yuv420p. Bu, "her olası piksel renginin eşit olasılığına sahip olmalı" şartını yerine getirmiyor. cif"40x40" ten daha az alan kullanan oldukça büyük bir video boyutu için uygun bir kısayol.

Şaşırtıcı olmayan bir şekilde, bu gif'i gifikül ile optimize etmek kesinlikle hiçbir şey yapmadı. 4MiB.


3
Bu " bir kerede yalnızca bir pikseli değiştir " mi?
Scott Milner

1
Teknik olarak? ffmpeg, görüntülemeden önce tüm karenin piksellerle doldurulmasını bekleyecektir. "Yanlış" olarak "bir seferde yalnızca 1 pikseli" değiştirmeli "yanlış yazdım. : /
Una

1
Ve tabii ki gifsicle, gif'de herhangi bir bayt kaydedemedi: rastgele verileri sıkıştırmanın bir yolu yoktur ve rastgele piksellerin tümü düzensiz olarak düzenlenir, bu da onları kodlamanın en etkili yolunun bir seferde bir piksel olduğu anlamına gelir . Numberphile (sanırım?) “Bilgi nedir” konulu bir videoya sahipti ve YouTube'un sıkıştırmasıyla kasıtlı olarak karışmak için rastgele ses çıkardı. VSauce'un bir noktada video sıkıştırma konusunda da bir videosu vardı, ama ne dendiğini unuttum.
Draco18,

2
@ Draco18s, biliyorum, sıkıştırılamaz olduğu ile ilgili not, yine de üzerinde gifsicle kullanmaya çalıştığım için kendimle dalga geçiyordu.
Una

2
Gifsicle yanlış bir araçtır. Precomp 4 MB'tan 3 MB'a indiriyor :) Bunun nedeni GIF algoritmasının sıkıştırmak yerine rastgelelığı arttırması ve Precomp'un bunu tersine çevirmesi.
schnaader

17

POSIX üzerindeki C, 98 96 95 92 bayt

-3 Tas sayesinde

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

Bu, 16 renk (koyu gri, kırmızı, yeşil, mavi, turuncu, mavi, mor, açık gri, siyah, pembe, açık mavi, sarı, açık mavi, kırmızı, beyaz) arasından seçim yapar ve bunları doğrudan terminale yazdırır.

GPU'nuz çok yavaşsa, tüm ekranı bir kerede güncelliyor gibi görünebilir. Aslında piksel piksel gidiyor, ancak C hızlı.

renkler

Renkleri daha belirgin hale getiren alternatif çözüm:

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

Piksel piksel piksel (kanıtı alternatif programdan ekran) gider kanıtı:

3 boyutlu!!!

Vay, bu neredeyse 3 boyutlu görünüyor ...


Doğru bir ;şekilde derlemek için bir eksik ama bunun dışında harika iş gibi görünüyor! B-)
cleblanc

@cleblanc Oh, haklısın! Ben den anahtarlamalı sonra eklemek unuttum whileiçin for.
MD XF

2
Muhtemelen birkaç byte'ı tıraş #define r rand()edip sonra kullanabilirsinizr%40, r%40, r%2, r%8
Tas

32 bit renk kullanmamak, bu gereklilikleri karşılamaz.
wberry

4
@wberry "Programınız tüm renkleri (örn. # 000000 - #FFFFFF aralığında) veya sisteminizde görüntülenebilecek tüm renkleri seçme şansına sahip olmalıdır . " Bunların hepsi POSIX terminalinin görüntüleyebileceği renklerdir. "
MD XF

13

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

Luke'a ve diğer yorumculara beni bir sürü baytı kurtardığı için teşekkürler.

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
Aslında -element <canvas id=c>için varsayılan boyutun "viewport boyutunuzu" aştığını ve bunun üzerinde olduğunu düşündüğüm için aslında yeterli olmalıdır . Her neyse, güzel bir çözüm. canvas300 x 150 px99 x 99 px
insertusernamehere

1
@insertusernamehere, evet, teşekkürler
Octopus

1
Şimdi Firefox'ta çalışmıyor. Chrome'da çalışıyor
ETHproductions

1
Tamam, tamam, anladım. B = c.getContext komutunu kullanarak 2 bayt kazanın 2d. ( "2d" Bir şablon değişmezi ise emin değilim bu biçimlendirmek nasıl ama, bu parantez gerek yoktur.) (Önceki önerileri silinmesi.)
Rick Hitchcock

1
Rick'in önerisi ile birlikte with, aşağıdakilerin tüm örneklerinden kurtulmak için bir ifade kullanın 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 16

11

MATL, 28 bayt

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

MATL Online'da deneyin . .5Y.Bu sürüme yarım saniye duraklama ( ) ekledim .

görüntü tanımını buraya girin

açıklama

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
Onu seviyorum! ----
MD XF

4
meraktan, kod çıktınızı nasıl öğrendiniz?
Ahtapot

2
@Octopus sadece LICEcap kullandım . Bu günlerden birinde, animasyonlu GIF çıktısını çevrimiçi derleyiciye dahil edeceğim.
Suever

Bu cevabın nasıl benzer bir sonuç elde etmek için daha az komut / yöntem kullandığını görünce , daha düşük bir puan almak için MATL'ye çeviremez miydiniz?
MD XF

Daha önce değiştirilmiş bir pikselin tekrar değiştirildiğini gördüm;).
Magic Octopus Urn,

7

TI-BASIC (yalnızca 84 + C (S) E), 37 35 bayt

: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

Donanım kısıtlamaları nedeniyle, bu durum çökecektir, çünkü bir program her program TI-BASIC'de bir program içine yerleştirildiğinde , ana programda "yer imini tutmak" için 15 KB RAM tahsis edilmiştir. Bu, sonsuz RAM içeren "teorik" bir hesap makinesinde iyi sonuç verir, ancak süresiz olarak gerçek bir hesap makinesinde çalışmasını istiyorsak, bunu While 1fazladan 2 bayt için bir döngüye sarabiliriz :

:While 1
:...
:End

Renkli ekranlı TI-83 aile hesap makineleri (TI 84 + CE ve CSE) 15 rengi destekler. Onlar renk kodları var 10aracılığıyla 24. Bu, 120 x 120 ( 5!) karedeki tüm pikseller arasında geçiş yapar ve her birine rastgele bir renk atar.

Sonuç:

görüntü tanımını buraya girin


Yay, başka bir TEMEL cevap! Sadece emin olmak için, bu sonsuza kadar çalışır mı?
MD XF

@ MDXF Şimdi yapar! ;-). İlk kez o kısmı kaçırdım. +5 bayt.
Scott Milner

100x100 pikseli gizlemek istiyorsanız for döngülerinin 0'dan başlamasını sağlayabilirsiniz.
kamoroso94

@ kamoroso94 Ah, doğru. 5!120 piksel istersem de yapabilirdim .
Scott Milner

2
@MDXF TI-TEMEL bir belirteci tabanlı . Yani For(1 bayt, Pxl-On(1 bayt, randInt(2 bayt, vb.
Scott Milner

5

MATLAB, 56 bayt

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

Çıktı aşağıdaki resme benziyor. Bir seferde bir "piksel" değişir ve RGB renklerinden yalnızca biri değişir.

Neden? MATLAB'daki renkler, R-G ve B için bir katman olan 3D-matris olarak temsil edilir. Yukarıdaki kod, yineleme başına katmanlardan yalnızca birini değiştirir. Tüm pikseller ve tüm katmanlar değiştirilebilir, böylece biraz beklerseniz tüm renkler tüm konumlarda eşit olarak mümkündür.

Her görüntü arasında saniye pause(t)duraklatmak için döngünün içine ekleyin t.

Ctrl+ İle durdurmalısınız C.

görüntü tanımını buraya girin


3
Tutamağın grafik nesnesine zekice kullanımıwhere
Suever

2
Bir kural açıklığa kavuşturuldu - Your program must have an equal chance of picking all colors/points each iteration. Programınız bunu yerine getiriyor mu?
MD XF

5

Bash + coreutils, 59 56 bayt

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

\e[48;5;COLORm arka plan rengine kaçış sekansıdır.

Her "piksel", her seferinde [0..16777215] aralığında olma şansına sahiptir.


1
Vay, bu gerçekten iyi bir fikir! +1
MD XF

jotfor((;;)){ printf "\e[48;5;`jot -r 1 0 16777215`m ";}
Kullanırsanız

Bu fikri çaldım ve onu 45 bayta indirdim (\ e 1 kaçış karakter, ve shuf | xargs kısaltır (-n 1'e gerek yok). Codegolf.stackexchange.com/a/158142/7017 Eğer istersen silebilirim (Bunu sadece gönderim yapmak yerine bir yorum olarak önermek zorunda olup olmadığımdan emin değilim. Amacım bir güne kadar birkaç puan kazanıp şaşırtıcı "tetris'in şaşırtıcı cevaplarını bulmak." ! hayat" meydan okuma ve cevap oyununda bakınız codegolf.stackexchange.com/q/11880/7017
Olivier Dulac

5

Javascript + HTML 118 + 13 (131 bayt)

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>

  • Bu eşit dağıtılmış RGB renkleri üretecektir. Sen gibi numaraları gibi uygun dolgu hariç Hex renkleri kullanamazsınız #7geçerli bir renk değildir, veya #777ve #777777aynı rengi (oran 2x) vardır
  • Tuval öğesi varsayılan olarak 300x150'dir, ancak gerçekte 255x255 kare üzerinde çizim yapıyorum, bu nedenle tuval piksel dışı olduğu için etkili alan 255x150'dir.
  • Yalnızca Google Chrome'da çalışır.

2
Harika ilk mesaj! Siteye Hoşgeldiniz!
MD XF

Bunun, 255'te ayarlanan, kırmızı, yeşil, mavi veya beyaz gibi bir renkle herhangi bir renk gösterme şansına sahip olduğunu sanmıyorum. Bunun yerine 256 ile çarpmanız gerektiğini düşünüyorum.
kamoroso94

4

Excel VBA, 131 102 85 Bayt

Bir aktif işlev kullanan (aşağıya bakınız) anonim VBE ani pencere işlevi A1:AN40, aktif sayfa nesnesinin aralığına rastgele renkli hücreler dizisi üretmek için.

Not: Bu çözüm, 8^8VBA'nın 64 Bit sürümlerinde derlenmeyecek olan 32 Bit MS Excel yüklemeleri (ve dolayısıyla bir bütün olarak Office) ile sınırlıdır

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

Örnek çıktı

Randomize Hücre Renkleri

Önceki versiyon

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

Yardımcı İşlev

Aralıkta rasgele bir int çıkarır [0,255]

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

3

C #, 369 288 287 bayt

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);}}}

@CodyGray sayesinde 88 bayt kaydedildi.

Ekranın tanıtıcısını ve boyutlarını gösteren tam bir program ve ardından rasgele piksel çizmeye başlar. Bunun grafik kartınızı koştuğunda durdurabileceğini unutmayın. Ayrıca ekran veya herhangi bir kontrol herhangi bir zamanda yeniden boyamaya karar verirse, pikseller kaybolur ve yeniden çizilmelidir.

Not: Çalıştırırken pencerenin odağını öldürecek şekilde odaklanın, Alt + F4 tuşuna basın veya kapat düğmesine basın ve ekranın biraz zor olduğunu göremediğinizde bunu yapmanız gerekir.

ScreenToGif ile bu çalışmayı kaydedemedim, zira bu piksellerin kaldırılması için tekrar boyamaya zorladı. Ancak, burada yaklaşık 10-15 saniye sonra çalışan bir ekran görüntüsü, artık ve bilgisayarımı durdurabilirim! Sağ üst köşedeki boşluk, ekran görüntüsünü alırken ekranın yeniden boyamaya zorlandığı yerdir.

Tam sürüm örneği

Tam / Biçimli sürüm:

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);
        }
    }
}

Yalnızca 0-40 bölgesini çizen 308 227 226 bayt sürümü :

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);}}}

Bunun için örnek çıktı:

Küçük örnek çıktı



Graphics.FromHwnd((IntPtr)0)aynı zamanda çalışacak ve P / Invoking'den çok daha kısa olacaktır GetDC. Elbette, kodunuz Tas'ınki gibi ve çılgın gibi kaynakları sızdırıyor, bu nedenle makinenizi kısa bir süre çalıştıktan sonra makineyi durduracak şekilde taşlıyor.
Cody Gray

@CodyGray Ah, sızıntı yaptığını biliyorum, yine de zorlukların içinde çalışmalı. Ve GetDCgeri dönmez, IntPtr.Zerobu yüzden FromHdcişe yaramayacak.
TheLethalCoder

1
Öneriyi daha dikkatli okuyun. :-) Aramanı öneririm FromHdc, aramanı öneririm FromHwnd. GetDCBir pencere tanıtıcısı için DC'yi almak için arama yaptığınızda , pencere tanıtıcısı olarak bir NULL işaretçisini (0) geçirdiğinizi unutmayın .
Cody Gray,

@CodyGray Ah evet işe yarıyor, teşekkürler! Benzer şekilde adlandırılmışlar, yorumunuzu daha dikkatli okumalılardı ...
TheLethalCoder

3

C # Konsol, 233 220 189 188 bayt

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(" ");}}}}

görüntü tanımını buraya girin

"Tümü" (pencereler) 16 konsol rengini kullanır.

usingYönerge aracılığıyla C # 'daki diğer sınıfları takas edebilmek için "özellik" için teşekkürler .

# 1 düzenle

  • Bazı boşluklar kaldırıldı.

  • Random.Next () içinden sıfır kaldırıldı

  • Gitti namespace system{...}

# 2 düzenleyin

  • Minimum ızgara büyüklüğü 40x40

  • Döngü başlığı için Rastgele bildirerek bir bayt

  • publicAna yöntemden kaldırıldı

# 3 düzenle

Çıkıyor using C=Console;ise değil orada iyi. using static Consolesınıfları "İthalat" için VB.Net yolu gibi

Pes ediyorum: TheLethalCoder bunu gerçekleştirdi


Pencere boyutunu 207 bayta uyarlamak için orijinal kod:

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(" ");}}}}

Orijinal görüntü:

görüntü tanımını buraya girin


namespace Systembayt tasarrufu gerekir, r.Nextinanıyorum sıfırı kaldırabilir, ilgisiz beyaz alanı kaldır,
TheLethalCoder

Ayrıca sadece C # titling iyi
TheLethalCoder

Teşekkürler! Konsolu başlığımda bırakıyorum çünkü bu meydan okuma için kendimi değerli bağlamlar sağlıyor. Nasıl namespace System{}daha kısa olduğunu anlamıyorum using System;. Açıklamak ister misin?
MrPaulch

1
Halkın bunun için gerekli olduğu bu güçlü ama temelsiz hafızam vardı Main. Asılsız anılar en iyisidir!
MrPaulch

1
Teşekkürler. Pes etmeyeceğim! :) Bir sonraki mücadelede öğrendiklerimi kullanacak!
MrPaulch

3

İşlem, 90 bayt

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

görüntü tanımını buraya girin

genişletilmiş ve yorum yaptı:

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 
}

İdeal olarak, x, y konumu yerine bir piksel dizini kullanabilirdim, ancak İşleme'nin pixels[]erişiminin kullanımı loadPixels()öncesi ve updatePixels()sonrası gerektirir set(). point()Ben de çalışırdım, ama daha fazla karakter ve gerektirir stroke(). Rastgele alan aslında bir kaç bayt (100x100 yerine) kurtarmak için 99x99'dur, ancak bu, değiştirilecek böyle bir alandaki her pikselle birlikte 40x40'ı kapsamalıdır.

Perlin paraziti () , daha sahte bir rastgele ve bir bayt daha kısa tutmak için rastgele () yerine kullanılır . Değer bir kez hesaplanır, ancak iki kez kullanılır: bir kez rastgele pozisyon için, sonra tekrar renk için.

Renk aslında ARGB(00000000 - FFFFFFFF) (RGB değil) (bonus puan?: D).


Harika ve sizi bu sitede görmek güzel!
Kevin Workman

Bilge! ve teşekkürler! :)
George Profenza

+1 set()çok temiz bir numaradır ve İşleme golf
oynamak

ooooooh! Bunu bilmiyordum. Orada ekleyeceğim, teşekkürler :)
George Profenza

2

Python, 133 bayt

Bu özelliklere uyup uymadığından emin değilim, çünkü 40x40'lık bir alandaki tuvalde.

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+')'))

Çevrimiçi deneyin -evalBiblo'da çalışmayansürüm


Not oldukça emin niçin, belki kaplumbağa dist madenden farklı olan, ancak varsayılan iken varsayılan tuval 400 ile 300 colormodeolduğunu 1.0değil 255.
Jonathan Allan,

Trinket.io oldukça benzersizdir.
mbomb007

Evet - sadece değişmeyi denedim colormodeve hiçbirinde olmayacaktı: /
Jonathan Allan

Neden de çalışmıyor dot(1,R(0,255),R(0,255),R(0,255))? dotkabul etmek içindir (width,*color). Python değil: p
Jonathan Allan,

Çünkü Trinket.io, Python'un eksik bir uygulaması olan skulpt.js'yi kullanıyor.
mbomb007

2

Tuval 340 316 324 bayt kullanarak JavaScript

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);

tam versiyon


2
Siteye Hoşgeldiniz! :)
DJMcMayhem

Bu, "Programınız manuel olarak durdurulana kadar rastgele pikselleri göstermeye devam etmelidir (kendi kendine sona erdirilemez)" kuralını kabul ediyor mu?
Ahtapot

Bu, çalıştırıldığında basitçe bir demet rastgele piksel oluşturuyor gibi görünüyor. Durdurulana kadar pikselleri birer birer göstermeye devam etmez.
MD XF

Görünüşe göre bu kuralı kaçırdım. Yanlışlıkla amaç bir animasyon değil bir görüntü oluşturmak için olduğunu düşündüm. Bilgisayarıma döndüğümde cevabımı güncelleyeceğim.
Tim Penner

1
@MDXF şimdi canlandırıldı
Tim Penner

2

İşlem, 112 bayt

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

Her pikselin 3 dakikada bir değiştirildiğini garanti edemiyorum, ancak bakıldığında öyle görünüyor. En azından, 1600 toplamın bir pikselinin eksik olması, saniyede 30x rastgele bir güncelleme yapılması, 3 dakikada toplam 5400 güncelleme yapılması, birinin kaçırılması ihtimalini düşürüyor.

Ungolfed:

Program gerçekten çok basit. 40x40 piksel değerinde bir pencere açın ve her kare (saniyede varsayılan 30) rastgele bir renk alır ve 0 ile parametre arasında rasgele bir koordinatta bir nokta çizer. Piksel koordinatları için 40, renkler için 255.

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

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

görüntü tanımını buraya girin


Eğer kaldırabilir size(40,40);ve değişim pointiçin point(random(99),random(99));? (veya eğer 99 çalışmıyorsa 100 yerine)
Kritixi Lithos

İşlemdeki @KritixiLithos, sizeişlev kurulum işlevindeki ilk kod satırı (ZORUNLU nedenlerdir) olmalıdır, bu yüzden bunu alamıyorum. 40'dan 99'a kadar olan tüm oluşumları değiştirebilirim. Her pikselin 3 dakikalık bir sürede yenilenme olasılığını artırmak için çoğunlukla asgari boyutla gittim
Cody

Heh, birisi bu konuda bana ve gördüğünüz gibi bir şekilde, çalıştı kadar ben ilk, hem de öyle düşünmüştüm burada benim bir gönderme.
Kritixi Lithos

1
Makinemdeki İşlemenin setup()son sürümündeki tüm işlevi kaldırmak, hatasız çalışıyor.
Kritixi Lithos

Sanırım İşlem versiyonum oldukça eski ve şu anda yükseltme işleminde sorun yaşamayacak kadar kullanmıyorum.
Cody

2

HTML + SVG + PHP, 245 Bayt

<?$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 />";

Expanded

$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

Meta etiketi olmayan ve daha büyük bir sürümde Çıktı örneği

<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

Windows'ta C ++, 125 bayt

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

Yeni satırlar gerekli ve bayt sayımına dahil edildi.

Sonsuza kadar döngüler, satır ve sütun değerleri için rastgele 0 ile 255 (dahil) arasında bir konum seçer, rastgele R, G, B değerleri 0-255 (dahil) arasında atar


1
Bunu golf oynadığının farkındayım, ama döngü boyunca her seferinde bir cihaz bağlamını sızdıran adam gerçekten ürkütücü hislerimin karıncalanmasına neden oluyor!
Cody Gray

C derleyicileri #includes'yi bırakmanıza izin vereceğinden, Windows'ta C ++ yerine Windows'ta C yaparak 15 bayttan tasarruf edin . (Ve evet, Windows için Visual Studio C olmayan derleyiciler var.)
MD XF

2

Python 3.6 + Tkinter, 281 bayt

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()

Gibi tkinterstandart bir kütüphane, üstbilgi dahil etmek gerekmez
coinheringaahing Caird

Aynı hatayı alıyorum - Windows 10, Python 3.6.0 Neden init'in dört parametreyi geçtiğini tahmin edebiliyorum - yöntem dolaylı olarak bir "self" parametresi geçiriliyor. Ancak bunun neden bir hata oluşturduğunu bilmiyorum, çünkü belgeler Canvas yapıcısının kodda gösterildiği gibi üç parametre (ana, x, y) kabul ettiğini gösteriyor.
CCB60

Şimdi düzeltilmeli.
Martmists

1
Ayrıca @Ilikemydog Tkinter her zaman stdlib'de değildir. Windows'ta yükleme işlemi isteğe bağlıdır ve kemer bölümümde de Tkinter kurulu olduğunu sanmıyorum. Bunu da içerebilir.
Martmists

Bu yazım hatası - "ı" yerine "img". Ve hala işe yaramıyor, bu sefer alıyorumc.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) + SVG kullanarak HTML, 129 + 10 = 139 bayt

SVG versiyonu, @ Octopus'un <canvas>yaklaşımından büyük ölçüde ilham aldı .

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>

Stack Snippet, <rect>etiketi ayrıştırıp betiği kırmayı sevdiğinden , işte bir CodePen .


2

6502 Meclisi, 92 bayt

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

Çıktı:

çıktı

Açıklama:

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
Hedef 6502 platformunuz nedir? BBC Micro? Elma ][? Commodore VIC-20 vb ...?
Shaun Bebbers

Etiket adları en az üç karakter uzunluğunda olmalı mı?
Jonathan Frech

2

Logo, 71 bayt

Bildiğim tek dil ezoterik olmama / kodlama için özel olarak tasarlanmış ve foreverişleve sahip olma. mapParça hakkında bir fikriniz var mı?

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

2

shortC , 66 56 bayt

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

Rand sayesinde -10 bayt. : 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

TIO bağlantısı yok, çünkü çevrimiçi olarak ihtiyaç duyduğu terminal türüne baskı yapamazsınız.


2

Perl (açık * nix), 69 bayt

\x1bS değişmez kaçış karakterlerdir.

sttyKomuta güvenir ve OS X'te iyi çalışır.

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

Diğer yaklaşımlara benzer şekilde, ancak printfpaylaşacağımı düşündüğüm tüm paramların tek bir çağrıya birleştirilmesini sevdim . Terminalimi öldürdü.

görüntü tanımını buraya girin


En fazla iki kat, 83 bayt

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

Bu yaklaşım bir unicode blok ve rastgele bir ön plan ve daha fazla kare piksel veren arka plan rengini kullanır . Terminalimi de öldürdü, ama daha havalı görünüyor.

görüntü tanımını buraya girin


Unutmayın, değişmez çıkış baytını kullanabilirsiniz, ASCII 0x1B (27) yerine \e. Ve StackExchange’te bununla temsil edilebilir .
MD XF,

@ MDXF Evet ... Bunu senaryo olarak test etmem gerekiyor, çünkü işe yaramadı -e! Ayrıca unicode'lu olanın bayt sayısını da yükseltmem gerekiyor. Hata! Hatırlatma için teşekkürler!
Dom Hastings,

2

Bash, 104 bayt

\eS değişmez kaçış karakterlerdir.

Bunlar benim Perl gönderimimin hemen hemen çevirileridir, ancak bash fork bombası tarzı sözdizimini kullanıyorlar! Korkarım ekrana doğrudan yazan diğer bash girişi kadar akıllıca değil.

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

Daha fazla piksel, 130 bayt

Perl cevabımla aynı şekilde, bu ön plan için unicode bir karakter kullanıyor ve her pikselin arka planını da renklendiriyor.

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

Fena değil. Ancak, hala anlamıyorum "\e[48;5;%im". 48 ve 5 neden gerekli?
MD XF

Bu standart 16 renk paletinden ziyade tam 256 renge erişiyor. Onu destekleyen terminallerde kullanmak mümkündür, \e[48;2;RRR;GGG;BBBmancak çok az sayıda terminal emülatörleri onu destekler ... :(
Dom Hastings

Şifrenin kutsal annesi .... Bunun mümkün olduğunu bilmiyordum. Hayatım Yalan. Bir milyon teşekkürler: P
MD XF

@ MDXF ^^ ve ayrıca 38;5ön plan ve 48;5deonat arka planını gösterir. misc.flogisoft.com/bash/tip_colors_and_formatting
Dom Hastings

1
@MDXF Endişelenmeyin! Yardım etmekten memnun oldum! Utanç duyduğumda yepyeni bir şeyken özledim ama Minecraft cevap verdi ... gerçek dışı!
Dom Hastings,

2

IBM PC için x86 makine dili (gerçek mod), 20 19 bayt

 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

Bu, rdrandtalimatı içeren bir işlemci ve bir VGA adaptörü (gerçek veya öykünmüş) gerektirir. Yukarıdakiler bir önyükleme bloğuna veya MS-DOS * .COM dosyasına kopyalanabilir.

Bunu denemek için, aşağıdakileri derleyin ve çıktıyı bir dosyaya kaydedin floppy.imgve görüntüyü sanal bir makinede önyükleyin.

#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

Süper Çip (48) ?, 12 bayt

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

Tam adından emin değilim, ancak 40x40 piksel sınırlaması nedeniyle normal Chip-8 yerine bunu kullanmak zorunda kaldım.


Bu (çok ilginç) dilin bağlantısı var mı?
MD XF

Octo emülatörünü kullanabilirsiniz: johnearnest.github.io/Octo
12Me21

2

QBIC , 34 bayt

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

Ne yazık ki, QBIC SCREENvarsayılan olarak bir mod ayarlamamaktadır , böylece bazı baytlar yer. PSETQBIC'in varsayılan grafik bağlamında geçersiz bir komuttur.

açıklama

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)

Örnek çıktı

@Anonymous QBIC'in rnd()işlevinde bir hata buldu . Aşağıdaki çıktıyı veren sabitleme. Teşekkürler!

görüntü tanımını buraya girin


Ekran görüntüsünden açıkça görüleceği gibi, çözümünüz rastgelelik koşullarını karşılamıyor. Bir koordinat verildiğinde, tüm renkler eşit derecede muhtemel değildir ve renk verilir, tüm koordinatların eşit olması muhtemel değildir; Onlar yüksek korelasyona sahip ve bu hafifçe koyarak. Sorun, kullandığınız rasgele sayı üretecidir: 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 FUNCTIONRasgele sayılarınız, geçerli saatin karmalarıdır.
Anonim

@Anonymous Şimdi düzeltildi, teşekkürler!
steenbergh 16:17

2

6502 Meclisi, 582 bayt

Vay, bu eğlenceliydi. Applesoft BASIC çözümümle neredeyse aynı şeyi yapıyor.

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

Bu diğer 6502 meclisinin asılsız versiyonu mu? :-)
Cody Gray

@CodyGray Hayır, işleri biraz farklı yapar. Daha çok Applesoft BASIC cevabım gibi (rastgele bir yürüyüş kullanıyor) ve diğer 6502 montaj cevabı da diğerleri gibi.
MD XF

Bayt sayısıyla aynı fikirde değilim: bu 583 bayt derlemesinden çok daha kısa mı?
Olivier Dulac

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

2

Powershell, 128 126 124 bayt

-2 bayt teşekkürler @Veskah

for(){($c=[Console])::SetCursorPosition((random($c::WindowWidth)),(random($c::WindowHeight)))
Write-Host ' '-b(random 16)-n}

Çıktı:

konsol

VS kod çıkışı:

VS Kodu


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.