transcode

Ich sitze im Zug nach Hause. Komme von der letzten Vorlesung des 2. Semesters: Informatik. Eigentlich bin ich auf dem Weg in die Semester-„Ferien“, ständen da nicht für den nächsten Monat noch 4 Klausuren in meinem Kalender 😉

Informatik, Grundlagen des Digitalrechners. Klingt eigentlich recht trocken. Trotzdem ist es klar mein Favorit unter den Fächern dieses Semesters.
Als Ergänzung zur Vorlesung richtete unser Professor einen kleinen Wettbewerb aus.
Mein Beitrag zum Students Englightment Award ist ein Compiler Frontend für den GNU Compiler der Atmel AVRs.

Teil der Vorlesung war die Einführung des Mikrocontrollers ATMega8 von Atmel und dessen Programmierung mit Assembler. Dabei lernten wir zuerst die Schaltungstechnischen Grundlagen und die Minimierung von Schaltnetzen. Anschließend sind wir auf den Aufbau der Zentralen Recheneinheit eingegangen (Steuerwerk, ALU etc..).

transcode kompiliert/assembliert ANSI C und Assembler in Maschinencode und umgekehrt. Dabei wird mit Hilfe von Debugging Informationen ein Bezug zwischen Zeilen im C-Code und den Mnemonics hergestellt. Durch Auswählen von Zeilen werden Bezüge direkt durch Hervorhebungen dargestellt. Für die Darstellung des Maschinencodes lässt sich zwischen binär, dezimal & hexadezimaler Form wählen.

transcode weiterlesen

Delphi Potenzübungsprogramm

Im Rahmen unseres Informatikunterrichts in der 10. Klasse wurde unsere Leistung durch eine Projektarbeit bewertet. In kleinen Gruppen arbeiteten wir an jeweils unterschiedlichen Projekten.

Das Potenzübungsprogram war unser erstes Delphi-Projekt. Wir steckten unsere ganze Motivation hinein und fügten sogar eine Hilfe mit Bildern und einen Installer hinzu. Wir teilten unsere Gruppe in Programmierung, Packaging und Dokumentation auf 😉 Jeder hatte ja seine eigenen Vorlieben und Fachgebiete.

das Hauptprogramm
das Hauptprogramm

Die Aufgabenstellung bestand darin ein kleines Potenzübungsprogramm zu entwickeln, welches beim Lernen der Potenzregeln helfen sollte. Wir fügten eine Fehlerkorrektur, einen Webkampfmodus mit Onlineranking hinzu (ist leider nicht mehr online). Wir legten viel Wert auf eine intuitive und schnelle Bedienung. Das Programm ist komplett über die Tastatur bedienbar. Der User bekommt eine akustische Rückmeldung seines Ergebnisses und abschließend eine statistische Auswertung seiner Übung.

hier wurde nichts vergessen
hier wurde nichts vergessen

Mit dem Projekt lernten wir alle Möglichkeiten von Delphi kennen. Und natürlich mussten wir fast alle Features und Gimicks (App-Icon, Hilfe, etc) einmal ausprobieren. Also unser Programm ist eine „Eierlegende Wollmilchsau“ und daher wohl auch eher eine Art Machbarkeitsstudie, um unseren lieben Informatiklehrer zu beindrucken 😉

Ihr könnt den Quellcode gerne für eure Projekte weiterverwenden. Bitte beachtet jedoch die GPL.

Download: Delphi Potenzübungsprogramm (.msi Installer mit Quellcode).
Alternativ gibt es den Quellcode auch über Github.

Delphi 2D-Autorennen

Als Abschluss des Informatik Grundkurses der 11. Klasse möchte ich euch nun unsere Delphi Implementierung eines 2D Autorennspiels vorstellen.
Anfangs bestand die Aufgabenstellung darin ein ein-dimensionales Spiel zu entwickeln, bei dem der Spieler mit den schnelleren Fingern gewinnt. Also quasi ein einfaches Geschicklichkeitsspiel. Anfangs sind wir daher nur auf einer Linie gefahren. Aber wer hätte es gedacht? Nach einer Zeit wurde das ziemlich langweilig. Un da wir noch genügend Zeit hatten, struktuierten wir unseren Code grundlegend neu und fügten die Simulation von Beschleunigung und Verzögerung hinzu.

2dauto

Trotzdem sind wir noch nicht über die 1. Dimension hinaus gekommen. Nachdem nach der 4. Doppelstunde immer noch nicht alle fertig waren und wir schon dabei waren Extras und Cheats einzubauen, habe ich mich dann entschlossen in die 2. Dimension zu gehen. Die kleine Physikengine behielten wir bei und fügten die Möglichkeit hinzu die Autos zu lenken. Aber nun hatten wir ein Problem: wie wird die nun zwei-dimensionale Strecke begrenzt? Eine Strecke mit Canvas Objekten zu zeichnen war uns zu aufwendig und auch nicht gerade sehr schön. Wir bediehnten uns daher einer Technik die auch als „Colorcoding“ bekannt ist: verschiedene Farben in einer Bitmap markieren, fahrbare Bereich und Barrieren. Einen Rundenzähler und eine Konfigurationsdatei  rundeten schließlich das Projekt ab.

colorcoding

Wir legten diesmal viel Wert auf die objektorientierte Entwicklung des Codes, da dies das aktuelle Unterrichtsthema ist.

Ein Frontend für die Einstellungen sparten wir uns, um uns mehr auf die „Physik“ konzentrieren zu können. Die Einbindung eines INI-Files lernte ich nebenbei auch noch. Das Autorennprogram ist also als Gegenstrück zum Potenzübungsprogram zu sehen. Hierbei legten wir mehr Wert auf ein schönes GUI mit Hilfe und Installer.

Ihr könnt den Quellcode gerne für eure Projekte weiterverwenden. Ich bitte jedoch um einen kurzen Kommentar und einen Hinweis im GUI, Danke

Download: 2D Delphi-Autorennen (Anwendung + Quellcode)

Desweiteren ist das Projekt auch auf GitHub zu finden.