Wolltest Du schon immer mal Dein eigenes Spiel Programmieren? Wir programmieren Tetris gemeinsam.
Dann heiße ich Dich willkommen zu meinem Kurs. Gemeinsam programmieren wir Schritt für Schritt den all-time-classic Tetris.
Und dafür brauchst Du keine großen Programmierkenntnisse. Wenn Du weißt was ein if-Statement und eine Loop ist, sind wir schon good to go.
In über 65 praxisorientierten Video-Lektionen implementierst Du mit meiner Unterstützung Methode-für-Methode Dein Videospiel.
Wolltest Du schon immer mal Dein eigenes Spiel Programmieren? Wir programmieren Tetris gemeinsam.
Dann heiße ich Dich willkommen zu meinem Kurs. Gemeinsam programmieren wir Schritt für Schritt den all-time-classic Tetris.
Und dafür brauchst Du keine großen Programmierkenntnisse. Wenn Du weißt was ein if-Statement und eine Loop ist, sind wir schon good to go.
In über 65 praxisorientierten Video-Lektionen implementierst Du mit meiner Unterstützung Methode-für-Methode Dein Videospiel.
Der Kurs besteht aus klar abgegrenzten Modulen, in denen wir uns auf einzelne Komponenten des Spiels fokussieren. Pro Lektion behandeln wir genau ein Feature, oder eine Methode.
Eine Lektion ist so aufgebaut:
Zuerst schauen wir uns analytisch an, was genau die Methode oder Feature aus einer User, bzw. Spielersicht machen soll.
Dann schauen wir uns die technische Seite an. Dort schauen wir uns zusammen Unit Tests an, die spezifizieren, wie welche Daten genau verändert werden sollen.
Und dann bist Du schon gefragt. Du bekommst einen Code-Stand mit den Unit-Tests, die das oben beschriebene Feature genau spezifizieren, und kannst loslegen. Während du programmierst, kannst du selbstständig auf deinem Computer die Unit Tests ausführen, sodass Du weißt ob Du richtig liegst.
Sobald Du dann fertig bist, schauen wir uns gemeinsam noch meine Lösung an. Als Software-Entwickler mit jahrelanger Erfahrung kann ich Dir hier noch einige Tipps und Hinweise zur Implementierung geben. Außerdem erkläre ich warum ich diese Implementierung gewählt habe und worauf zu achten ist.
Diese Lektionen bauen dann aufeinander auf und so entsteht Schritt für Schritt Dein eigenes Tetris.
Angefangen zu programmieren habe ich überhaupt, weil ich als Kind immer Spiele entwickeln wollte. Damals habe ich nie wirklich die richtigen Kurse oder Bücher dafür gefunden – und auch heute scheint Spieleentwicklung mit dem Lernen von Frameworks & Engines wie Unity, oder Unreal verbunden zu sein. Das machen wir hier nicht.
Wir implementieren alles von Beginn an. Das einzige was ich euch von Anfang an mitgebe ist ein minimales technisches Grundgerüst für die Unit Tests. Den Rest machen wir mit typescript.
Wenn Du noch nie etwas mit typescript gemacht hast, bist Du trotzdem richtig hier, solange Du Grundlagen der Programmierung beherrscht – also if und loop – und schon Grundkonzepte der Objektorientierung kennst.
Dann gibt es nicht mehr viel zu sagen, außer, dass ich mich freue, mit Dir gemeinsam Tetris zu entwickeln – und wir sehen uns bei der ersten Lektion :)
Key Facts:
Step-By-Step: Kleine, verstehbare Lektionen, Methode-für-Methode, Komponente-für-Komponente
Umfangreich: über 65 Videolektionen
Praxisorientiert: Jede Lektion wird durch eine Praxis-Aufgabe abgeschlossen, die Du durch autom. Tests selbst überprüfen kannst.
Saubere, klare Software-Entwicklung & Architektur
Zugänglich: Kaum Vorkenntnisse nötig.
In diesem Kurs lernst Du nicht nur Tetris zu programmieren sondern auch:
Analytisches Vorgehen: Kein Drauflos-Skripten, sondern klare Vorüberlegungen
Testgetriebene-Entwicklung: Jede Methode wird mit Unit-Tests abgedeckt, die Dir helfen die Spezifikationen der Praxisaufgabe genaustens zu verstehen und zu implementieren
Software-Architektur: Prinzipien wie bspw. Seperation of Concern und Dependency Injection
Willkommen
Hallo und herzlich Willkommen zum Kurs "How to code Tetris"! Eines der Grundkonzepte dieses Kurses ist, dass jede Lektion so fokussiert und präzise wie möglich gehalten ist. Legen wir also in diesem Sinne direkt los!
Ziel
Tetris als Spiel ist lauffähig
Ihr lernt über das Vorgehen der Software-Entwicklung:
Vorüberlegungen und Analyse
Spezifikationen & Test-getriebene-Entwicklung
Umsetzungshinweise, Umsetzung und Nachbesprechung
Hinweis: Der Fokus liegt auf den Daten und der Funktionalität; die Präsentation kommt zuletzt
Anleitung pro Lektion
Pro Lektion schaut ihr euch bitte alle vorbereitenden Materialen an. Geht es dann an die Aufgabe könnt ihr den zu der Aufgabe gehörenden Stand herunterladen. Ihr könnt auch mit eurem vorherigen Stand weitermachen – wenn es jedoch Probleme gibt könnt ihr immer mit dem von mir gegebenen Stand weitermachen. Ihr solltet euch niemals frustrieren – es muss Spass machen.
Laded ihr einen neuen Stand herunter müsst ihr einmal
npm install
ausführen. Das lädt die Dependencies herunter, diese sind im Download nicht enthalten, damit der Download klein bleibt.
Wenn das durchgelaufen ist führt ihr
npm run test
aus. Das kompiliert das Programm und führt die Tests aus. Diese sollten jetzt fehlschlagen. Eure Aufgabe ist das Feature so zu implementieren, dass diese Tests nicht mehr fehlschlagen.
Während ihr programmiert führt ihr also regelmäßig
npm run test
aus um zu sehen ob ihr richtig liegt. Wenn ihr euch auf nur einen Testfall fokussieren wollt könnt ihr ihn auch von describe zu fdescribe, bzw von it zu fit ändern. Das f steht für focus. Vergesst aber nicht, das f zu entfernen, da sonst scheinbar immer alles geht, in Wirklichkeit euer Code aber schief hängt.
Sollte es technische Probleme geben dann könnt ihr in der Troubleshooting Sektion nachschauen. Lasst euch nicht entmutigen, irgendwelche Probleme gibt's bei Computern immer, meist sehen sie ganz schlimm aus, lassen sich aber leicht beheben.
Ich würde euch dringend empfehlen git zu verwenden (oder eine anderes vcs), sodass ihr euren Code nicht verlieren könnt.
Zusammenfassung
Source-Code Downloaden, der zur Aufgabe gehört
Einmalig Dependencies laden: npm install ausführen
Feature Implementieren und mit npm run test festellen ob es wirklich funktioniert
Lösungsvideo anschauen und eigene Lösung vergleichen, zuhören, “mitdiskutieren” & lernen
Zusammenfassung
Jede Komponente hat einen eigenen Concern, der am Anfang jedes Modules erklärt wird
Die Komponente macht nur was in ihrem Concern enthalten ist
https://en.wikipedia.org/wiki/Separation_of_concerns
Jede Komponente wird durch ein Interface ausgedrückt
nach und nach implementieren wird die Methoden, pro Lektion eine
Wenn ein Komponente eine Abhängigkeit zu einer anderen hat, dann nur als interface. Die konkrete Instanz wird im Constructor mitgegeben: https://en.wikipedia.org/wiki/Dependency_injection
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.