Projekt: Hangman

Slides:

Ziele:

  • Programmiere das bekannte Hangman-Game als Konsolenapp.
  • Grösseres Programm schreiben (ca. $300$ Zeilen Code)
  • Lerne, wie man anhand des Programmierparadigmas Model vs. View Code sinnvoll strukturiert.
  • Scope von Variablen verstehen.
  • Unterschied Werttypen vs. Referenztypen verstehen.
  • Robusten Code schreiben, der für alle Eventualitäten gewappnet ist.

Auftrag:

  1. Erstelle ein neues GitHub-Repo „HangMan“ und teile es mit den Lehrpersonen. Wähle beim erstellen private und Visual Studio für das GitIgnore-File. Klone das Repo auf deinen Computer und …
  2. … erstelle darin ein neues C#-Konsolenprogramm mit Namen „HangMan“. Wichtig: Wähle beim Erstellen des Projekte „Erweitert: Keine Anweisungen der obersten Ebene verwenden“ (Engl.: etwas mit „Top-Level Statements“) aus.
  3. Verwende das Template (siehe unten) und …
  4. … Programmiere damit das Spiel Hangman. Schaue, dass alle Vorgaben unten erfüllt sind.
  5. Teste dein Spiel ausgiebig: Falsche Eingaben machen, Spiel gewinnen, verlieren, …
  6. Wenn du denkst dass du fertig bist: Gehe die Checkliste unten durch. Falls ein Punkt nicht erfüllt ist, verbessere diesen und hake diesen ab. Sobald alle Punkte erfüllt und abgehakt sind …
  7. Arbeit abgeben:
    1. Nachricht an Lehrperson in Teams-Chat
    2. inkl. Link zu GitHub-Repo
    3. inkl. abgehakter und unterschriebener Checkliste

Zeit: Zwei EFIF-Nachmittage (6 Lektionen), Rest HA

Vorgaben:

  • Template verwenden und an dieses halten.
  • Code muss robust sein: Egal was Benutzer eingibt: Code muss damit klarkommen.
  • Von Player1 eingegebenes Wort (das, welches Player2 erraten muss) muss folgende Bedingung erfüllen:
    • Mind. 3 Buchstsaben
    • Nur ASCII-Grossbuchstaben: 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
    • also keine Umlaute (Ä,Ö,Ü) usw. (É,…), keine Leerschläge
    • Bei unzulässiger Eingabe wird solange aufgefordert, neues einzugeben bis ok
  • Nur GROSSBUCHSTABEN. Player1 & 2 können Kleinbuchstaben eingeben, werden dann aber in Grossbuchstaben umgewandelt.
  • Erraten der Buchstaben (Player2):
    • Wird bereits erratener Buchstabe erraten, zählt dies nicht als Fehlversuch. Player2 wird darauf hingewiesen und aufgefordert, andren Buchstaben einzugeben.
    • Auch unzulässige Eingaben (Zahl, Umlaut, Sonderzeichen, …) zählen nicht als Fehlversuche.

Template (ohne Top-Level Statements)

Checklist Hangman





Die Anzahl Versuche soll durch den hänging Man graphisch dargestellt werden. Achtung: Falls dir das zu makaber ist, kannst du auch eine fröhlichere Zeichnung anfertigen. Mögliche Alternativen:

  • Schneemann
  • Rackete
  • Blume

HangMan:

  1. Definiere dazu eine Funktion, die die Anzahl Versuche entgegen nimmt und die zugehörige Grafik in die Konsole schreibt:
    1. 0 - nur Galgen
    2. 1 - Kopf
    3. 2 - Kopf, Oberkörper
    4. 3 - Kopf, Oberkörper, ein Bein
    5. 4 - Kopf, Oberkörper, beide Beine
    6. 5 - Kopf, Oberkörper, beide Beine, ein Arm
    7. 6 - HangMan
  2. Verbessere und fine-tune nun dein Spiel so, dass es gut funktioniert und hübsch aussieht.
  • ef_informatik/hangman_csharp.1699343774.txt.gz
  • Zuletzt geändert: 2023-11-07 07:56
  • von sca