lehrkraefte:blc:informatik:ffprg1-2022:wordle:start

This is an old revision of the document!


Wordle

Das Ziel ist es, ein kleines Wordle-Spiel zu programmieren.

Dazu werden wir einzelne Programmteile erstellen, die dann am Schluss zu einem Ganzen zusammengefügt werden können.

Wir werden für unsere Funktionen immer gleich auch Tests schreiben, so haben wir eine Chance, logische Fehler früh zu erkennen.

Die Funktion richtig(a,b) liefert ein Array mit Einträgen True oder False, je nachdem ob der Buchstabe in den Strings a und b an der entsprechenden Stelle übereinstimmt.

  • Input: Zwei Strings, (in den Variablen solution und guess).
  • Programmabbruch mit Fehlermeldung, wenn die Länge von solution und guess nicht übereinstimmt.
  • Output: Array mit Einträgen True oder False
def richtig(solution,guess):
  if len(solution)!=len(guess):
    raise ValueError("Länge der beiden Wörter '%s' und '%s' stimmen nicht überein." % (solution,guess))
 
  # Resultat Array bauen und in der Variablen res speichern
  res = []
  #
  # ...
  #
  return res    # Resultat zurückgeben und Funktion beenden
 
 
def tests():
  cases = [["HABER", "RABEN", [False, True, True, True, False]],\
           ["TAGEN", "RABEN", [False, True, False, True, True]],\
     ]
  for test in cases:
    res = richtig(test[0], test[1])
    if res!=test[2]:
      raise ValueError("richtig(%s, %s) sollte %s liefern, liefert aber %s" % (test[0], test[1], str(test[2]), str(res)))
  print("Alle Tests erfolgreich!");
 
 
tests()
  • Vervollständigen Sie die Funktion richtig
  • Fügen Sie weitere Tests hinzu.

Wie oben, schreiben Sie eine Funktion falscherplatz(solution, guess), die wieder ein Array mit True und False zurückgibt. Schreiben sie ebenfalls Tests dafür. Testen Sie auch Wortpaare wie “BBAAA”, “ABCDE”.

  • lehrkraefte/blc/informatik/ffprg1-2022/wordle/start.1651085958.txt.gz
  • Last modified: 2022/04/27 20:59
  • by Ivo Blöchliger