Dies und das

Ein Sammelsurium kleiner Aufgaben und Kuriositäten.

0 von 2 Aufgaben gelöst
Sandbox

In dieser Sandbox kannst du beliebige Dinge programmieren. Es gibt hier keine richtigen oder falschen Lösungen, aber wenn du mal einen Python-Interpreter zum ausprobieren brauchst, bist du hier genau richtig.

MySQL-Sandbox

In dieser Sandbox kannst du mit deiner MySQL-Datenbank interagieren.

6502 Sandbox

Programmiere eine 6502-CPU mit Assembler-Code.

Der Code beginnt an Adresse $600 und an den Speicherstellen $200 bis $5ff befindet sich der Bildschirmspeicher für 32x32 Pixel mit 16 EGA-Farben.

Eine Übersicht der 6502-Befehle findest du z. B. hier.

Hier gibt es den Quelltext für ein Snake-Spiel, das du einfach kopieren und ausprobieren kannst.

Pixelflut

Zeichne Pixel auf eine gemeinsame Zeichenfläche! Deine Pixel bleiben so lange stehen, bis jemand anderes etwas darüber zeichnet.

Die Zeichenfläche ist 256 Pixel breit und 144 Pixel hoch. Der Pixel links oben hat die Koordinaten (0, 0), der Pixel rechts unten hat die Koordinaten (255, 143). Verwende die Methode self.set_pixel(x, y, r, g, b), um einen Pixel zu setzen, wobei r, g und b jeweils die Intensität von rot, grün und blau im Bereich von 0 bis 255 angeben.

Du darfst natürlich auch die ganze Zeichenfläche überschreiben!

Quine

Ein Quine ist ein Programm, das seinen eigenen Quelltext ausgibt. Dabei ist es nicht erlaubt, den eigenen Quelltext zu lesen.

Schreibe einen Quine! Bonuspunkte (ehrenhalber) gibt es für Lösungen, die nicht sofort per Google zu finden sind. 😉

Test-Sandbox

Hier kannst du mit Unit-Tests experimentieren.

Implementiere zuerst die Funktion vorsprung, so dass alle Tests fehlerfrei durchlaufen.

Finde anschließend weitere Tests, um die Robustheit der Funktion zu erhöhen.

Labeldrucker-Sandbox

Hier kannst du mit einem Label­drucker experi­men­tieren, indem du Label in ZPL (Zebra Programming Language) erstellst.

Maße des Labels:

57.0 mm × 31.5 mm
472 × 268 Pixel (8 dpmm)
Safe Area: 16 Pixel

Befehlsübersicht

Ein Label muss immer mit ^XA beginnen und mit ^XZ enden. Dazwischen befinden sich ein oder mehrere Felder (Fields) – dies können z. B. Texte, Barcodes oder grafische Elemente sein. Einzelne Felder werden mit ^FS (Field Separator) voneinander getrennt.

Hinweis: Obwohl es nicht Teil der ZPL-Spezifikation ist, können in der Hackschule einzelne Zeilen mit # auskommentiert werden.

^BC
Code 128 Bar Code (Barcode drucken)
^BCo,h,f,g,e,m
o – orientation (N, R, I, B)
h – bar code height (1-32000)
f – print interpretation line (Y, N)
g – print interpretation line above code (Y, N)
e – UCC check digit (Y, N)
m – mode (N, U)
^XA ^BCN,60^FDHello^FS ^XZ
^BQ
QR Code Bar Code (QR-Code drucken)
^BQa,b,c
a – field position (N)
b – model (2)
c – magnification factor (1-10)
Achtung: das Fehlerkorrektur-Level wird hierbei in ^FD angegeben!
^FDa,bc
a – error correction (H, Q, M, L)
b – character mode (A, M)
c – barcode data
^XA ^BQN,,4^FDM,AHello^FS ^XZ
^CF
Change Alphanumeric Default Font (Schriftart ändern)
^CFf,h,w
f – specified default font (A-Z, 0-9)
h – character height
w – character width
^XA ^CFE,30 ^FDHello^FS ^XZ
^FB
Field Block (mehrzeiliger Text)
^FBa,b,c,d,e
a – width of text
b – maximum number of lines in text block
c – add or delete space between lines
d – text justification (L, C, R)
e – hanging indent
Hinweis: Einzelne Zeilen werden mit \& getrennt.
^XA ^CF0,40 ^FB472,4,0,L,0^FDLeft 1\&Left 2\&^FS ^FB472,4,0,C,0^FDCenter 1\&Center 2\&Center 3\&^FS ^FB472,4,0,R,0^FDRight 1\&Right 2\&^FS ^XZ
^FD
Field Data (Daten, die gedruckt werden sollen)
^FDa
a – data to be printed
^FO
Set Field Origin (linke obere Ecke verschieben)
^FOx,y
x – x-axis location
y – y-axis location
^XA ^FO100,100 ^FDHello^FS ^XZ
^FR
Field Reverse Print (Feld invers drucken)
Hierbei wird jeder durch die Zeichenoperation betroffene Pixel invertiert.
^XA ^CF0,60 ^GB 100,100,10^FS ^FR^FDHello^FS ^XZ
^GB
Graphic Box (Rechteck zeichnen)
^GBw,h,t,c,r
w – box width
h – box height
t – border thickness
c – line color (B, W)
r – degree of corner-rounding (0-8)
^XA ^GB100,100,10^FS ^FO120,0^GB100,100,20,B,3^FS ^FO240,0^GB100,100,30,B,6^FS ^XZ
^GC
Graphic Circle (Kreis zeichnen)
^GCd,t,c
d – circle diameter
t – border thickness
c – line color (B, W)
^XA ^GC100,5 ^XZ
^GD
Graphic Diagonal Line (Linie zeichnen)
^GDw,h,t,c,o
w – box width
h – box height
t – border thickness
c – line color (B, W)
o – orientation (L, R)
^XA ^GD70,100,5,B,R^FS ^FO70,0^GD140,100,1,B,L^FS ^XZ
^GE
Graphic Ellipse (Ellipse zeichnen)
^GEw,h,t,c
w – ellipse width
h – ellipse height
t – border thickness
c – line color (B, W)
^XA ^GE160,90,10 ^XZ
^GF
Graphic Field (Grafik zeichnen)
^GFa,b,c,d,data
a – compression type
b – binary byte count
c – graphic field count
d – bytes per row
^XA ^GFA,8,8,1,55AA55AA55AA55AA^FS ^XZ
Komplexere Beispiele findest du hier: Detectives, Moon, Study, Tree, Balloon, Mountains, Space 1, Space 2, Space 3.
^FS
Field Separator (Feldende)
^XA
Start Format (Labelbeginn)
^XZ
End Format (Labelende)

Eine vollständige Übersicht über alle ZPL-Befehle gibt es hier: ZPL II Programming Guide.

Impressum und Datenschutz