archiv:testseite

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
archiv:testseite [2022/12/13 13:20] – angelegt lehmannrarchiv: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: d.h. sammelt Ideen, die ihr verwirklichen könntet. Erstellt eine Kurze Projektbeschreibung auf euerer Wiki-Seite.  +  - Erstellt einen kurzen Projektplan: d.h. sammelt Ideen, die ihr verwirklichen könntet. Definiert, um welche Art Spiel es sich handeln soll und erstellt eine kurze Projektbeschreibung auf eurer Wiki-Seite.  
-  - Erstellt eine Minecraft-Welt, die durch Python-Programme mitgesteuert ist: +  - 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/erweitern)
   - 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, damit ihr nicht plötzlich eure Arbeit verliert. 
  
-===== 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 bauendies ist jedoch recht kompliziert, da der Agent die Blocks nicht an seiner eigenen Position hinlegt, sondern vor oder hinter oder neben sich stelltDies macht die Programmierung nicht sehr einfach.+|< 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 der Dokumentation und Abgabe | 
 +|21.02.2023| Präsentation |
  
-Will man Blöcke automatisch erstellen lassenkann man dies auch direkt machen, d.h. ohne den Agenten. Dazu verwendet man hauptsächlich die Befehle: '' blocks.place'' und ''blocks.fill''. Damit kann man einen Block an einer bestimmten Position setzenoder einen ganzen Quader von Blöcken auf einmal erstellen+==== Bewertungskritierien ==== 
 +|< 1200px 50px 250px 900px>
 +^Punkte ^Kriterium ^Bemerkungen^ 
 +|  8  |**Originalität der Spielidee / Konzeption der Umsetzung** | Wurde eine neueeigenständige Idee umgesetzt? Wurde diese Idee durchdacht und nach Plan realisiert? | 
 +|  8  |**Arbeitsweise** | Wurde die Arbeit ausgewogen aufgeteilt und gemeinsam umgesetzt (bei Gruppenprojekt)? War die Arbeitsweise selbständig? Wurde zielorientiert gearbeitet? Wie war das Arbeiten während der Lektionen? Wie effizient war das Arbeiten? | 
 +|  16  |**Anspruchsniveau und Komplexität** | Komplexität des Spiels (Spielablauf und Spiellogik)Komplexität des Codes bezüglich Programmierkonzepten und Programmierlogik
 +|  8  |**Qualität des Quellcodes**| Ist der Code modular und verständlich geschrieben und gut strukturiert? Wurden die gelernten Programmierkonzepte angemessen verwendet (gut strukturierter CodeVariablen, Funktionen, Listen, Schleifen, Objekte etcwerden sinnvoll eingesetzt, Code ist nicht redundant und wird angemessen kommentiert)| 
 +|  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,20,1): 
-    if (i%2)==0: 
-        blocks.place(GOLD_BLOCK, pos(i, 0, 0)) 
-    else: 
-        blocks.place(BLUE_WOOL, pos(i,0,0)) 
-</sxh> 
- 
-Einen Grossen Goldblock erstellen und mit Luft aushöhlen:  
- 
-<sxh python> 
-blocks.fill(GOLD_BLOCK, pos(1, 1, 1), pos(10, 10, 10)) 
-blocks.fill(AIR, pos(2,2,2),  pos(9, 9, 9)) 
-</sxh> 
- 
-===== 1.3 Interaktionen programmieren ===== 
-Man kann auch Python-Funktionen ausführen, wenn bestimmte Bedingungen erfüllt sind. Dazu verwendet man sogenannte "Listeners", Diese funktionieren genau wie bei Tigerjython: 
- 
-Wenn der Spieler "baue_Goldhaus" in den Chat tippt, soll der ausgehöhlte Goldblock erstellt werden: 
- 
-<sxh python> 
-def on_chat(): 
-    blocks.fill(GOLD_BLOCK, pos(1, 1, 1), pos(10, 10, 10)) 
-    blocks.fill(AIR, pos(2,2,2),  pos(9, 9, 9)) 
- 
-player.on_chat("baue_Goldhaus", on_chat) 
-</sxh> 
- 
-Es gibt verschiedene von diesen Listenern. Alle beginnen mit ** player.on, ** oder mit ** blocks.on **. 
-(player.on_chat, player.on_item_interacted, blocks.on_block_broken, blocks,on_blocks_placed, 
- 
-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 "Pseudo-Schalter". Es wäre aber eleganter, wenn man z.B. Command_Blocks verwenden könnte (das scheint aber nicht zu gehen). 
- 
- 
-[[archiv:ef:ef2020_2022:minecraft:projekt:bewertung|Bewertung]] 
  
 ==== Gruppen ==== ==== Gruppen ====
  • archiv/testseite.1670934005.txt.gz
  • Zuletzt geändert: 2022/12/13 13:20
  • von lehmannr