Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
ef_informatik:projekt_consolegames [2023-11-28 00:03] – [Übersicht] scaef_informatik:projekt_consolegames [2024-01-02 09:39] (aktuell) – [Bewertung] sca
Zeile 1: Zeile 1:
 ====== Projekt: ConsoleGames ====== ====== Projekt: ConsoleGames ======
 +
 +<color red>**DEADLINE: (siehe Details zur Abgabe weiter unten)**</color>
 +
 +   * <color red>**3M: 05.01.2024, @23.59**</color>
 +   * <color red>**4M: 12.01.2024, @23.59**</color>
  
 **Ziele:** **Ziele:**
Zeile 22: Zeile 27:
 ===== Slides ===== ===== Slides =====
  
-{{ :ef_informatik:efif_console_games_01_uebersicht.pdf |Slides ConsoleGames 01 Übersicht}}+{{ :ef_informatik:efif_console_games_uebersicht.pdf |Slides ConsoleGames 01 Übersicht}}
  
 {{ :ef_informatik:efif_consolegames_modellieren.pdf |Slides ConsoleGames 02 Modellieren}} {{ :ef_informatik:efif_consolegames_modellieren.pdf |Slides ConsoleGames 02 Modellieren}}
 +
 +{{ :ef_informatik:efif_consolegames_consoleart.pdf |Slides ConsoleGames 03 ConsoleArt}}
 ===== Framework ===== ===== Framework =====
  
Zeile 91: Zeile 98:
  
 ==== Hauptauftrag: Eigenes Game programmieren ==== ==== Hauptauftrag: Eigenes Game programmieren ====
 +
 +=== Vorgehen ===
 +
 +   1. Sicherstellen, dass Projekt von Lehrpersonen **abgesegnet** wurde
 +   1. **Neues Repo** erstellen mit *passendem Namen*.
 +   1. Repo den Lehrpersonen **freigeben**.
 +   1. Aktuelle Version von Framework herunterladen, entpacken und in Repo kopieren.
 +   1. Beginnen mit Arbeiten.
 +   1. **Tipp:** Zuerst Planen, Modellieren & Skizzieren, erst dann Programmieren!
 +   1. Regelmässige und unaufgeforderte **Commits & Pushes** von allen Gruppenmitgliedern, ca. 2x pro Woche
 +   1. **Pünktliche Abgabe:** Sende Game-Klasse(n) (NICHT das gesamte VS Projekt) per Teams-Chat an sca.
 +   1. **Verspätete Abgabe:** 1 Note pro angebrochene 24h Verspätung
 +
  
 === Bewertung === === Bewertung ===
Zeile 98: Zeile 118:
 **Gibt es Probleme in der Gruppe, meldet dies rechtzeitig, damit wir eine Lösung finden können.** **Gibt es Probleme in der Gruppe, meldet dies rechtzeitig, damit wir eine Lösung finden können.**
  
-^ Kriterium ^  +^ Kriterium ^ Punkte 
-Plug n' Play: Game kann ohne Probleme in Framework integriert werden | | +|**Spielidee, Originalität, Komplexität** 10 
-|Spielidee, Originalität, Kreativität, Schwierigkeitsgrad (relativ zu Vorkenntnissen)  +|**Prozess, Vorgehensweise, Selbständigkeit (1)** | 10 | 
-|Prozess, Vorgehensweise, Selbständigkeit (1) \\ (regelmässige Commits Pushes, ca. 2xpro Woche) |  +|kontinuierliches Arbeiten und Fortschritt | ::: | 
-| Code ICodestyle wie Variablennamen, ... | | +|regelmässige Commits (und Pushes) auf GitHub ::: 
-Code II :sauber und effizient programmiertUmsetzung Vorgabenkorrekter Umgang private/public) | | +|mehrheitlich selbständig gearbeitet | ::: | 
-|Code III: Logik, Umgang mit falschen Eingaben, ... | | +|**Arbeiten mit Framework** | 10 | 
-|Code IV: Modellierung, Model vs. View | | +|Plug n' Play (einfaches Einbinden in Framework)| ::: | 
-|Mündliche Prüfung (2) | 20% der Gesamtnote |+|Gesamter Code in einem File| ::: | 
 +|private vspublic| ::: | 
 +|**Model vsView** 10 
 +|Modellierung (Abstrahierung) | ::: | 
 +|Aufteilung in Methoden & Klassen (letztere optional) | ::: | 
 +|Strikte Trennung von Model- und View-Methoden/Klassen | ::: | 
 +|**GUI / Darstellung** | 10 | 
 +|anspruchsvolles GUIAnwendung der Console-Befehle | ::: | 
 +|**Programmieren**| 15 | 
 +|Benennung von VariablenMethoden usw.::: 
 +|sauber und effizient programmiert| ::: | 
 +|Logik| ::: | 
 +|Stabilität, Umgang mit falschen Eingaben | ::: 
 +|**Gamespezifischer Teil** 15 
 +|unterschiedlicher Fokus je nach Game| ::: | 
 +|**Mündliche Prüfung (2)** | 20 
 +|**Total** | **100** |
  
 +Aus den Punkten wird die Note linear berechnet (95% der Punkte: 6er, 0 Punkte: 1er).
  
    * (1) Für allgemeine Fragen zu C#, dem Framework und OOP stehen die Lehrpersonen euch gerne zur Verfügung. Die konkrete Umsetzung des Games sollt ihr aber möglichst ohne Hilfe hinkriegen.    * (1) Für allgemeine Fragen zu C#, dem Framework und OOP stehen die Lehrpersonen euch gerne zur Verfügung. Die konkrete Umsetzung des Games sollt ihr aber möglichst ohne Hilfe hinkriegen.
    * (2) ** Disclaimer:** In der Prüfung müsst ihr uns überzeugen, dass ihr euer Game komplett selbständig programmiert habt. Zweifeln wir daran, führt dies zu zusätzlichem (massivem) Abzug. "ChatGPT hat mir das gesagt." ist keine Erklärung!    * (2) ** Disclaimer:** In der Prüfung müsst ihr uns überzeugen, dass ihr euer Game komplett selbständig programmiert habt. Zweifeln wir daran, führt dies zu zusätzlichem (massivem) Abzug. "ChatGPT hat mir das gesagt." ist keine Erklärung!
  
 +<nodisp 2> 
 +<color blue> 
 +Änderungen für 2025 usw: Gute Kommentierung in Code sollten auch Punkte geben, zB 10 dafür, aber nur 10 für mündl. P oder so 
 +</color> 
 +</nodisp>
  
  
Zeile 126: Zeile 167:
 // Clear console // Clear console
 Console.Clear(); Console.Clear();
 +
 +// Hide cursor
 +Console.CursorVisible = false;
  
 // Write line // Write line
Zeile 225: Zeile 269:
 </code> </code>
  
 +==== OOP ====
 +
 +<code csharp>
 +private class Point
 +{
 +    // Field
 +    public int x;
 +    public int y;
 +    public string color;
 +
 +    // Constructor
 +    public Point(int _x, int _y, string _color)
 +    {
 +        x = _x;
 +        y = _y;
 +        color = _color;
 +    }
 +
 +    // Methode
 +    public void SetToStart()
 +    {
 +        x = 0;
 +        y = 0;
 +    }
 +}
 +
 +private class PointWithProperty
 +{
 +    // Field
 +    private int _x;
 +    private int _y;
 +    private string _color;
 +
 +    // Property
 +    public int x
 +    {
 +        get { return _x; }
 +        set
 +        {
 +            if (value > 0)
 +            {
 +                _x = value;
 +            }
 +            else
 +            {
 +                _x = 0;
 +            }
 +        }
 +    }
 +
 +    // Constructor
 +    public PointWithProperty(int _xx, int _yy, string _col)
 +    {
 +        _x = _xx;
 +        _y = _yy;
 +        _color = _col;
 +    }
 +
 +    // Methode
 +    public void SetToStart()
 +    {
 +        _x = 0;
 +        _y = 0;
 +    }
 +}
 +
 +public override Score Play(int level)
 +{
 +    Console.CursorVisible = false;
 +
 +    Point p = new Point(10, 7, "red"); // create new point object
 +    Console.SetCursorPosition(p.x, p.y);
 +    Console.Write(p.color);
 +    Console.ReadKey();
 +
 +    p.SetToStart(); // call method
 +
 +    Console.SetCursorPosition(p.x, p.y);
 +    Console.Write(p.color);
 +    Console.ReadKey();
 +
 +    // Point is new data type, can thus create point array
 +    Point[] points = new Point[]
 +    {
 +        new Point(1, 1, "black"),
 +        new Point(7, 5, "yellow"),
 +        new Point(2, 12, "green")
 +    };
 +    return new Score();
 +}
 +</code>
  
 ===== Kriterien ===== ===== Kriterien =====
  • ef_informatik/projekt_consolegames.1701129794.txt.gz
  • Zuletzt geändert: 2023-11-28 00:03
  • von sca