SimulationsRaum Rotating Header Image

Februar 7th, 2017:

MoreHuhn

Heute war die letzte Sitzung meines Seminars „Assemblerprogrammierung für Medienwissenschaftler“, das ich an der Uni Paderborn gegeben habe. Im Laufe des Semesters haben die Studenten den MOS 6502 kennen und programmieren gelernt. Ab der zweite Kurshälfte haben wir uns auf ein gemeinsames Programmierprojekt geeinigt, bei dem induktiv aus verschiedenen Algorithmen zur Grafikprogrammierung und Steuerung ein Abschießspiel entstanden ist. Maßgeblich für das Coding war dabei einer der Studenten, dessen Entwürfe wir Sitzung für Sitzung analysiert, erweitert und debuggt (häufiger aber mit neuen Bugs ausgestattet) haben. Am Ende steht nun ein fast komplettes Shooterspiel, bei dem man eine Kanone auf dem unteren Bildschirmrand steuert, um Vögel, die über einen hinweg fliegen, abzuschießen. In der finalen Version sollten die Vögel selbst auch noch zurückschießen und versuchen alle drei Kanonen, die der Spieler hat, nacheinander zu treffen; leider sind wegen Krankheit zwei Sitzungen ausgefallen, so dass das Spiel vorerst ein Stump ist, der allerdings funktioniert.

Davon kann man sich auf dieser Webseite überzeugen:

https://homepages.uni-paderborn.de/cgeppert/6502asm/index.html

Dort wählt man im Pulldown-Menü das Programm „chickshoot.asm“ aus, klickt auf „Compile“ und dann auf „Run“.

Mit den Tasten „A“ und „D“ kann man die Kanone steuern, mit „M“ einen Schuss abgeben. (Derzeit noch als Easter Eggs implementiert ist die Taste „Z“, mit der die Zufallsgeschwindigkeiten der Vögel geändert werden können und die Taste Shift-M, mit der ein Laserstrahl abgefeuert werden kann.)

Abermals hat sich der 6502-Assembler als ideale didaktische Programmiersprache erwiesen. Die Entwicklungsumgebung ist ein auf JavaScript basierender Emulator, der zwar noch einige Fehler enthält, aber ein für Lehrzwecke ideal reduzierte Plattform darstellt. (Interrputs sind nicht möglich, Ausgaben erfolgen ausschließlich auf dem 32×32 Pixel großen Bildschirm, Eingaben sind nur über die Tastatur vornehmbar). Der Emulator ist Freeware und kann bei GitHub abgerufen und auf eigenen Webseiten implementiert werden.

P.S. Der Student, der den JavaScript-Emulator auf seine Webseite implementiert hat, hat dabei gleich zwei ihm bekannte Fehler aus dem JavaScript-Code korrigiert.