Ваша задача проста: написать программу, которая заменит случайные пиксели в черном прямоугольнике размером 16px * 8px (ширина по высоте) белым пикселем.
Отверстия должны быть равномерно случайными, и вы должны вывести изображение размером 16 на 8 пикселей со вставленными белыми пикселями.
Заменить только 1 пиксель на столбец (всего 16 замененных пикселей)
Вы не берете никаких данных и не можете полагаться на изображение, хранящееся в другом месте на компьютере.
Это код-гольф, поэтому выигрывает программа с самым коротким байтом!
code-golf
graphical-output
random
GracefulLemming
источник
источник
Ответы:
MATL ,
151413 байтПример (с компилятором MATL, работающим на MATLAB):
Или попробуйте в MATL Online! (Если он не запускается в первый раз, снова нажмите «Выполнить» или обновите страницу). Обратите внимание, что изображение масштабируется онлайн-переводчиком для лучшей визуализации.
Это порт моего ответа Octave / MATLAB (см. Объяснение там). Вот эквивалентные утверждения:
источник
Pyth -
1615 байтВыводит изображение на
o.png
.Пример изображения:
источник
Октава / MATLAB,
483735 байтПример (в октаву):
объяснение
источник
C
85100 байтЗаписывает файл изображения PGM в стандартный вывод (вызовите его с помощью
prog >out.pgm
).Разгромил и объяснил:
Обновления:
srand(time(0))
(:(
)источник
Обработка,
7473 байтаОбразец вывода:
объяснение
источник
Рубин, 61 байт
Это полная программа, которая выводит изображение в формате netpbm на стандартный вывод.
Образец вывода:
источник
Befunge, 90 байт
Это создает файл PBM, записанный на стандартный вывод.
Попробуйте онлайн!
объяснение
Три верхние строки составляют генератор случайных чисел, в котором хранятся 16 случайных 3-битных чисел (т.е. в диапазоне 0-7) на десятой строке игрового поля. Строка четвертая записывает заголовок PBM, а последняя строка генерирует пиксели изображения. Это делается путем отсчета 16 случайных чисел при выводе пикселей - когда число, соответствующее определенному столбцу, достигает нуля, мы выводим 1, а не 0.
Пример вывода (увеличено):
источник
Mathematica,
7760 байтПример вывода
объяснение
Составьте правила замены для каждого столбца; заменить случайно выбранную позицию на 1.
Создайте
SparseArray
с размером 8x16 из правил замены. Фон0
по умолчанию. (8x16, потому что Mathematica считает строки первыми)Преобразовать
SparseArray
вImage
объект.77-байтовая версия
источник
HTML + JavaScript, 148 байт
источник
R, 76 байт
Использует пакет
png
для вывода в файл.Пример вывода:
источник
QBasic, 59 байт
Довольно просто.
-.5
Необходимо , потому чтоPSET
с нецелыми аргументами использует округления до ближайшего вместо пола или усечение (и-.5
корочеINT()
).Соответствующее изображение отображается в верхнем левом углу окна вывода. (Обрезанный) пример:
источник
Java, ( Имеет ли значение Байты, AKA 244 + 18 import = 262)
Был неудачен, потому что система координат включает в себя панель окна кадра ... Так что вам нужно буферизовать по крайней мере на 26 байтов, или ничего не появляется, следовательно,
x=50
бит.источник
import java.awt.*;v->{new Frame(){public void paint(Graphics g){int x=50,i=16,y;g.setColor(Color.BLACK);g.fillRect(x,x,i,8);for(g.setColor(Color.WHITE);i>0;g.drawLine(x+i,x+y,x+i--,x+y),setVisible(1>0))y=(int)(Math.random()*8);}}.show();}
(Изменения сделаны: статическая удалена; Java 8 лямбда; некоторыеint
удалены;i=16
повторно использованы; поместите вещи в цикл for для удаления скобок и;
)Постскриптум (65 байт)
Безголовая версия:
источник
SmileBASIC, 30 байтов
источник
Чип-8, 12 байт
Рисует изображение на экране.
источник
Tcl / Tk, 163
Два разных подхода визуализируют в одной и той же степени байта:
источник
VBA Excel,
86105 байтиспользуя непосредственное окно
источник
Cells.RowHeight=42:[A1:P8].Interior.Color=0:For x=0To 15:[A1].Offset(Rnd*7,x).Interior.Color=-1:Next
-1
вместоvbWhite
- полное объяснение, почему здесь )