Blatt 03: Git-Quest und Dojo-Dungeon (Git Basics, Lambda-Ausdrücke)

(1 Punkt)

Git

A03.1: Git Status erklären (15%)

Betrachten Sie die folgende Ausgabe von git status in einer lokalen Workingcopy (Arbeitskopie):

pm-lecture % git status
On branch b03

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   CONTRIBUTING.md
        modified:   homework/b03.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        foo.java

no changes added to commit (use "git add" and/or "git commit -a")

Erklären Sie die Ausgabe.

Geben Sie eine Befehlssequenz an, mit der Sie nur die Änderungen in foo.java committen können.

A03.2: Git-Spiel (55%)

(Verteilung: 15%, 10%, 10%, 10%, 10%)

Klonen Sie die Vorgaben "Git-Quest". Sie finden die Geschichte des Helden Markus im Dungeon.1

  1. Öffnen Sie eine Konsole und beantworten Sie mit Hilfe der Befehle git checkout, git log und git show sowie git diff folgende Fragen:

    • Was passierte an tag 01?
    • Wann hat der Held zum ersten Mal 4 experience Punkte?
    • Wann hat der Held zum ersten Mal 10 hunger Punkte?
    • Wie viele Heiltränke hat der Held insgesamt in seinem Rucksack gehabt?
    • Was hat der Held im Shop gekauft? Und wie viel Gold hat er dafür bezahlt?
    • Was passierte zwischen Tag 03 und Tag 04, d.h. was änderte sich zwischen diesen Commits?
    • Hat der Held etwas gegessen? Falls ja, was und wann?
  2. Beim letzten Commit (Tag 04.5) ist etwas schief gelaufen, es wurden versehentlich zu wenig experience Punkte eingestellt. Ändern Sie diesen letzten Commit und passen Sie die experience Punkte auf 42 an.

  3. Schreiben Sie die Geschichte in der Datei questlog.md fort und erzeugen Sie einen neuen Commit für Tag 04.6. Ändern Sie bitte hierzu nur die eine Datei questlog.md.

  4. Schreiben Sie die Geschichte noch weiter fort (Tag 04.7), aber ändern Sie diesmal mehrere Dateien, die an diesem Tag (neuer Commit) gemeinsam eingecheckt werden sollen.

  5. Fälschlicherweise wurden die Statuspunkte und die Ausrüstung bisher gemeinsam in der Datei stats.md geführt. Korrigieren Sie das und verschieben Sie die Ausrüstungsgegenstände aus der Datei stats.md in eine neue Datei gear.md. Checken Sie Ihre Änderungen als Tag 04.8 (neuer Commit) gemeinsam ein. (Hinweis: Es reicht, wenn diese Änderung als letzter Commit auf der Spitze des master-Branches existiert. Sie brauchen/sollen die Trennung von Statuspunkten und Ausrüstung nicht rückwirkend in die Historie einbauen!)

Demonstrieren Sie Ihr Vorgehen im Praktikum jeweils live.

A03.3: Commit-Meldungen (20%)

Gute Commit-Meldungen schreiben erfordert Übung. Schauen Sie sich die beiden Commits Dungeon-CampusMinden/Dungeon/commit/46530b6 und Dungeon-CampusMinden/Dungeon/commit/3e37472 an.

Diskutieren Sie jeweils, was Ihnen an den Commits auffällt: Was gefällt Ihnen, was stört Sie? Schlagen Sie Verbesserungen vor.

Lambda-Ausdrücke

A03.4: Dojo-Dungeon: Der Vergessene Wald (10%)

Klonen Sie das Projekt Dungeon und laden Sie es in Ihrer IDE als Gradle-Projekt. Betrachten Sie das Sub-Projekt "dojo-dungeon". Dies ist ein von den Tutoren2 erstelltes kleines Spiel mit vier Leveln, in denen Sie spielerisch Aufgaben lösen sollen - auf diesem Aufgabenblatt ist nur das erste Level relevant.

Starten Sie den Dojo-Dungeon mit ./gradlew dojo-dungeon:runDojoDungeon. Spielen Sie sich für diese Aufgabe durch das erste Level ("Der Vergessene Wald"). Sie werden drei Räume finden: Im ersten Raum müssen Sie die Monster besiegen - eines wird Ihnen dabei einen Schlüssel geben. Heben Sie diesen auf, nur damit öffnet sich die Tür zum zweiten Raum. Dort bekommen Sie eine Quest: Sie sollen im Asset-Ordner vom "dojo-dungeon"-Sub-Projekt eine Java-Datei korrigieren. Tun Sie dies und folgen Sie den Anweisungen. Ist die Aufgabe erfolgreich gelöst, gelangen Sie in den dritten Raum. Hier werden Ihnen Fragen zu Lambda-Ausdrücken gestellt, die Sie bitte beantworten. Danach steht Ihnen das nächste Level offen, aber das brauchen Sie für diese Aufgabe (noch) nicht zu lösen.

Das Spiel wird über die Tastatur bedient, die kurze Anleitung "How to play" erklärt die einzelnen Tasten.

Machen Sie Screenshots der Fragen und Ihrer Antworten für die Vorstellung im Praktikum. Zeigen und erklären Sie die Korrekturen an der Java-Datei.

WICHTIG: Achten Sie bitte darauf, dass im Projektpfad keine Leerzeichen und keine Sonderzeichen (Umlaute o.ä.) vorkommen! Dies kann zu seltsamen Fehler führen. Bitte auch darauf achten, dass Sie als JDK ein Java SE 21 (LTS) verwenden.


  1. Für alle, die schon mit Branches umgehen können: Betrachten Sie auf diesem Blatt bitte nur den Branch master↩︎

  2. Der Dank für den "dojo-dungeon" geht an @Denniso3, @tgrothe und @JudiTeller↩︎