schule:textadventure
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
schule:textadventure [2016-02-13 09:17] – [Übung Personen und Gruppe] Übung Diagrammelemente marco.bakera | schule:textadventure [2019-12-21 13:57] – [Links] owncloud link enternt. marco.bakera | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Textadventure ====== | ||
+ | Textadventures sind Computerspiele der „ersten Generation“, | ||
+ | Spiele, bei denen der Spieler nur über Texteingaben mit dem Computer | ||
+ | kommunizieren kann. Seine Figur steuert er über Befehle wie " | ||
+ | " | ||
+ | waren Don Woods’ [[wpde> | ||
+ | MIT-Studenten programmierte Zork (1977). | ||
+ | Textadventure als objektorientiertes Programm erstellen. | ||
+ | |||
+ | ===== Raumplan ===== | ||
+ | |||
+ | Spiele dazu zunächst das Textadventure Schule und erstelle einen Raumplan. | ||
+ | |||
+ | ===== UML Objektdiagramm ===== | ||
+ | |||
+ | [[Objekt-orientierte Programmierung# | ||
+ | |||
+ | - Informiere dich über den Aufbau und Zweck eines solchen Diagramms. | ||
+ | - Erstelle eines mit den Objekten unseres Textadventures. | ||
+ | |||
+ | ===== Klassen ===== | ||
+ | |||
+ | Verschiedene Objekte, wie etwa der Flur oder das Lehrerzimmer, | ||
+ | |||
+ | //Kapitel 8: Objektorientierte Programmierung// | ||
+ | |||
+ | ==== Aufgaben ==== | ||
+ | |||
+ | - Wie sind Klassen in einem Klassendiagramm aufgebaut? | ||
+ | - Welchem Zweck dienen Klassen? | ||
+ | - Erstelle ein Klassendiagramm für die Klassen Raum und Spieler und veröffentliche das Ergebnis. | ||
+ | - Was ist der Unterschied zwischen einem Objekt und einer Klasse? | ||
+ | - Wie ist der Unterschied im Objektdiagramm und Klassendiagramm erkennbar? | ||
+ | - Implementiere die Klasse Raum und veröffentliche das Ergebnis. | ||
+ | |||
+ | ==== Verwendung der Klassen ==== | ||
+ | |||
+ | - Benutze nun die erstellten Klassen " | ||
+ | - Veröffentliche dein Ergebnis. | ||
+ | - Ergänze das Spiel um drei weitere Räume. Dir fallen bestimmt auch andere Ergänzungen ein, um das Spiel interessanter zu gestalten. | ||
+ | |||
+ | ==== Übungen zu Klassen ==== | ||
+ | |||
+ | - Markiere im Quelltext der Klasse Raum alle Bezeichner von Klassen((In C# sind Datentypen immer objektbasiert. So sind z.B. '' | ||
+ | - Bearbeite die Übungen auf dem // | ||
+ | |||
+ | ===== Sequenzdiagramme ===== | ||
+ | |||
+ | [[objekt-orientierte_programmierung# | ||
+ | |||
+ | - Informiere dich über Sequenzdiagramme. | ||
+ | - Was stellen Sequenzdiagramme dar? | ||
+ | - Welchen Zweck haben Sequenzdiagramme? | ||
+ | - Erstelle ein Sequenzdiagramm für die Erschaffung der Spielwelt und veröffentliche es. | ||
+ | |||
+ | ==== Übung Diagrammelemente ==== | ||
+ | |||
+ | Benenne die mit Pfeilen und roten Ziffern bezeichneten Elemente des folgenden Sequenzdiagramms. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Übung Personen und Gruppe ==== | ||
+ | |||
+ | <code java> | ||
+ | Person peter = new Person(" | ||
+ | Person petra = new Person(" | ||
+ | Gruppe gruppe =new Gruppe(); | ||
+ | gruppe.addPerson(peter); | ||
+ | gruppe.addPerson(petra); | ||
+ | gruppe.removePerson(peter); | ||
+ | </ | ||
+ | |||
+ | - Die Klasse Gruppe verwaltet die Personen intern in einer Liste (Klasse '' | ||
+ | - Beim Instanziieren einer Gruppe, wird die Liste erzeugt. | ||
+ | - Das Hinzufügen und Entfernen von Personen zu einer Gruppe wird an die Liste delegiert. | ||
+ | - Erstelle für den obigen Quelltext ein Sequenzdiagramm. | ||
+ | ===== Aktivitätsdiagramme ===== | ||
+ | |||
+ | Mit [[objekt-orientierte_programmierung?&# | ||
+ | |||
+ | - Informiere dich über Aktivitätsdiagramme. | ||
+ | - Wie sind diese Diagramme aufgebaut? | ||
+ | - Worin unterscheiden sie sich von Sequenzdiagrammen? | ||
+ | - Was sind die Gemeinsamkeiten mit Sequenzdiagrammen? | ||
+ | - Erstelle ein Aktivitätsdiagramm für den OK-Button und veröffentliche deine Ergebnisse. | ||
+ | - Bearbeite die //Aufgabe Fluggast// | ||
+ | |||
+ | |||
+ | ===== Spielwelt aus Datei laden ===== | ||
+ | |||
+ | Die Spielwelt ist derzeit fest in den Quelltext programmiert und lässt sich nicht während der Laufzeit des Programms ändern. Wir wollen das Spiel nun erweitern. Die Spielwelt soll über einen Menüpunkt zur Laufzeit [[Dateioperationen|geladen]] werden. | ||
+ | |||
+ | - Erstelle eine Menüleiste mit Hilfe eines '' | ||
+ | - Füge den Menüpunkt //Datei -> Spielwelt laden// hinzu. | ||
+ | - Überlege, wie eine Textdatei aufgebaut sein könnte, aus der eine Spielwelt geladen werden kann. Veröffentliche dein Ergebnis. | ||
+ | - Erstelle die Textdatei für die derzeitigen Räume gemäß des gewählten Formates. | ||
+ | - Programmiere die Methoden zum [[Dateioperationen|Laden]] der Welt aus der Datei und veröffentliche deine Ergebnisse. | ||
+ | |||
+ | **Tipp:** Wenn dir kein Format für die Textdatei einfällt, kannst du das Format in der Fußnote verwenden.(( | ||
+ | Die Textdatei beschreibt die Spielwelt des Textadventures. Zunächst werden alle Räume mit einem Namen und einer Beschreibung aufgelistet -- getrennt durch ein Semikolon. Es folgen die Verbindungen zwischen den Räumen. Zuerst wir der Raum genannt, der verbunden werden soll. Dahinter folgen die angrenzenden Räume in nördlicher, | ||
+ | |||
+ | < | ||
+ | Flur;Du stehst in einem leeren Flur. | ||
+ | Lehrerzimmer; | ||
+ | Abstellkammer; | ||
+ | Computerraum; | ||
+ | |||
+ | Flur; | ||
+ | Lehrerzimmer;;; | ||
+ | Abstellkammer;;;; | ||
+ | Computerraum; | ||
+ | </ | ||
+ | )) | ||
+ | |||
+ | ===== Links ===== | ||
+ | |||
+ | * [[http:// | ||
+ | * Ein [[wpde> | ||
+ | * Was in modernen Textadventures möglich ist, zeigt z. B. das Spiel [[http:// | ||
+ | |||
+ | ---- | ||
+ | [[privat: |
schule/textadventure.txt · Zuletzt geändert: 2024-01-03 10:07 von pintman