Twoje zadanie jest proste: napisz program, który zamieni losowe piksele w czarny prostokąt 16 x 8 pikseli (szerokość według wysokości) na biały piksel.
Otwory muszą być jednakowo losowe i należy wyprowadzać obraz 16 x 8 pikseli z wstawionymi białymi pikselami.
Zamień tylko 1 piksel na kolumnę (16 wszystkich zastąpionych pikseli)
Nie pobierasz żadnych danych wejściowych i nie możesz polegać na tym, że obraz jest przechowywany w innym miejscu na komputerze.
To jest golf golfowy, więc wygrywa program z najkrótszą liczbą bajtów!
code-golf
graphical-output
random
GracefulLemming
źródło
źródło
Odpowiedzi:
MATL ,
151413 bajtówPrzykład (z kompilatorem MATL działającym na MATLAB):
Lub spróbuj w MATL Online! (Jeśli nie uruchomi się za pierwszym razem, naciśnij ponownie „Uruchom” lub odśwież stronę). Zauważ, że obraz jest skalowany przez interpretera online dla lepszej wizualizacji.
To jest port mojej odpowiedzi Octave / MATLAB (patrz wyjaśnienie tam). Oto równoważne stwierdzenia:
źródło
Pyth -
1615 bajtówWysyła obraz do
o.png
.Przykładowy obraz:
źródło
Octave / MATLAB,
483735 bajtówPrzykład (w Octave):
Wyjaśnienie
źródło
C,
85100 bajtówZapisuje plik obrazu PGM na standardowe wyjście (wywołuje go za pomocą
prog >out.pgm
).Nie golfił i wyjaśnił:
Aktualizacje:
srand(time(0))
(:(
)źródło
Przetwarzanie,
7473 bajtówPrzykładowe dane wyjściowe:
Wyjaśnienie
źródło
Ruby, 61 bajtów
Jest to pełny program, który wysyła obraz w formacie netpbm na standardowe wyjście.
Przykładowe dane wyjściowe:
źródło
Befunge, 90 bajtów
Generuje to plik PBM zapisany na standardowe wyjście.
Wypróbuj online!
Wyjaśnienie
Trzy górne linie składają się na generator liczb losowych, przechowujący 16 losowych liczb 3-bitowych (tj. W zakresie 0–7) w dziesiątej linii pola gry. Linia czwarta wypisuje nagłówek PBM, a ostatnia linia generuje piksele obrazu. Odbywa się to poprzez odliczanie 16 liczb losowych, gdy piksele są wyprowadzane - gdy liczba odpowiadająca określonej kolumnie osiągnie zero, wyprowadzamy 1 zamiast 0.
Próbka wyjściowa (powiększony):
źródło
Mathematica,
7760 bajtówPrzykładowe dane wyjściowe
Wyjaśnienie
Utwórz reguły zastępcze dla każdej kolumny; zamień losowo wybraną pozycję na 1.
Utwórz
SparseArray
z rozmiarem o rozmiarze 8x16. Tło jest0
domyślnie. (8x16, ponieważ Mathematica najpierw liczy rzędy)Przekształć
SparseArray
wImage
obiekt.Wersja 77-bajtowa
źródło
HTML + JavaScript, 148 bajtów
źródło
R, 76 bajtów
Używa pakietu
png
do wyjścia do pliku.Przykładowe dane wyjściowe:
źródło
QBasic, 59 bajtów
Całkiem proste. Jest
-.5
to potrzebne, ponieważPSET
w przypadku argumentów niecałkowitych używa się zaokrąglania do najbliższego zamiast floor lub obcinania (i-.5
jest on krótszy niżINT()
).Obraz, o którym mowa, jest wyświetlany w lewym górnym rogu okna wyjściowego. Przykład (przycięty):
źródło
Java, ( czy to w ogóle ma znaczenie Bajtów, AKA 244 + 18 import = 262)
Był niepewny, ponieważ układ współrzędnych zawiera okienko okna ramki ... Musisz buforować o co najmniej 26 bajtów lub nic się nie pokazuje, stąd
x=50
bit.źródło
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();}
(Dokonane zmiany: usunięto statyczne; Java 8 lambda; niektóreint
usunięto;i=16
ponownie użyto; włóż rzeczy do pętli for, aby usunąć nawiasy i;
)Postscript (65 bajtów)
Wersja bez golfa:
źródło
SmileBASIC, 30 bajtów
źródło
Chip-8, 12 bajtów
Rysuje obraz na ekranie.
źródło
Tcl / Tk, 163
Dwa różne podejścia renderują w tym samym zakresie bajtów:
źródło
VBA Excel,
86105 bajtówza pomocą natychmiastowego okna
źródło
Cells.RowHeight=42:[A1:P8].Interior.Color=0:For x=0To 15:[A1].Offset(Rnd*7,x).Interior.Color=-1:Next
-1
zamiastvbWhite
- pełnego wyjaśnienia, dlaczego tutaj )