Ihre Aufgabe ist es, ein Programm zu schreiben, das Ihren Bildschirm so aussehen lässt, als hätte er ein schlechtes Pixel.
Sie sollten genau ein Pixel auf dem Bildschirm und genau einen Kanal zwischen Rot, Grün und Blau auswählen und den Wert entweder immer auf 0 oder immer auf Maximum setzen (normalerweise 255). Die Werte anderer Kanäle sollten so sein, als ob Ihr Programm nicht ausgeführt würde.
Sie können Pixel und Kanal auf beliebige Weise auswählen, z. B. durch Hardcodierung oder zufällige Generierung bei jedem Durchlauf. Aber es muss immer auf ziemlich modernen Hardware sichtbar sein.
Wenn sich die Farbe, die ursprünglich auf diesem Pixel angezeigt werden sollte, geändert hat, sollte Ihr Programm in weniger als 0,5 Sekunden aktualisiert werden, wenn das System schnell genug ist.
Sie können keine Annahmen darüber treffen, was aktuell auf dem Bildschirm angezeigt wird (z. B. eine Taskleiste mit dem Standarddesign).
Ihr Programm muss nicht funktionieren, wenn ein Bildschirmschoner, ein Anmeldebildschirm, ein Effekt von einem Fenstermanager usw. aktiv sind.
Kürzester Code gewinnt.
quelle
Antworten:
Bash unter Linux - 25 Bytes Latin-1
+3 von @wyldstallyns / -2 vom Entfernen von Anführungszeichen / -1, weil ich vergessen habe, wie das funktioniert / -9 von @Dennis
Nimmt an, dass / dev / fb0 existiert (auf meinem Arch Linux-System, und ich denke, es sollte auf jedem anderen Linux-System sein). Erfordert ebenfalls Root-Zugriff. Dies funktioniert bei mir nicht, wenn X ausgeführt wird. Auf meinem System setzt dies den blauen Kanal des oberen linken Pixels konstant auf voll (
ÿ
ist 255).quelle
printf ÿ>/dev/fb0;exec $0
spart ein paar Bytes.yes
Ansatz funktioniert nicht./dev/fb0
muss nach dem Schreiben eines Pixelkanals wieder geöffnet werden.Visual C ++,
1021009998 BytesLäuft unter Windows direkt über die Win32-API mit Visual C ++ - Compiler, der auf das Konsolensubsystem abzielt. Verwendet den Gerätekontext "Bildschirm" , um den roten Kanal des Pixels auf (9,9) zu setzen
0xFF
.Der Energiesparmodus ist erforderlich, damit andere Programme zwischen get / set zeichnen können - und 9 ms waren zu kurz, was dazu führte, dass das Pixel 1 an seiner ursprünglichen Farbe hängen blieb .
1 Leider nicht ganz die gleiche Art von feststeckendem Pixel, nach der diese Frage sucht ...
quelle
HolyC, 13 Bytes
Setzt einen schwarzen Punkt direkt auf die beständige Ebene.
Wie es aussieht.
quelle
C #,
247244371366354352 BytesLäuft unter Windows. Ruft einen Gerätekontext für den gesamten Bildschirm ab und maximiert den roten Kanal wiederholt auf (9,9).
Eigentlich wollte ich
GetPixel
/ nicht importierenSetPixel
, aber es gibt keine besonders einfache Möglichkeit, ein einzelnes Pixel von einem zu lesenGraphic
. Im Moment ist dies praktisch das Gleiche wie mein VC ++ - Versuch . Möglicherweise ist das Speichern auf einer Bitmap kürzer ...-5 Bytes dank @TuukkaX
quelle
SetPixel
.9ms
anstatt99ms
0x1FFFFFFF
etwaige Iterationen in einer belegten Schleife anstelle des Ruhezustands durchlaufen werden , dies müsste jedoch für jeden Computer so eingestellt werden, dass er innerhalb der 0,5-Sekunden-Grenze bleibt.SmileBASIC, 20 Bytes
Ständig aktualisiert.
Sets Sprite
0
zu einem1
x -1
Bereich auf299
,99
auf dem Sprite - Blatt (das ein rotes Pixel ist).33
ist das Anzeigeattribut1
(Anzeige ein) +32
(additive Mischung).quelle
Java 7, 266 Bytes
Ich habe dies unter Windows 7 ausgeführt. Öffnet ein Java-Applet, das standardmäßig einen weißen Hintergrund hat. Fügt eine Beschriftung mit einem Punkt hinzu und ändert dann die Farbe der Beschriftung ad nauseum.
quelle
Tcl / Tk, 61
Auf dem Bild befindet sich ein schwarzes Pixel in der oberen linken Ecke des Vivaldi-Symbols:
In einer interaktiven Shell stehen Abkürzungen für Befehle zur Verfügung:
Tcl / Tk, 57
Über dem V-weißen Bereich des Vivaldi-Symbols befindet sich ein schwarzes Pixel:
quelle