显示随机的彩色像素


47

我一直很喜欢充满随机彩色像素的屏幕。他们很有趣,吸引他们的程序也很有趣。

挑战

用彩色像素填充屏幕或图形窗口。

规则

  • 你的程序必须有一个甚至采摘的机会,所有的颜色(即范围#000000#FFFFFF),或者可以在系统上显示所有颜色。
  • 您的程序必须继续显示随机像素,直到手动停止(它不能自行终止)。
  • 像素可以是任意大小,只要您的输出至少具有40x40 “像素”即可。
  • 您的程序必须以这样的速度运行,使其可以在运行三分钟后至少替换一次屏幕/窗口上的每个像素。
  • 您的程序必须选择真正随机的颜色和点进行替换,即随机选择所有点/颜色的可能性均等。它不能看起来只是随机的。它必须使用pRNG或更好的pRNG,并且每次输出都不能相同。
  • 您的程序在每次迭代中必须有平等的机会选择所有颜色。
  • 您的程序一次只能替换一个像素。
  • 您的程序无法使用Internet或文件系统(/dev/random/dev/urandom除外)。

如果在随机时间停止输出,则输出可能如下所示:

赢家

每种语言中最短的答案将获胜。玩得开心!


通过“真正随机”,我认为伪随机是可以的(就像Math.random()或类似的东西)
OldBunny2800

@ OldBunny2800It must use a pRNG or better
TheLethalCoder

由于该程序无法使用互联网,因此我将在注释中留下:babelia.libraryofbabel.info/slideshow.html
KSmarts

1
那么“ 3分钟限制”也适用于设置时间吗?还是仅在“程序”开始后?询问是因为我有Minecraft红石解决方案,该解决方案一经运行即可非常快速地运行,但是最初需要花一些时间设置(它必须将每个“像素”“放置”在40x40网格中)才能开始更改颜色。
BradC

5
根据定义,真正随机是排除随机,但没有定义分布。我假设您的意思是统一的 PRNG,其中所有事件都是等价的并且彼此独立。
丹尼斯

Answers:


85

Minecraft 1.12 Redstone命令块,4,355 2,872字节

Minecraft screenshot with armor stands and map

(大小由保存的结构块文件大小决定。)

这是完整的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个装甲站,每种羊毛颜色一个。在选定的颜色下,它放置一个红石块(为两侧的两个命令块供电)。

随机像素选择器

将红石块放置在选定的羊毛颜色下会触发另外两个命令块:

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

第一行使用相同的magic @r命令来选择整个地图上的任何装甲站(没有半径限制,因此包括40x40的网格),并将选定颜色的羊毛放在其头部上方。X确定颜色,范围为0到15。第二个命令删除红石块,以便准备再次运行。

我有5个紫色的中继器块,红石每秒处理“滴答声” 20次,因此我每秒放置100个像素(减去一些颜色重叠)。我已经定时了,通常我会在大约3分钟的时间内覆盖整个网格。

这很有趣,我将尝试寻找其他可能也适用于Minecraft的挑战。非常感谢lorgon111提供的YouTube命令块教程系列

编辑:大大减少了已保存结构的大小,现在为2,872个已保存字节

带有可见空隙块的较近命令块

  1. 稍微踩了一下(在所有3个维度上),因此我可以减小已保存区域的整体大小。
  2. 将不同颜色的羊毛改为石头,无论如何它们只是装饰性的。
  3. 卸下萤石灯。
  4. 将所有空气块更改为空块(红色方块)。

通过将保存的结构引入新的世界进行测试,一切仍然按设计进行。

编辑2只读Dropbox链接到NBT结构文件

演练在我的YouTube视频中,但是请按以下步骤操作:

  1. 在Minecraft 1.12中,使用“红石就绪”预设创建一个新的创意超平坦世界。使它成为和平模式。
  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,我
还给

2
@NoOneIsHere好吧:P但是,如果您有一个答案,那就必须是+100 ...
MD XF

2
如果您提供世界档案,我将尝试打高尔夫球(我不会再发布其他答案,而只是给您档案)
Christopher

2
好吧,shortest answer in each language wins这是《我的世界》中最短的答案:P多加+15
MD XF

20

sh + ffmpeg,52个字节

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

ffmpeg算作esolang吗?:D

遗憾的是pix_fmt是必需的,因为ffmpeg默认为yuv420p。失败了“必须对每种可能的像素颜色具有相等的可能性”的要求。方便地,它cif是相当大的视频尺寸的快捷方式,其占用的空间少于“ 40x40”。

毫不奇怪,使用gifsicle优化此gif绝对没有任何效果。是4MiB。


3
这是否“ 一次仅替换一个像素 ”?
Scott Milner

1
从技术上讲?但是,ffmpeg将在显示整个帧之前等待整个帧充满像素。我将“一次只能替换1个像素”误读为“可以”。:/
Una

1
当然,gifsicle不能在gif中保存任何字节:没有办法压缩任意数据,而且随机像素都是无序排列的,这意味着对它们进行编码的最有效方法是一次编码一个像素。Numberphile(我认为吗?)播放了一段有关“什么是信息”的视频,并随机发出噪音以故意干扰YouTube的压缩。VSauce也有一点关于视频压缩的视频,但我忘记了它的名字。
Draco18s

2
@ Draco18s,我知道,关于它不可压缩的说明使我自己为尝试在其上运行gifsicle取笑。
Una

2
Gifsicle是错误的工具。Precomp将其从4 MB减少到3 MB :)这是因为GIF算法扩展了随机性而不是对其进行压缩,而Precomp将其逆转。
schnaader

17

POSIX上的C,98 96 95 92字节

-3感谢Tas

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

这可以在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 !!!

哇,看起来几乎是3维的...


缺少;可以正确编译的a ,但除此之外效果还不错!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)字节

感谢Luke和其他评论者为我节省了很多字节。

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-element 的默认大小为300 x 150 px,因此超出了您的“视口大小” 99 x 99 px。无论如何,不​​错的解决方案。
insertusername此处,2015年

1
@insertusername在这里,是的,谢谢
Octopus

1
不过,现在无法在Firefox中使用。它确实可以在Chrome浏览器中工作
ETHproductions'June

1
好吧好吧我知道了 通过执行b = c.getContext节省2个字节2d。(不确定如何设置其格式,但是如果“ 2d”是模板文字,则不需要括号。)(删除我之前的建议。)
Rick Hitchcock

1
连同里克(Rick)的建议,使用一条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
出于好奇,您如何区分代码输出?
Octopus

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 KB的RAM以“保留书签”。这在具有无限RAM的“理论”计算器上可以很好地运行,但是如果我们希望它在真实计算器上无限期地运行,我们可以将其包装在While 1循环中,以获得额外的2个字节:

:While 1
:...
:End

带有彩色屏幕(TI 84 + CE和CSE)的TI-83系列计算器支持15种颜色。他们具有10通过的颜色代码24。这将以120×120(5!)正方形遍历所有像素,并为每个像素分配一种随机颜色。

结果:

在此处输入图片说明


是的,另一个基本答案!可以肯定的是,这会永远持续下去吗?
MD XF

@MDXF现在可以了!;-)。第一次错过了那部分。+5个字节。
斯科特·米尔纳

如果要覆盖100x100像素,可以使for循环从0开始。
kamoroso94 '17

@ kamoroso94啊,是的。5!如果我想要120像素,我也可以做。
Scott Milner

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 2015年

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

如果使用jot以下for((;;)){ printf "\e[48;5;`jot -r 1 0 16777215`m ";}
命令

我偷了这个主意并将其压缩到45个字节(\ e是1个转义字符,而shuf | xargs使它更短(不需要-n 1,也不需要)。codegolf.stackexchange.com/a/158142/7017。我可以根据需要将其删除(我不确定我是否应该将其作为评论而不是发布它。我的目标是针对某天悬赏获得一些积分,以奖励有关“俄罗斯方块”的惊人答案生活中的挑战”和答案!请参见codegolf.stackexchange.com/q/11880/7017
Olivier Dulac

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颜色。不能使用十六进制颜色不正确填充为喜欢的数字#7是不是有效的颜色,或#777#777777是相同的颜色(2倍的赔率)
  • 默认情况下canvas元素为300x150,但实际上是在255x255正方形上绘制的,因此画布像素不存在,因此有效面积为255x150。
  • 仅适用于Google Chrome。

2
很棒的第一篇文章!欢迎光临本站!
MD XF

我不认为这有机会显示设置为255的任何颜色,例如红色,绿色,蓝色或白色。我认为您必须乘以256。
kamoroso94

4

Excel VBA中,131 102 85个字节

匿名VBE立即窗口函数,该函数使用辅助函数(请参见下文)将随机着色的单元格数组输出到A1:AN40Activesheet对象的范围。

注意:此解决方案仅限于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

辅助功能

输出范围为[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);}}}

@CodyGray节省了88个字节。

一个完整的程序,可以控制屏幕并确定其大小,然后开始在屏幕上随机绘制像素。请注意,这可能会使您的图形卡在运行时停顿。同样,如果屏幕或任何控件决定随时重新绘制,则像素将丢失并且必须重新绘制。

注意:运行时要集中精力杀死窗口,您必须按Alt + F4或按关闭按钮,然后在看不到屏幕时有点困难。

我无法使用ScreenToGif记录此工作,因为它一直在强制重新绘制,因此像素将被删除。但是,下面是它运行约10-15秒后的屏幕截图,我想我的PC可能停止了运行!就像我截屏一样,屏幕右上角的空白是屏幕强制重新绘制的地方。

完整版本示例

完整/格式化版本:

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

在此处输入图片说明

使用“全部”(Windows)16种控制台颜色。

感谢“功能”能够通过using指令在C#中对类进行别名。

编辑#1

  • 删除了一些空格。

  • 从Random.Next()中删除零

  • 去了 namespace system{...}

编辑#2

  • 网格的最小尺寸为40x40

  • 通过在for循环头中声明Random来一个字节

  • public已从Main方法中删除

编辑#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

谢谢!我将Console留在标题中,因为我觉得这个挑战提供了宝贵的内容。我看不出namespace System{}比短using System;。介意解释吗?
PaulPaulch

1
我有这样强烈的但没有根据的记忆,公众对此是必要的Main。没有根据的回忆是最好的!
PaulPaulch

1
谢谢。不放弃!:)将使用我在下一个挑战中学到的知识!
PaulPaulch

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位置,但是Processing的pixels[]访问需要loadPixels()pre和updatePixels()post,因此使用set()point()也会工作,但有更多字符,并要求stroke()。随机区域实际上是99x99,以节省一些字节(而不是100x100),但是随机区域应覆盖40x40,而每个像素都应被替换。

使用Perlin noise()代替random()可以使它保持更多的伪随机性,并缩短一个字节。该值只计算一次,但使用两次:一次用于随机位置,然后一次用于颜色。

颜色实际上是ARGB(00000000到FFFFFFFF)(不是RGB)(加分点?:D)。


太好了,很高兴在这个网站上见到您!
Kevin Workman

同样!谢谢!:)
乔治·普罗芬扎

+1 set()是一个非常巧妙的方法,可以作为非常有用的处理技巧高尔夫
Kritixi LITHOS

噢!我不知道 谢谢,我将其添加到此处:)
乔治·普罗芬扎

2

Python,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中不起作用


注明白为什么,也许是你的乌龟DIST和我的不同,但我的默认画布是300×400,而默认colormode1.0没有255
乔纳森·艾伦,

Trinket.io非常独特。
mbomb007'6

是的-我只是尝试更改colormode而已,没有任何内容:/
Jonathan Allan

为什么也dot(1,R(0,255),R(0,255),R(0,255))不起作用?dot是为了接受(width,*color)。不是Python的:p
Jonathan Allan

因为Trinket.io使用skulpt.js,这是Python的不完整实现。
mbomb007'6

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

这是否遵循“您的程序必须继续显示随机像素直到手动停止(它不能自行终止)”的规则?
Octopus

在运行时,这似乎只是生成一堆随机像素。直到停止,它不会继续一一显示像素。
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个像素丢失像素的几率,每秒随机更新一次30倍,每3分钟更新5400次,因此不太可能会丢失像素。

取消高尔夫:

该程序非常简单。打开一个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);和更改pointpoint(random(99),random(99));吗?(或99,如果不是100,则改为100)
Kritixi Lithos

@Processing中的@KritixiLithos,该size函数必须是设置函数中的第一行代码(原因很复杂),所以我无法解决这个问题。我可以将所有出现的次数从40更改为99,但是我没有这么做,因为它没有为我节省任何空间。我主要采用最小尺寸,以增加在3分钟内刷新每个像素的几率
Cody

嗯,这是我第一个想到的还有,直到有人告诉我这和它在某种程度上制定出来的,你可以看到这里的提交我的。
Kritixi Lithos'6

1
删除setup()机器上最新版本的Processing 的全部功能可以正常工作,没有错误。
Kritixi Lithos

我猜我的处理版本已经很老了,我现在还没有足够使用它来打扰升级。
科迪

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

Windows上的C ++,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
我意识到您正在打高尔夫球,但是每次通过循环泄漏设备上下文的人都会真的让我感到蜘蛛般的刺痛!
科迪·格雷

通过在Windows上将其设置为C而不是Windows上的C ++,可以节省15个字节,因为C编译器可以让您省去#includes的麻烦。(是的,有Windows的非Visual Studio C编译器。)
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

现在应该修复。
Martmists '17

1
@Ilikemydog Tkinter也不总是在stdlib中。在Windows上,安装时是可选的,而且我也不认为我的arch分区也安装了Tkinter。可能还包括它。
Martmists '17

这是拼写错误-“ 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"
Mikhail V

2

使用SVG的JavaScript(ES7)+ HTML,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>

由于Stack Snippet喜欢通过解析<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
您的目标6502平台在这里是什么?BBC Micro?苹果 ][?准将VIC-20等...?
Shaun Bebbers

标签名称必须至少三个字符长吗?
乔纳森·弗雷希

2

LOGO,71字节

我知道的唯一一种语言,不是深奥的/没有专门为代码编程设计的,而是具有forever功能的。你有什么想法map吗?

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

2

shortC66 56字节

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

-10个字节感谢Rand博士。:P

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

没有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来增加字节数。糟糕!感谢您的提醒!
Dom Hastings

2

Bash,104个字节

\es为文字转义字符。

这些几乎是我的Perl提交的翻译,但是使用了bash fork炸弹样式的语法!恐怕不如直接写入显示的其他bash条目那么聪明。

:(){ 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回答了……不真实!
Dom Hastings

2

用于IBM PC的x86机器语言(实模式),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

我不确定确切的名称,但是由于40x40像素限制,我不得不使用它而不是普通的Chip-8。


链接到这种(非常有趣的)语言?
MD XF

您可以使用Octo模拟器:johnearnest.github.io/Octo
12:21

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在QBIC的rnd()功能中发现错误。修复后,输出如下。谢谢!

在此处输入图片说明


从屏幕截图可以明显看出,您的解决方案不满足随机性条件。给定一个坐标,并非所有颜色都具有相同的可能性,给定一个颜色,并非所有坐标都具有相同的可能性;他们之间有着高度的相关性,这很温和。问题在于您正在使用的随机数生成器: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组件答案的简化版本吗?:-)
Cody Gray

@CodyGray不,它的处理方式有所不同。这更像是我的Applesoft BASIC答案(使用随机游走),而其他6502程序集的答案则与所有其他答案更相似。
MD XF

我不同意字节数:这比583个汇编字节还短吗?
奥利维尔·杜拉克

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.