Z#Textadventure0 - JirkaDellOro/Softwaredesign GitHub Wiki
5.0 Text-Adventure Schreiben Sie ein kleines Programm, welches eine einfache Interaktion mit Objekten in einem fiktiven Raum textlich beschreibt. Dieses Prinzip ist seit vierzig Jahren durch Text-Adventures bekannt. In dieser Übung soll der Nutzer zwischen vier Befehlen wählen können: „look“: zeigt eine kurze Beschreibung des Raumes und eine Liste der darin befindlichen aufnehmbaren Gegenstände „inventory“: zeigt die Liste der aufgenommenen Gegenstände „take“ nimmt einen zufällig gewählten Gegenstand aus dem Raum heraus, legt ihn ins Inventar und informiert darüber „drop“ legt einen zufälligen gewählten Gegenstand aus dem Inventar, legt ihn im Raum ab und informiert darüber Die Interaktion findet ausschließlich mit Hilfe des prompt-Befehls statt, der Nutzer tippt den gewählten Befehl ein. Die Abbildung zeigt ein solches Fenster nach der Eingabe von „look“. Der Nutzer ist gerade dabei das Wort „inventory“ einzugeben. Oben erscheint immer die Information zur letzten Aktion und ggf. die Liste der Gegenstände. Als Hilfestellung werden dem Nutzer bei jeder Ausgabe über dem Eingabefeld die Interaktionsmöglichkeiten dargestellt. Die Eingabe von „quit“ beendet das Programm. 5.0.1 Konzeption Untersuchen Sie die splice-Methode der Arrays, sie wird hilfreich sein. Definieren Sie die zu verwendenden Gegenstände und die für den Raum und das Inventar erforderlichen Arrays um die Gegenstände aufzunehmen. Konzipieren Sie dann zunächst die Ausgaben, so dass die Befehle „look“ und „inventory“ schon funktionieren könnten. Halten Sie dann fest was getan werden muss, um einen Gegenstand vom Raum-Array in das Inventar-Array und zurück zu bringen. Damit wären dann auch die Befehle „take“ und „drop“ schon abgearbeitet. Halten Sie nun fest, mit welchen Strukturen Sie es bewerkstelligen können, dass immer wieder ein prompt-Fenster mit unterschiedlichen Ausgaben erscheint, und die Eingaben des Nutzers zu den verschiedenen Aktionen und Ausgaben führen. 5.0.2 Produktion Setzen Sie den Code syntaktisch korrekt Schritt für Schritt um. Da keine grafische Ausgabe erforderlich ist, soll Setup.js bei dieser Aufgabe nicht eingebunden werden. Zur Trennung der Zeilen im Popup nutzen Sie das Sonderzeichen für eine neue Zeile: „\n“. Beachten Sie, dass die Gegenstände in Listen zeilenweise untereinander dargestellt werden sollen. Versuchen Sie auch Grenzfälle sinnvoll darzustellen. Wenn beispielsweise der Nutzer versucht, aus dem leeren Inventar einen Gegenstand fallen zu lassen, sollte nicht „undefined“ oder ein unvollständiger Satz angezeigt werden, sondern z.B. nebenstehendes. Tipp: ermöglichen Sie auch die Eingabe der Buchstaben l,i,d,t und q als Abkürzungen der Befehle um das Testen zu vereinfachen.