Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| archiv:testseite [2022/12/13 13:20] – angelegt lehmannr | archiv:testseite [2022/12/13 13:43] (aktuell) – [Bewertungskritierien] lehmannr | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== 1. Python-Game Projekt ====== | ====== 1. Python-Game Projekt ====== | ||
| - | ===== 1.1 Projektdefinition | + | ===== 1.1 Projektbeschreibung |
| Ihr sollt alleine oder in einer 2er-Gruppe ein kleines Pythonprojekt realisieren. Dabei solltet ihr die Game-Bibliothek Arcade verwenden (wenn ihr unbedingt eine andere Library verwenden wollt, bitte mit mir absprechen). | Ihr sollt alleine oder in einer 2er-Gruppe ein kleines Pythonprojekt realisieren. Dabei solltet ihr die Game-Bibliothek Arcade verwenden (wenn ihr unbedingt eine andere Library verwenden wollt, bitte mit mir absprechen). | ||
| Konkret ist also der Auftrag | Konkret ist also der Auftrag | ||
| - | - Bildet Gruppen von 2 bis 3 Personen. | + | - Entscheidet euch, ob ihr alleine oder als Zweierteam arbeiten wollt. |
| - | - Erstellt einen Projektplan: | + | - Erstellt einen kurzen |
| - | - Erstellt eine Minecraft-Welt, | + | - Realisiert euer Projekt in Python. |
| - | - Objekte werden durch Programme automatisiert erstellt. | + | - Dokumentiert euer Projekt auf einer Wiki-Seite auf wiki.mathematix.ch |
| - | - In eurer Welt sind durch die Programme interaktive Dinge möglich | + | - Gebt unbedingt alle Quellen an (Sprites, Bilder, Codequellen) |
| - | - Dokumentiert euer Projekt auf einer Wiki-Seite auf mathematix.ch | + | - Beschreibt euer Spiel kurz (was ist realisiert worden und was könnte man noch hinzufügen/ |
| - Präsentiert am Schluss euer Projekt kurz der Klasse | - Präsentiert am Schluss euer Projekt kurz der Klasse | ||
| - | Es ist wichtig, dass ihr jeweils die Programme extern speichert (z.B. in eine Textdatei oder direkt in das wiki reinkopieren). Auch die Welt würde ich jeweils exportieren, | ||
| - | ===== 1.2 Objekte mit Python bauen ===== | + | ===== 1.2 Zeitplan und Bewertung des Projektes |
| - | Auf der Wikiseite zum Agenten haben wir gesehen, dass man den Agenten verwenden kann, um Objekte zu bauen. dies ist jedoch recht kompliziert, | + | |< 700px 200px 500px> |
| + | ^Datum ^Bemerkungen^ | ||
| + | |13.12.2022 | Projektstart | | ||
| + | |20.12.2022| ... | | ||
| + | |Weihnachtsferien| | ||
| + | |Weihnachtsferien| | ||
| + | |10.01.2023| Projektplan muss im Wiki stehen | | ||
| + | |17.01.2023| ... | | ||
| + | |24.01.2023| ... | | ||
| + | |31.01.2023| ... | | ||
| + | |07.02.2023| ... | | ||
| + | |14.02.2023| Fertigstellung | ||
| + | |21.02.2023| Präsentation | | ||
| - | Will man Blöcke automatisch erstellen lassen, kann man dies auch direkt machen, d.h. ohne den Agenten. Dazu verwendet man hauptsächlich | + | ==== Bewertungskritierien ==== |
| + | |< 1200px 50px 250px 900px> | ||
| + | ^Punkte ^Kriterium ^Bemerkungen^ | ||
| + | | 8 |**Originalität der Spielidee / Konzeption der Umsetzung** | Wurde eine neue, eigenständige Idee umgesetzt? Wurde diese Idee durchdacht und nach Plan realisiert? | | ||
| + | | 8 |**Arbeitsweise** | Wurde die Arbeit ausgewogen aufgeteilt und gemeinsam umgesetzt (bei Gruppenprojekt)? | ||
| + | | 16 |**Anspruchsniveau und Komplexität** | Komplexität des Spiels (Spielablauf und Spiellogik). Komplexität des Codes bezüglich Programmierkonzepten | ||
| + | | 8 |**Qualität des Quellcodes**| Ist der Code modular und verständlich geschrieben und gut strukturiert? | ||
| + | | 10 |**Qualität der Dokumentation und der Präsentation**| Wird im Wiki das Projekt angemessen präsentiert und erklärt? Wird das Projekt interessant und verständlich kurz der Klasse präsentiert? | ||
| + | | 50 | **Total mögliche Punkte** | Es wird der gängige Notenschlüssel (Punkte : 50*5+1) angewandt| | ||
| - | Eine Linie von Blocks erstellen, wobei jeder zweite Block aus Gold bzw. aus Blauer Wolle besteht: | ||
| - | (das %-Zeichen ist die Modulo-Rechnung vgl. Stunde) | ||
| - | |||
| - | <sxh python> | ||
| - | for i in range(3, | ||
| - | if (i%2)==0: | ||
| - | blocks.place(GOLD_BLOCK, | ||
| - | else: | ||
| - | blocks.place(BLUE_WOOL, | ||
| - | </ | ||
| - | |||
| - | Einen Grossen Goldblock erstellen und mit Luft aushöhlen: | ||
| - | |||
| - | <sxh python> | ||
| - | blocks.fill(GOLD_BLOCK, | ||
| - | blocks.fill(AIR, | ||
| - | </ | ||
| - | |||
| - | ===== 1.3 Interaktionen programmieren ===== | ||
| - | Man kann auch Python-Funktionen ausführen, wenn bestimmte Bedingungen erfüllt sind. Dazu verwendet man sogenannte " | ||
| - | |||
| - | Wenn der Spieler " | ||
| - | |||
| - | <sxh python> | ||
| - | def on_chat(): | ||
| - | blocks.fill(GOLD_BLOCK, | ||
| - | blocks.fill(AIR, | ||
| - | |||
| - | player.on_chat(" | ||
| - | </ | ||
| - | |||
| - | Es gibt verschiedene von diesen Listenern. Alle beginnen mit ** player.on, ** oder mit ** blocks.on **. | ||
| - | (player.on_chat, | ||
| - | |||
| - | Was ich noch selber rausfinden muss: wie ruft man am Besten eine Python-Funktion auf aus Minecraf (so dass man z.B. einen Schalter bewegen kann und die Funktion wird ausgeführt). Aktuell funktioniert für mich nur der Trick, dass ich einen Block erstelle und wenn man ihn zerstört wird die Funktion aufgerufen, die den Block gleich wieder hinzufügt. Dies ist dann ein " | ||
| - | |||
| - | |||
| - | [[archiv: | ||
| ==== Gruppen ==== | ==== Gruppen ==== | ||