Показувати випадкові кольорові пікселі


47

Мені завжди подобалися екрани, наповнені випадковими кольорами пікселів. Їх цікаво подивитися, а програми, які їх малюють, цікаво дивитися.

Змагання

Заповніть ваш екран або графічне вікно кольоровими пікселями.

Правила

  • У вашій програмі повинен бути рівномірний вибір усіх кольорів (тобто в діапазоні #000000до #FFFFFF) або всіх кольорів, які можуть відображатися у вашій системі.
  • Ваша програма повинна продовжувати відображати випадкові пікселі, доки вручну не зупиниться (вона не може завершитися самостійно).
  • Пікселі можуть бути будь-якого розміру, якщо ваш вихід має принаймні 40x40 "пікселів".
  • Ваша програма повинна працювати з такою швидкістю, щоб вона могла замінити кожен піксель на екрані / вікні хоча б раз після запуску протягом трьох хвилин.
  • Ваша програма повинна вибрати справді випадкові кольори та точки, які потрібно замінити, тобто випадкові з усіма точками / кольорами однаково вірогідними. Він не може просто виглядати випадковим чином. Він повинен використовувати pRNG або краще, і вихід не може бути однаковим кожен раз.
  • У вашій програмі повинен бути рівний шанс вибрати всі кольори для кожної ітерації .
  • Ваша програма повинна замінити відразу один піксель.
  • Ваша програма не може використовувати Інтернет, ані вашу файлову систему ( /dev/randomі /dev/urandomвиключена).

Приклад

Вихід може виглядати так, якби зупинився у випадковий час:

Переможець

Виграє найкоротша відповідь на кожній мові. Веселіться!


За "по-справжньому випадковим", я припускаю, що псевдослучайність нормальна (як Math.random () або подібне)
OldBunny2800

@ OldBunny2800It must use a pRNG or better
TheLethalCoder

Оскільки програма не може користуватися Інтернетом, я просто залишу це у коментарі: babelia.libraryofbabel.info/slideshow.html
KSmarts

1
Тож чи застосовується "обмеження на 3 хвилини" і на час налаштування? Або лише раз починається "програма"? Запитання тому, що у мене є рішення для Minecraft Redstone, яке запускається дуже швидко, як тільки він відбудеться, але спочатку потрібно налаштувати час (він повинен "помістити" кожен "піксель" в сітку 40x40), перш ніж він може почати змінювати кольори.
BradC

5
Дійсно випадковий за визначенням виключає псевдо- випадковий , але розподіл не визначає. Я припускаю, що ви маєте на увазі єдиний PRNG, де всі події є однозначними та незалежними одна від одної.
Денніс

Відповіді:


85

Minecraft 1,12 Командні блоки Redstone, 4 355 2 872 байт

Скріншот Minecraft з броневиками та картою

(Розмір визначається розміром збереженого блоку структури.)

Ось повний огляд YouTube , але я спробую окреслити код нижче.

Налаштування:

2 рядки командних блоків для налаштування

Це налаштовує сітку для броні Minecraft 40x40. Броньовані стенди необхідні, оскільки Minecraft не має можливості замінити змінні на світові координати . Таким чином, вирішення полягає у посиланні на розташування цих озброєнь.

(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

Ця названа броньова підставка - це в основному наш «курсор», щоб розмістити всі броньові стенди, які нам знадобляться. Блок червоного каменю на останньому кроці "впорядковує" сусідні блоки (включаючи наші командні блоки), тому починається наступний цикл:

(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

На сьогодні наша сітка завершена:

Завершена сітка для броні

Випадковий вибір кольорів

Вибір кольору та пікселів

Фіолетові ретранслятори в центрі цього зображення вибирають випадковий колір за допомогою наступної команди:

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

Що "@r []" є чарівним соусом, він вибирає випадкову сутність у світі, яка відповідає заданим умовам . У цьому випадку він знаходить бронебійку в радіусі 9 блоків , і ми встановили 16 підстав для броні, по одному для кожного кольору вовни. Під обраним кольором він розміщує блок червоного каменю (який забезпечує управління двома командними блоками з обох боків).

Вибірковий піксель

Розміщення блоку redstone під обраний колір вовни запускає ще два командні блоки:

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

Цей перший рядок використовує нашу таку ж магічну команду @r, щоб вибрати будь-яку стійку броні на всій карті (не обмежуючи радіус, щоб вона включала сітку 40х40), а над головою розміщував шерсть обраного кольору. X визначає колір і становить від 0 до 15. Друга команда видаляє блок червоного каменю, щоб він був готовий перейти знову.

У мене є 5 фіолетових ретрансляційних блоків, і червоний камінь працює в "кліщах" 20 разів на секунду, тому я розміщую 100 пікселів на секунду (мінус деякі кольорові накладки). Я приурочила це, і зазвичай я покриваю всю сітку приблизно за 3 хвилини.

Це було весело, я спробую шукати інші виклики, які також можуть працювати в Minecraft. Величезне спасибі lorgon111 за його підручник YouTube Command Block .

EDIT: Зробили кілька серйозних зменшень розміру збереженої структури, зараз на 2872 збережених байтах :

ближче командні блоки з видимими блоками порожнеч

  1. Розколював речі трохи (у всіх 3 вимірах), щоб я міг зменшити загальний розмір збереженої області.
  2. Змінили різні кольорові вовни на камінь, вони все одно були просто декоративними.
  3. Прибрали лампу блиску.
  4. Змінено всі повітряні блоки на порожнечі (червоні квадрати).

Перевірено, перетягнувши збережену структуру в новий світ, все ще працює як задумано.

EDIT 2 : Посилання Dropbox для читання лише до файлу структури NBT

Пройдіть у моєму відео на YouTube , але ось такі кроки:

  1. У Minecraft 1.12 створіть новий творчий світ суперфлатів, використовуючи попередньо встановлену програму "Redstone Ready". Зробіть це мирним режимом.
  2. Як тільки світ існує, скопіюйте файл NBT в нову \structuresпапку, яку ви створюєте під поточним збереженням світу.
  3. Поверніться в грі, зробіть /give @p structure_block, і /tp @p -12, 56, -22перескочити на потрібне місце, щоб почати.
  4. Викопайте яму і розмістіть структурний блок на -12, 55, -22.
  5. Клацніть правою кнопкою миші структурний блок, натисніть кнопку режиму, щоб переключити його на "Завантажити".
  6. Введіть "random_pixels", увімкніть "включити об'єкти" і натисніть "Завантажити"
  7. Якщо він знайде структурний файл, він перегляне контур. Клацніть ще раз правою кнопкою миші та натисніть «завантажити», щоб перенести структуру у світ.
  8. Натисніть кнопку, щоб запустити процедуру налаштування.
  9. Коли він завершиться, переведіть перемикач, щоб запустити рандомізацію вовни.

6
Святе лайно ... ти насправді це зробив. І це ваша перша відповідь, вау! Ласкаво просимо на сайт, і це дивовижний спосіб почати!
MD XF

2
@MDXF Окрім ваших +10, я даю +60
NoOneIsHere

2
@NoOneIsHere Добре: P Але якщо у вас є відповідь, це доведеться бути +100 ...
MD XF

2
Я збираюся спробувати це в гольф, якщо ви дасте файл світу (я не публікую іншої відповіді, а просто надішлю вам файл)
Крістофер

2
Ну, shortest answer in each language winsі це найкоротша відповідь у Minecraft: P зайві +15
MD XF

20

sh + ffmpeg, 52 байти

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

Чи вважається ffmpeg езоланг? : D

На жаль, pix_fmt потрібен, оскільки ffmpeg за замовчуванням відповідає yuv420p. Це не відповідає вимогам "повинна мати однакову ймовірність усіх можливих кольорів пікселів". Зручно, cifце ярлик для досить великого розміру відео, який використовує менше місця, ніж "40x40".

Не дивно, що оптимізувати цей gif за допомогою gifsicle абсолютно нічого не зробило. Це 4MiB.


3
Чи "це замінює відразу один піксель "?
Скотт Мілнер

1
Технічно? ffmpeg буде чекати, поки весь кадр буде заповнений пікселями, перш ніж відобразити його. Я неправильно прочитав "повинен замінити лише 1 піксель одночасно" як "може". : /
Уна

1
І звичайно, gifsicle не міг би зберегти жодного байта в gif: немає можливості стиснути довільні дані, а випадкові пікселі всі хаотично розташовані, це означає, що найефективнішим способом кодування є один піксель за один раз. Нумефіл (я думаю?) Мав відео на тему "що таке інформація" і робив випадковий шум, щоб навмисно возитися зі стисненням YouTube. У VSauce в один момент теж було відео про стиснення відео, але я забуваю, як воно називалося.
Draco18s

2
@ Draco18s, я знаю, замітка про те, що вона є невимовною, насміхається з себе за те, що я намагався запустити на ній gifsicle.
Уна

2
Gifsicle - неправильний інструмент. Precomp зменшує його з 4 МБ до 3 Мб :) Це тому, що алгоритм GIF розширює випадковість замість того, щоб стискати його, і Precomp це відміняє.
шнадер

17

C на POSIX, 98 96 95 92 байт

-3 завдяки Тасу

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

Тут вибирають 16 кольорів (темно-сірий, червоний, зелений, синій, помаранчевий, блакитний, фіолетовий, світло-сірий, чорний, рожевий, світло-синій, жовтий, світло-блакитний, пурпурний, білий) та друкують їх безпосередньо на термінал.

Зауважте, що якщо ваш GPU занадто повільний, це може здатися, що він оновлює весь екран відразу. Насправді це піксель за пікселем, але C - це швидко.

кольори

Альтернативне рішення, що робить кольори більш чіткими:

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

Доказ того, що це піксель за пікселем (скріншот з альтернативної програми):

3d !!!

Нічого собі, це виглядає майже тривимірним ...


Не вистачає ;компіляції правильно, але, здається, працює чудово, крім цього! B-)
cleblanc

@cleblanc О, ти маєш рацію! Я забув додати це після переходу whileна for.
MD XF

2
Можливо, ви могли б поголити кілька байтів, #define r rand()а потім скористатисяr%40, r%40, r%2, r%8
Tas

Якщо не використовувати 32-бітний колір, це не відповідає вимогам.
wberry

4
@wberry "У вашій програмі повинен бути рівномірний вибір усіх кольорів (тобто в діапазоні # 000000 до #FFFFFF) або всіх кольорів, які можуть відображатися у вашій системі. " Це всі кольори, які POSIX-термінал може відображати.
MD XF

13

JS + HTML 162 + 32 (194) 124 + 13 (137) байт

Дякую Люку та іншим коментаторам, що врятували мені багато байтів.

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
Насправді <canvas id=c>має бути достатнім, оскільки я думаю, що розмір за замовчуванням для canvas-елемента є 300 x 150 pxі таким чином перевищує ваш "розмір вікна перегляду" 99 x 99 px. У будь-якому випадку, приємне рішення.
insertusernamehere

1
@insertusernamehere, так, дякую
Восьминіг

1
Зараз у Firefox не працює. Це працює в Chrome
ETHproductions

1
Гаразд, добре, я це зрозумів. Збережіть 2 байти, виконавши b = c.getContext 2d. (Не впевнений, як це відформатувати, але якщо "2d" є шаблоном буквально, він не потребує дужок.) (Видаляючи мої попередні пропозиції.)
Рік Хічкок

1
Поряд із пропозицією Ріка, використовуйте withзаяву, щоб позбутися всіх випадків 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 байт

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

Спробуйте в MATL Online . Я додав півсекундної паузи ( .5Y.) до цієї версії.

введіть тут опис зображення

Пояснення

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
Я це люблю! ----
MD XF

4
з цікавості, як ви давали свій вихідний код?
Восьминіг

2
@Octopus Я щойно використав LICEcap . Одного дня я збираюся включити анімований вихід GIF у онлайн-компілятор.
Suever

Бачачи, як ця відповідь використовує менше команд / методів для досягнення подібного результату, ви не могли б перетворити її в MATL, щоб, можливо, досягти нижчого балу?
MD XF

Я побачив, що вже замінений піксель знову замінюється;).
Чарівна урва восьминога

7

TI-BASIC (лише 84 + C (S) E), 37 35 байт

: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

Через обмеження обладнання, це врешті-решт завершиться збоєм, оскільки кожного разу, коли програма вкладається в програму TI-BASIC , 15 КБ оперативної пам’яті виділяються для «збереження закладок» у батьківській програмі. Це було б добре на «теоретичному» калькуляторі з нескінченною оперативною пам’яттю, але якщо ми хочемо, щоб він працював нескінченно на реальному калькуляторі, ми можемо просто загорнути його вWhile 1 цикл для додаткових 2 байтів:

:While 1
:...
:End

Сімейні калькулятори TI-83 з кольоровими екранами (TI 84 + CE та CSE) підтримують 15 кольорів. Вони мають кольорові коди10 наскрізь 24. Цей цикл проходить через усі пікселі у 5!квадраті 120 на 120 ( ) і призначає кожному випадковий колір.

Результат:

введіть тут опис зображення


Так, ще одна ОСНОВНА відповідь! Просто для впевненості, чи працює це вічно?
MD XF

@MDXF Тепер це! ;-). Пропустив цю частину вперше. +5 байт.
Скотт Мілнер

Ви можете зробити цикл для циклів починаючи з 0, якщо ви хочете охопити 100x100 пікселів.
kamoroso94

@ kamoroso94 Ах, правда. Я також міг би зробити, 5!якби хотів 120 пікселів.
Скотт Мілнер

2
@MDXF TI-BASIC є на основі маркерів . Тобто For(1 байт, Pxl-On(1 байт, randInt(2 байти і т.д.
Скотт Мілнер

5

MATLAB, 56 байт

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

Вихід має вигляд зображення нижче. Один "піксель" змінюється за один раз, і змінюється лише один з RGB-кольорів.

Чому? Кольори в MATLAB представлені у вигляді 3D-матриці, один шар для R, G і B. Код вище змінює лише один з шарів за ітерацію. Всі пікселі та всі шари можуть бути змінені, тому, якщо зачекати трохи, всі кольори однаково можливі у всіх положеннях.

Додайте pause(t)всередину циклу, щоб призупинити tсекунди між кожним зображенням.

Ви повинні зупинити його Ctrl+ C.

введіть тут опис зображення


3
Розумне використання ручки для графічного об’єкта як умовного вwhere
Suever

2
Правило було уточнено - Your program must have an equal chance of picking all colors/points each iteration. Чи виконує ваша програма це?
MD XF

5

Bash + coreutils, 59 56 байт

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

\e[48;5;COLORm - безпека втечі до кольору фону.

Кожен "піксель" може кожен раз опинитися в діапазоні [0..16777215].


1
Нічого собі, це дійсно гарна ідея! +1
MD XF

Ви можете згорнути 3 байти, якщо використовуєте jot:for((;;)){ printf "\e[48;5;`jot -r 1 0 16777215`m ";}
Moreaki

Я вкрав цю ідею і переграв її на 45 байт (\ є 1 втеча, а shuf | xargs робить її коротшою (не потрібно для -n 1 і не для). Codegolf.stackexchange.com/a/158142/7017 Я можу видалити його, якщо хочете (я не дуже впевнений, чи варто просто пропонувати це як коментар, а не публікувати його. Моя мета - отримати трохи очок за один день, щоб отримати ще раз чудові відповіді на дивовижний "тетріс у грі життя "виклик та відповідь! див. codegolf.stackexchange.com/q/11880/7017
Олів'є

5

Javascript + HTML 118 + 13 (131 байт)

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>

  • Це дозволить отримати рівномірно розподілені кольори RGB. Ви не можете використовувати Hex кольору без належного заповнення в вигляді чисел , як #7це не є допустимим кольором, або #777і #777777того ж кольору (2x шанси)
  • Елемент полотна за замовчуванням розміром 300x150, але я насправді малюю на площі 255x255, тому там є пікселі полотна, тому ефективна площа 255x150.
  • Працює лише в Google Chrome.

2
Чудовий перший пост! Ласкаво просимо на сайт!
MD XF

Я не вірю, що це має шанс відобразити будь-які кольори із встановленим каналом на 255, наприклад, червоним, зеленим, синім або білим. Я думаю, що вам доведеться помножити на 256.
kamoroso94

4

Excel VBA, 131 102 85 байт

Анонімна функція негайного вікна VBE, яка використовує функцію помічника (див. Нижче) для виведення масиву довільно забарвлених комірок до діапазону A1:AN40об'єкта активної таблиці.

Примітка. Це рішення обмежено 32-бітовими встановленнями MS Excel (і, отже, Office в цілому), оскільки 8^8не буде компілюватися для 64-бітних версій VBA

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

Вибірка зразка

Рандомізовані кольори клітин

Попередня версія

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

Функція помічника

Виводить випадковий int в діапазоні [0,255]

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

3

C #, 369 288 287 байт

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 байт завдяки @CodyGray.

Повна програма, яка отримує ручку на екрані та її розмір, а потім починає довільно малювати пікселі на ньому. Зауважте, що це може зірвати вашу графічну карту, коли вона працює. Крім того, якщо екран або будь-який елемент управління вирішить перефарбувати в будь-який час, пікселі будуть втрачені і доведеться перемальовувати.

Примітка. Під час запуску тримайте фокус на вікні, щоб вбити його, вам доведеться або Alt + F4, або натиснути кнопку закриття, і робити це, коли ви не бачите екран, є трохи важким.

Я не зміг записати це, працюючи з ScreenToGif, оскільки це продовжувало змушувати перефарбовуватися, щоб пікселі були видалені. Однак ось знімок екрана, який працює приблизно через 10-15 секунд, і я думаю, що, можливо, я зупинив свій комп'ютер! Пробіл у верхньому правому куті - це те, що екран змусив перефарбовуватись так само, як я робив знімок екрана.

Приклад повної версії

Повна / відформатована версія:

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

Версія на 308 227 226 байт, яка лише в області 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);}}}

Приклад виводу для цього:

Невеликий приклад виводу



Graphics.FromHwnd((IntPtr)0)також буде працювати і бути набагато коротшим, ніж P / Invoking GetDC. Звичайно, ваш код все ще схожий на Tas і витікає ресурси, як божевільний, саме тому він заточує вашу машину після зупинки роботи за короткий час.
Коді Грей

@CodyGray О, я знаю, це протікає, хоча все ще працюватиме в специфікаціях проблем, хоча І GetDCне повертається, IntPtr.Zeroтому надсилання на те, що не FromHdcвийде.
TheLethalCoder

1
Прочитайте пропозицію уважніше. :-) Я не пропоную вам дзвонити FromHdc, я пропоную вам зателефонувати FromHwnd. Зауважте, що при виклику GetDCотримати DC для віконної ручки, ви переходите вказівник NULL (0) як ручка вікна.
Коді Грей

@CodyGray Так, це працює, дякую! Вони названі подібними, повинні уважніше прочитати ваш коментар ...
TheLethalCoder

3

C # консоль, 233 220 189 188 байт

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

введіть тут опис зображення

Використовує "все" (вікна) 16 кольорів консолі.

Дякуємо за "функцію", що зможете псевдоніми класів у C # за допомогою usingдирективи.

Редагувати №1

  • Видалено пробіли.

  • Видалено нулі з Random.Next ()

  • Поїхав namespace system{...}

Редагувати №2

  • Мінімальний розмір сітки - 40х40

  • Один байт, оголосивши Random в для заголовка циклу

  • Видалено publicз основного методу

Правка №3

Виявляється, using C=Console;це не найкраще. using static Consoleдуже нагадує спосіб VB.Net до "Імпортувати" класи

Я здаюся: TheLethalCoder зробив це


Оригінальний код для адаптації розміру вікна в 207 байт:

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

Оригінальне зображення:

введіть тут опис зображення


namespace Systemповинні зберегти байти, r.Nextможна зняти нуль, я вважаю, видалити невідповідне пробіл,
TheLethalCoder

Крім того, що титул C # відмінно
TheLethalCoder

Дякую! Я залишаю Консоль у назві, оскільки відчуваю, що цей виклик надає цінний контекст. Я не бачу, як namespace System{}коротше, ніж using System;. Хочете пояснити?
MrPaulch

1
У мене була така сильна, але необгрунтована пам'ять, яка для громадськості необхідна Main. Безпідставні спогади - найкращі!
MrPaulch

1
Дякую. Не здасться! :) Буду використовувати те, що я дізнався на наступному виклику!
MrPaulch

3

Обробка, 90 байт

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

введіть тут опис зображення

розширено та прокоментовано:

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 
}

В ідеалі я міг би використовувати індекс пікселів замість місця розташування x, y, але pixels[]доступ для обробки потрібен loadPixels()до і updatePixels()після публікації, отже, використання set(). point()працював би теж, але має більше символів та потреб stroke(). Випадкова область фактично є 99x99, щоб зберегти кілька байт (замість 100x100), але це повинно охоплювати 40x40 з кожним пікселем у такій області, яку потрібно замінити.

Перліновий шум () використовується замість випадкового (), щоб він був більш псевдовипадковим і байт коротшим. Значення обчислюється один раз, але використовується двічі: раз для випадкової позиції, потім знову для кольору.

Колір насправді ARGB(00000000 до FFFFFFFF) (не RGB) (бонусні бали?: D).


Дивно, і приємно бачити вас на цьому сайті!
Кевін Уордман

Як-мудро! і спасибі! :)
Джордж Профенза

+1 set()- дуже акуратний трюк і може бути дуже корисним для Поради щодо гольфу в процесі обробки
Kritixi Lithos

оооооо! Я про це не знав. Я додам його туди, дякую :)
Джордж Профенза

2

Пітон, 133 байти

Я не зовсім впевнений, чи підходить це специфікаціям, бо це на полотні в районі 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+')'))

Спробуйте його онлайн - версія безeval, яка не працює в Trinket


Зверніть увагу, чому, можливо, ваша черепаха не відрізняється від моєї, але моє полотно за замовчуванням становить 300 на 400, а за замовчуванням colormode- 1.0ні 255.
Джонатан Аллан

Trinket.io досить унікальний.
mbomb007

Так - я просто спробував змінити, colormodeі нічого з цього не було: /
Джонатан Аллан

Чому теж dot(1,R(0,255),R(0,255),R(0,255))не працює? dotпокликаний приймати (width,*color). Це не Python: p
Джонатан Аллан

Тому що Trinket.io використовує skulpt.js, що є неповною реалізацією Python.
mbomb007

2

JavaScript, використовуючи Canvas 340 316 324 байт

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

повна версія


2
Ласкаво просимо на сайт! :)
DJMcMayhem

Чи поважає це правило: "Ваша програма повинна продовжувати відображати випадкові пікселі, доки вручну не зупиниться (вона не може завершитися самостійно)."
Восьминіг

Здається, це просто генерує купу випадкових пікселів при запуску. Він не продовжує відображати пікселі по одному, поки не зупиниться.
MD XF

Здається, я пропустив це правило. Я помилково подумав, що мета - створити образ, а не анімацію. Я відновлю свою відповідь, коли повернусь до свого комп’ютера.
Тім Пеннер

1
@MDXF це анімоване зараз
Тім Пеннер

2

Обробка, 112 байт

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

Я не можу гарантувати, що кожен піксель замінюється кожні 3 хвилини, але дивлячись на це, схоже, це робиться. Принаймні шанси на це не вистачає пікселя, із 1600 усього, оновлення випадкового 30x в секунду, загалом 5400 оновлень за 3 хвилини, робить малоймовірним, що його не пропустять.

Безголівки:

Програма дійсно проста. Відкрийте вікно розміром 40x40 пікселів, і кожен кадр (за замовчуванням 30 в секунду) отримує випадковий колір і намалюйте крапку у випадковій координаті між 0 та параметром. 40 для координат пікселів, 255 для кольорів.

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

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

введіть тут опис зображення


Ви можете видалити size(40,40);і зміни pointв point(random(99),random(99));? (або 100 замість цього, якщо 99 не працює)
Kritixi Lithos

@KritixiLithos в обробці, sizeфункція ОБОВ'ЯЗКОВО має бути першим рядком коду у функції настройки (причини, що ускладнюються), тому я не можу цього обійти. Я можу змінити всі випадки від 40 до 99, я просто цього не зробив, оскільки це не заощадило мені місця. Я в основному пішов з мінімальним розміром, щоб збільшити шанси на те, що кожен піксель буде оновлений протягом 3 хвилин
Коді

Хе, це було те, що я спочатку подумав також, поки хтось мені про це не розповів, і це якось вийшло, як ви можете бачити тут у моїй подачі.
Kritixi Lithos

1
Видалення всієї setup()функції на останній версії Processing на моїй машині працює нормально без помилок.
Kritixi Lithos

Я думаю, що моя версія Processing є досить старою, і я не використовую її досить для того, щоб перешкоджати оновленню зараз.
Коді

2

HTML + SVG + PHP, 245 байт

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

Розширено

$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

Приклад для виводу без метатегів та у більшій версії

<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 ++ у Windows, 125 байт

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

Нові рядки необхідні і включаються в число байтів.

Цикли назавжди, випадковим чином вибирає позицію між 0 і 255 (включно) для значень рядків і стовпців, призначає випадкові значення R, G, B між 0-255 (включно)


1
Я усвідомлюю, що ти займаєшся цим у гольф, але людина, яка щоразу через цикл протікає в контексті пристрою, справді отримує моє павуче почуття!
Коді Грей

Збережіть 15 байт, зробивши це C у Windows замість C ++ у Windows, оскільки компілятори C дозволять вам залишити #includes. (І так, є невізуальні компілятори Studio C для Windows.)
MD XF

2

Python 3.6 + Tkinter, 281 байт

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

Як tkinterі стандартна бібліотека, вам не потрібно включати її до заголовка
caird coinheringaahing

Я отримую таку ж помилку - Windows 10, Python 3.6.0 Я можу здогадатися, чому init бачить чотири пройдені параметри - метод передається параметр "self" неявно. Але я не маю уявлення, чому це генерує помилку, оскільки документація показує, що конструктор Canvas приймає три параметри (master, x, y), як показано в коді.
CCB60

Слід виправити зараз.
Мартисти

1
також @Ilikemydog Tkinter не завжди знаходиться в stdlib. У Windows це не обов’язково при встановленні, і я не думаю, що в моєму архівному розділі також встановлений Tkinter. Можна також включити його.
Мартисти

ther is typo - "img" замість "i". І все одно це не працює, цього разу я отримуюc.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"
Михайло V

2

JavaScript (ES7) + HTML за допомогою SVG, 129 + 10 = 139 байт

Версія SVG, сильно натхненна підходом @ Octopus<canvas> .

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>

Оскільки фрагмент стека любить ламати сценарій шляхом розбору <rect>тегів, ось CodePen .


2

6502 збірка, 92 байти

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

Вихід:

вихід

Пояснення:

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
Яка тут платформа yoiur target 6502? BBC Micro? Apple] [? Commodore VIC-20 тощо ...?
Shaun Bebbers

Потрібно, щоб імена етикетки були не менше трьох символів?
Джонатан Фрех

2

LOGO, 71 байт

Єдина мова, яку я знаю, не будучи езотеричною / спеціально розробленою для кодового гольфу, і має foreverфункцію. Будь-яка ідея з mapбоку?

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

2

shortC , 66 56 байт

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

-10 байт завдяки доктору Ренду. : 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, оскільки ви, очевидно, не можете надрукувати тип терміналу, для чого потрібен онлайн.


2

Perl (на * nix), 69 байт

В \x1bs великі літери , втечу.

Покладається на sttyкоманду і добре працює в OS X.

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

Подібно до інших підходів, але мені сподобалося поєднання всіх парам в один дзвінок, щоб printfя вважав, що поділюсь. Вбиває мій термінал.

введіть тут опис зображення


Удвічі більше пікселів, 83 байти

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

Цей підхід використовує блок unicode та випадковий колір переднього плану та кольору тла, що дає більш квадратний піксель. Вбиває і мій термінал, але виглядає крутіше.

введіть тут опис зображення


Не забувайте, що ви можете використовувати буквальний байт втечі, ASCII 0x1B (27) замість \e. І на StackExchange це можна представити .
MD XF

@MDXF Так ... Мені потрібно перевірити це як сценарій, оскільки це не вийшло -e! Мені також потрібно збільшити кількість байтів одного з unicode. На жаль! Дякуємо за нагадування!
Дом Гастінгс

2

Баш, 104 байти

В \es великі літери , втечу.

Це досить багато перекладів мого подання Perl, але використовуючи синтаксис стилю bash fork bomb! Не такий розумний, як інший баш-запис, який пише прямо на дисплей, боюся.

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

Більше пікселів, 130 байт

Як і в моїй відповіді Perl, для цього використовується символ unicode для переднього плану та забарвлення фону кожного пікселя.

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

Непогано. Однак я все ще не розумію цього "\e[48;5;%im". Чому потрібні 48 та 5?
MD XF

Доступ до повних 256 кольорів, а не лише до стандартної 16 кольорової палітри. У терміналах, які його підтримують, можна використовувати, \e[48;2;RRR;GGG;BBBmале дуже мало емуляторів терміналів підтримують його ... :(
Dom Hastings

Свята мама коду .... Я не уявляла, що це можливо. Моє життя - брехня. Дякую мільйон: P
MD XF

@MDXF ^^, а також 38;5позначає 48;5фон переднього плану та денатує фон. misc.flogisoft.com/bash/tip_colors_and_formatting
Dom Hastings

1
@MDXF Не хвилюйтесь! Радий допомогти! Сором, я пропустив це, коли це було абсолютно новим, але ця відповідь Minecraft ... нереально!
Дом Гастінгс

2

x86 машинна мова (реальний режим) для IBM PC, 20 19 байт

 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

Для цього потрібен процесор з rdrandінструкцією та адаптер VGA (реальний або емуляційний). Вищезазначене можна скопіювати у завантажувальний блок або у файл MS-DOS * .COM.

Щоб спробувати це, скомпілюйте наступне і збережіть вихід у такий файл, як floppy.imgі завантажте зображення на віртуальній машині.

#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

Супер чіп (48) ?, 12 байт

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

Я не впевнений у точній назві, але мені довелося використовувати це замість звичайного Chip-8 через обмеження 40x40 пікселів.


Посилання на цю (дуже цікаву) мову?
MD XF

Ви можете використовувати емулятор Octo: johnearnest.github.io/Octo
12Me21

2

QBIC , 34 байти

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

На жаль, QBIC не встановлює SCREENрежим за замовчуванням, так що він їсть деякі байти. PSETє незаконною командою у графічному контексті QBIC за замовчуванням.

Пояснення

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)

Вибірка зразка

@Anonymous виявив помилку у rnd()функції QBIC . Виправлення, яке дає вихід нижче. Дякую!

введіть тут опис зображення


Як видно з знімка екрана, ваше рішення не відповідає умовам випадковості. Враховуючи координату, не всі кольори є однаково вірогідними та мають колір, не всі координати однаково ймовірні; вони дуже корельовані, і це м'яко кажучи. Проблема полягає в генераторі випадкових чисел, який ви використовуєте: 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 FUNCTIONВаші випадкові числа є лише хешами поточного часу.
Анонім

@Anonymous Це виправлено зараз, дякую!
steenbergh

2

6502 збірка, 582 байти

Так, це було весело. Більше чи менш те саме, що і моє рішення 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

Це відповідь, що не використовується для вашої іншої 6502 ? :-)
Коді Грей,

@CodyGray Ні, він робить дещо інакше. Це більше схоже на мою відповідь Applesoft BASIC (використовує випадкову прогулянку), а інша відповідь на збірку 6502 схожа на всі інші.
MD XF

Я не погоджуюся з кількістю байтів: це спосіб коротший, ніж 583 байти збірки?
Олів’є Дулак

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.