Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
talit:tutorial_oop [2019-12-08 21:30] – [Aufgabe 7] sca | talit:tutorial_oop [2020-11-30 13:57] (aktuell) – [Vererbung] sps | ||
---|---|---|---|
Zeile 25: | Zeile 25: | ||
1. Du kannst gerne bereits mit den Schritten beschrieben in [In Lektion](# | 1. Du kannst gerne bereits mit den Schritten beschrieben in [In Lektion](# | ||
- | ### In Lektion | + | ### In Lektion |
1. Erstelle auf GitHub ein neues Repository: | 1. Erstelle auf GitHub ein neues Repository: | ||
Zeile 44: | Zeile 44: | ||
7. Füge *anschae* als Collaborator dieses Repos hinzu. | 7. Füge *anschae* als Collaborator dieses Repos hinzu. | ||
- | ### Auftrag nach erster Lektion | + | ### Auftrag nach erster Lektion |
Studiere im Tutorial **Python Setup** die folgenden Kapitel. Die Schritte, die du explizit machen sollst, werden explizit genannt: | Studiere im Tutorial **Python Setup** die folgenden Kapitel. Die Schritte, die du explizit machen sollst, werden explizit genannt: | ||
Zeile 193: | Zeile 193: | ||
* CSV | * CSV | ||
* JSON | * JSON | ||
- | * XML | + | * (XML) |
- | Bildet Gruppen (ca. 3 SuS) und arbeitet euch in eines dieser drei Datenformate ein. | + | Bildet Gruppen (je 2 SuS) und arbeitet euch in eines der beiden |
**Auftrag: | **Auftrag: | ||
Zeile 201: | Zeile 201: | ||
- Erstellt ein Tutorial für eure Kollegen über euer Datenformat. Dieses soll einerseits eine allgemeine Einführung und Übersicht über euer Datenformat beinhalten. Andererseits soll genau erklärt werden, wie man mit Python mit diesem Format arbeiten kann. | - Erstellt ein Tutorial für eure Kollegen über euer Datenformat. Dieses soll einerseits eine allgemeine Einführung und Übersicht über euer Datenformat beinhalten. Andererseits soll genau erklärt werden, wie man mit Python mit diesem Format arbeiten kann. | ||
- Euer Tutorial soll ein repräsentatives Beispiel einer Datei von Eurem Format beinhalten. Stellt dieses in eurem Eintrag den Anderen zur Verfügung (siehe Beispiel unten). | - Euer Tutorial soll ein repräsentatives Beispiel einer Datei von Eurem Format beinhalten. Stellt dieses in eurem Eintrag den Anderen zur Verfügung (siehe Beispiel unten). | ||
- | - Ebenso soll euer Tutorial ein Python-File beinhalten, mit dem dieses File gelesen und in dieses geschrieben werden kann (siehe | + | - Ebenso soll euer Tutorial ein Python-File beinhalten, mit dem dieses File gelesen und in dieses geschrieben werden kann (siehe |
+ | - Findet eine Website, auf der man Dateien eures Formats auf Gültigkeit prüfen kann. | ||
- Ladet euer Tutorial auf dieses DokuWiki in eurem [[talit_2018_2022: | - Ladet euer Tutorial auf dieses DokuWiki in eurem [[talit_2018_2022: | ||
- | - **Erste (aber trotzdem gute) Version: Sonntag | + | - **Erste (aber trotzdem gute) Version: Sonntag |
- | - **Deadline: Montag | + | - **Deadline: Montag |
- | Einen Codeblock im DokuWiki Editor wird wie folgt geschrieben: | + | Ein Codeblock im DokuWiki Editor wird wie folgt geschrieben: |
``` | ``` | ||
<code python filename.py> | <code python filename.py> | ||
Zeile 219: | Zeile 220: | ||
</ | </ | ||
- | Mit einem Klick auf den Filenamen kann das File dann direkt | + | Mit einem Klick auf den Filenamen kann das File dann direkt |
- | Für andere Programmiersprachen oder Datenformate, passe die Definition entsprechend | + | Für andere Programmiersprachen oder Datenformate |
Beispiel JSON: | Beispiel JSON: | ||
Zeile 227: | Zeile 228: | ||
<code json filename.json> | <code json filename.json> | ||
// füge hier die Daten im JSON Format ein | // füge hier die Daten im JSON Format ein | ||
+ | </ | ||
+ | ``` | ||
+ | |||
+ | Beispiel C#: | ||
+ | ``` | ||
+ | <code csharp filename.cs> | ||
+ | // C#: | ||
+ | Console.WriteLine(" | ||
</ | </ | ||
``` | ``` | ||
Zeile 234: | Zeile 243: | ||
* Erstelle im Ordner `tutorial_oop_voci` einen Unterordner `dicts`. \\ \\ | * Erstelle im Ordner `tutorial_oop_voci` einen Unterordner `dicts`. \\ \\ | ||
- | * Erstelle darin mindestens | + | * Erstelle darin mindestens |
- Wort in Sprache 1 \\ | - Wort in Sprache 1 \\ | ||
Zeile 240: | Zeile 249: | ||
- Progress (z.B. Zahlen von 0 bis 3, wobei 0 für 'noch gar nicht gelernt' | - Progress (z.B. Zahlen von 0 bis 3, wobei 0 für 'noch gar nicht gelernt' | ||
- | * *Tipp:* Mache eine Sicherheitskopie dieser Files, falls du sie ausversehen | + | * *Tipp:* Mache eine Sicherheitskopie dieser Files, falls du sie aus Versehen |
* Mache eine Kopie von deinem aktuellsten Voci Trainer und speichere diesen unter dem Namen `voci_trainer_v04.py` und bearbeite nun diese Datei. \\ \\ | * Mache eine Kopie von deinem aktuellsten Voci Trainer und speichere diesen unter dem Namen `voci_trainer_v04.py` und bearbeite nun diese Datei. \\ \\ | ||
Zeile 265: | Zeile 274: | ||
* *Tipps:* | * *Tipps:* | ||
* Das Programm soll funktionieren, | * Das Programm soll funktionieren, | ||
- | * Das Programm wird almählich | + | * Das Programm wird allmählich |
## Aufgabe 6 (voci_trainer_v04) | ## Aufgabe 6 (voci_trainer_v04) | ||
Zeile 275: | Zeile 284: | ||
*Tipp:* Mache Kopien von deinen Voci-Listen, | *Tipp:* Mache Kopien von deinen Voci-Listen, | ||
- | **Auftrag: | + | ## Vorbereitung Console Game |
+ | |||
+ | **Auftrag: | ||
Die Bedingungen an das Game sind: | Die Bedingungen an das Game sind: | ||
* Spielt in Konsole. | * Spielt in Konsole. | ||
- | * Ihr dürft ein bereits bekanntes Spiel implementieren. Ihr könnt aber auch ein eigenes erfinden oder ein bestehende | + | * Ihr dürft ein bereits bekanntes Spiel implementieren. Ihr könnt aber auch ein eigenes erfinden oder ein bestehendes |
* Gibt nach erfolgreichem Spielen einen Score zurück: absolviertes Level und Anzahl Punkte (z.B. gesammelte Punkte, Spieldauer in Sekunden, Anzahl Versuche, ...) | * Gibt nach erfolgreichem Spielen einen Score zurück: absolviertes Level und Anzahl Punkte (z.B. gesammelte Punkte, Spieldauer in Sekunden, Anzahl Versuche, ...) | ||
* Es ist auch möglich (und sogar wünschenswert), | * Es ist auch möglich (und sogar wünschenswert), | ||
Zeile 353: | Zeile 364: | ||
Ein wichtiges Konzept der OOP ist die **Vererbung**. | Ein wichtiges Konzept der OOP ist die **Vererbung**. | ||
- | Machen wir ein Beispiel: In unserem Code haben wir eine Klasse //Voci//. Für jeder Datenfile, welches eine Wörtliliste enthält, erstellen wir ein // | + | Machen wir ein Beispiel: In unserem Code haben wir eine Klasse //Voci//. Für jedes Datenfile, welches eine Wörtliliste enthält, erstellen wir ein // |
<code python> | <code python> | ||
Zeile 421: | Zeile 432: | ||
Schreibe deinen Code möglichst objektorientiert um. | Schreibe deinen Code möglichst objektorientiert um. | ||
- | //Tipp:// Kopiere deinen bestehenden Code nur in kleinen Päckchen in die neue Game-Struktur. Stelle immer sicher, dass der Code keine Fehler beinhaltet, bevor du dich um weiteren Code kümmerst. | + | //Tipp:// Kopiere deinen bestehenden Code nur in kleinen Päckchen in die neue Struktur. Stelle immer sicher, dass der Code keine Fehler beinhaltet, bevor du dich um weiteren Code kümmerst. |
## Aufgabe 8 | ## Aufgabe 8 | ||
Zeile 427: | Zeile 438: | ||
Finalisiere deinen Code. | Finalisiere deinen Code. | ||
- | * Struktur vom Code (verschiedene Files) | ||
* soll auswählen können, in welche Richtung man übersetzen möchte: wordL1 -> wordL2 oder wordL2 -> wordL1 | * soll auswählen können, in welche Richtung man übersetzen möchte: wordL1 -> wordL2 oder wordL2 -> wordL1 | ||
* soll im Menu // | * soll im Menu // | ||
Zeile 435: | Zeile 445: | ||
* den Progress aller WordPairs auf 0 zurücksetzen kann | * den Progress aller WordPairs auf 0 zurücksetzen kann | ||
* Soll eine neue Voci-Liste erstellen können. Diese wird dann im gewünschten Dateiformat gespeichert | * Soll eine neue Voci-Liste erstellen können. Diese wird dann im gewünschten Dateiformat gespeichert | ||
+ | * Überlege dir selbst, wie du dein Programm sinnvoll erweitern kannst. | ||