Lektion 7 unter Linux

Erstellt von Frithjof Sat, 12 Oct 2013 10:14:00 GMT

Die Lektion 7 funktioniert jetzt auch unter Linux. Mit den Tasten ‘l’ (klein L) und ‘r’ (klein R) kann man das Fahrrad nach links bzw. rechts fahren lassen. Die Taste ‘x’ beendet die Fahrt.

Aktueller Quellcode zum Download auf GitHub.

Lektion 23 - Oberflächenbewegung

Erstellt von Frithjof Tue, 30 Sep 2008 21:58:00 GMT

Lektion 23 – Oberflächenbewegung

In dieser Lektion erweckst du den LKW zum Leben. Er wird deiner Tastatur und deiner Maus gehorchen und sich auf der Oberfläche von FXRuby vorantasten. Schritt für Schritt wirst du in den kommenden Lektionen dann seine Bewegungen verbessern, sodass es am Ende hoffentlich nicht übertrieben sein wird zu sagen, er fährt!

Lektion 22 - Oberflächentransport 1

Erstellt von Frithjof Sun, 21 Sep 2008 21:44:00 GMT

Die Hello World Oberfläche der letzten Lektion zeigte dir den allgemeinen Umgang mit FXRuby. Damit kannst du aber auf die Dauer niemanden beeindrucken. Zu einer richtigen Oberfläche gehört mehr. Im Vergleich zur Programmierung an der Konsole, wo jede Ausgabe auf einer Zeile stattfindet und der Rest einfach eine Zeile nach oben rutscht, steht dir hier ein bestimmter Bereich an der Oberfläche für Ein- und Ausgaben zur Verfügung, der eine bestimmte Breite und Höhe hat. Ein Widget irgendwo auf dieser Oberfläche hat selbst wieder eine bestimmte Breite und Höhe.

Diese Lektion will dir ein besseres Gefühl für diese zweidimensionale Anordenbarkeit geben.

Lektion 21 - Oberflächlich gesehen...

Erstellt von Frithjof Fri, 12 Sep 2008 22:11:00 GMT

Der nächste Block von 7 + 3 Lektionen liegt vor uns. Sie machen dich mit der Programmierung von grafischen Benutzeroberflächen bekannt. Alle bisher mit rubykids.de entwickelten Programme waren rein textbasiert, die Ein- und Ausgabe erfolgte auf der Kommandozeile in einer DOS-Box. Das wird nun anders. Du lernst mit FXRuby eine mächtige Programmbibliothek für Ruby kennen, die dir bei der Entwicklung von Oberflächen hilft.

Das Problem mit Ruby ist, dass es eigentlich selbst überhaupt nicht mit grafischen Oberflächen umgehen kann, denn hierfür ist eine nahe Kommunikation mit der Grafik-Hardware und den Tiefen des Betriebssystems notwendig. Ruby bedient sich daher anderer Bibliotheken, die in den Programmiersprachen C oder C++ entwickelt sind. Ruby verfügt über einen eingebauten Mechanismus, der es erlaubt in diesen Fremdsprachen entwickelten Code zu nutzen und Programmbefehle in Ruby auf diese weiter unten liegende Codeebene weiterzugeben. Mehr noch, die Programmiersprache Ruby, d.h. der Ruby-Interpreter, ist selbst mit Hilfe der Programmiersprache C entwickelt.

Das musst du immer irgendwie im Hinterkopf behalten, denn Rubycode, der grafische Oberflächen erzeugt ist irgendwie anders als normaler Rubycode. Man könnte auch sagen, er ist ein wenig ekelig. Aber nun will ich dir nicht die ganze Vorfreude nehmen, fangen wir an…

Lektion 20 - Dort, wo das Bit haust

Erstellt von Frithjof Thu, 31 Jul 2008 22:09:00 GMT

Zahlen bestehen aus Ziffern. Eine Ziffer ist ein einzelnes Symbol. Eine Zahl wird aus einer oder mehreren Ziffern gebildet. Nimm die 21, sie besteht aus den beiden Ziffern 2 und 1. Die Reihenfolge der Ziffern oder die Stelle, an der Ziffern stehen, ist bei Zahlen wichtig. Denn 21 ist nicht dasselbe wie 12. Daher nennt man unser gewöhnliches Zahlensystem auch ein Stellenwertsystem. Jeder Position in einer Zahl ist ein bestimmter Stellenwert zugeordnet und die Ziffer gibt an, wie oft dieser Stellenwert gezählt wird. Unser Zahlensystem ordnet jeder Stelle von rechts nach links ein bestimmtes Vielfache von Zehn zu (1er, 10er, 100er, 1000er, ...) und es besitzt auch zehn verschiedene Ziffern (Symbole) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 zur Darstellung von Zahlen. Daher nennt man es auch das Zehnersystem oder (wegen lateinisch decem für zehn) Dezimalsystem.

Ein Bit ist eine Ziffer im Zahlensystem der Computerwelt, dem Dualsystem (oder Binärsystem). Hier gibt es nur zwei verschiedene Ziffern, 0 und 1. Jeder Position in einer Bitzahl ordnet man ein Vielfaches von zwei zu (1er, 2er, 4er, 8er, 16er, 32er, 64er, ...). Es scheint aber offensichtlich für einen Computer keine Einschränkung zu sein, dass er nur mit zwei verschiedenen Ziffern umgehen kann.

In dieser Lektion schauen wir uns an, wo die Bits im Computer wohnen, wie wir sie lesen und schreiben können und wie daraus Buchstaben und Zahlen werden, die du am Monitor siehst.

Schleifen binden - Theorie Lektion 8

Erstellt von Frithjof Fri, 25 Jul 2008 20:58:00 GMT

Der letzte Artikel versprach vollmundig, dass es weitergeht. Und das wird es auch! Was sind schon 50 Tage? Es lebt sich auch gut ohne Ruby.

Zur Einstimmung nach dieser langen Pause gibt es nicht die bereits erwartete Abschlußlektion 20, sondern eine kleine Theorielektion zum Thema Rekursion.

Lektion 19 - Containers, Blocks und Iterators 2

Erstellt von Frithjof Sat, 01 Mar 2008 07:29:00 GMT

Eine der Stärken von Ruby sind die leicht zu benutzenden Datenstrukturen, die als Behälter für alle möglichen Daten dienen. Du hast von diesen Container genannten Strukturen bereits Listen und Hashes kennengelernt.

In dieser Lektion lernst du die beiden anderen Talente von Ruby kennen: Blocks (engl. für Blöcke) und Iterators (engl. für Iteratoren, aus dem lateinischen iter, das Gehen, der Weg oder der Marsch).

Dann, mit der nächsten Lektion 20, geht dieser Teil von rubykids.de schließlich zu Ende und es beginnt mit Lektion 21 ein neuer. Mal sehen, was wir da spannendes machen werden.

Lektion 18 - Gib ihr dein Ruby!

Erstellt von Frithjof Fri, 22 Feb 2008 21:25:00 GMT

Peter hat ein Programm in Ruby für Livia entwickelt und möchte es ihr zum Geburtstag schenken. Livia leidet an Unpünktlichkeit. Also hat er die letzten Tage vor dem großen Fest damit verbracht, ihr eine Zeitansage in Ruby zu schreiben. Den Quellcode teilte er auf zwei Dateien auf. Nun steht er vor der Frage, wie er ihr seine kreativen Zeilen zukommen lässt. Soll er beide Dateien als Anhang an seine Glückwunsch E-Mail kleben? Soll er sie gemeinsam in eine Zipdatei packen? In dieser Lektion lernst du, wie du deine coolen Programme an andere weitergibst. Der Quellcode zu dieser Lektion befindet sich wie immer im Downloadbereich.

Lektion 17 - Tic-Tac-Toe objektorientiert

Erstellt von Frithjof Fri, 08 Feb 2008 22:19:00 GMT

Dies ist die letzte Lektion zu Tic-Tac-Toe. Das Spiel wird einen nicht unerheblichen Umbau erfahren: es wird objektorientiert werden. Das heißt aber nicht, dass es danach optimal und fertig ist. Software ist nie fertig (und meistens leider auch nicht immer optimal). Es gibt stets noch etwas zu verbessern oder neue Funktionalität, die man noch hinzufügen könnte. In den nächsten Lektionen warten aber noch mehr Abenteuer mit Ruby auf dich.

OOP vertieft - Theorie Lektion 7

Erstellt von Frithjof Mon, 24 Dec 2007 12:40:00 GMT

In Lektion 16 hast du einen ersten Eindruck von objektorientierter Programmierung (abgekürzt OOP) bekommen. Die prozedurale Programmierung im Spiel Tic-Tac-Toe führte dazu, dass wir eine Methode nach der anderen implementierten, die aber alle irgendwie zusammengehören. In Lektion 17, der Abschlußlektion des Spiels, wollen wir gemeinsam den bisherigen Rubycode für Tic-Tac-Toe in einen objektorientierten Code umschreiben.

Dazwischen füge ich diese Theorielektion ein, damit wir etwas Zeit haben uns mit dem Neuen vertraut zu machen.

Lektion 16 - Objekte - na endlich!

Erstellt von Frithjof Sat, 17 Nov 2007 00:13:00 GMT

In den vergangenen Lektionen drehte sich alles um das Spiel Tic-Tac-Toe. Wir haben wie verrückt Ruby Code getippt und – so hoffe ich – fleißig Tic-Tac-Toe gespielt, zu zweit am und gegen den Computer. Der ist im Verlauf unserer Tätigkeiten ziemlich stark geworden. Irgendwie macht es dann mit der Zeit keinen Spaß mehr, weil man ja sowieso schon weiß, dass es wieder mal auf ein Unentschieden hinaus läuft.

Hier nochmal alle Lektionen zu dem Spiel im Überblick.

Und jetzt? Wir schauen uns in dieser Lektion etwas an, wovon sicher viele meinen, ich hätte es dir schon eher sagen sollen.

St. Martin - Captain Future war auch da! 1

Erstellt von Frithjof Fri, 09 Nov 2007 21:18:00 GMT

Nix Tic-Tac-Toe, nix Ruby, sondern: es ist St. Martin und wir basteln eine Laterne! Naja, vielleicht auch zwei, die irgendwie über einen Versorgungsgang miteinander verbunden sind, mit Solarsegeln, Protonenantrieb für den Spiralflug, Xenonbeleuchtung und Lautsprecher zum Anschließen eines MP3-Players für den passenden Sound ? Fertig ist die St. Martinslaterne von rubykids.de, die Comet des Captain Future, von mindestens zwei Kindern zu tragen:

Lektion 15 - Tic-Tac-Toe, Computer unschlagbar? 2

Erstellt von Frithjof Thu, 25 Oct 2007 23:03:00 GMT

Dein Computer verliert noch häufig beim Tic-Tac-Toe. Das wollen wir mit dieser Lektion ändern. Du machst ihn zu einem stärkeren Gegner, der bei der Wahl seiner Züge auch den aktuellen Spielstand mit berücksichtigt. Wo er mit dem nächsten Zug gewinnen kann, wird er es tun, andernfalls sucht er sich gute Felder für seine Züge aus.

Lektion 14 - Tic-Tac-Toe gegen den Computer

Erstellt von Frithjof Tue, 16 Oct 2007 20:24:00 GMT

Dein Computer gehorcht dir bisher prima bei der Ausführung des Rubyprogramms Tic-Tac-Toe. Er fühlt sich aber etwas einsam, weil er nicht wirklich mitspielen darf. Das wollen wir in dieser Lektion ändern – der Computer darf Tic-Tac-Toe spielen! Er wird in dieser Lektion aber noch kein Profi werden. Wir sind zufrieden, wenn er überhaupt mitspielt, auch wenn man ihn noch sehr gut besiegen kann.

Lektion 13 - Tic-Tac-Toe, Wer gewinnt?

Erstellt von Frithjof Sun, 30 Sep 2007 04:35:00 GMT

Weiter mit Tic-Tac-Toe. In dieser Lektion wirst du den Gewinner eines Spieles bestimmen. Das Spiel ist beendet, sobald einer der Spieler eine beliebige Reihe horizontal, vertikal oder diagonal mit seinen Steinen belegen konnte. Die Methode dafür könnte so arbeiten:
  • Sie bestimmt für alle möglichen Reihen (horizontal, vertikal, oder diagonal) die Anzahl der Steine des Spielers, der gerade den aktuellen Zug gemacht hat.
  • Sobald die Methode eine Reihe findet, in der der Spieler 3 Steine hat, hört sie auf zu suchen und gibt bekannt, dass dieser Spieler gewonnen hat.

Older posts: 1 2 3