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

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lehrkraefte:blc:informatik:ffprg1-2022:nerdle:start [2022/06/01 10:15]
Ivo Blöchliger created
lehrkraefte:blc:informatik:ffprg1-2022:nerdle:start [2022/06/02 07:25] (current)
Ivo Blöchliger [Kommutativität?]
Line 1: Line 1:
 ====== Nerdle ====== ====== Nerdle ======
-Siehe auch https://nerdlegame.com/ (Achtung, nicht mehr als 10 min spielen bitte!) +Siehe auch https://nerdlegame.com/
 Dort finden sich auch die Regeln. Dort finden sich auch die Regeln.
  
-===== Kommutativität? ===== +Es gibt auch noch https://nerdlegame.org/ (ohne Umstellungen) 
-Das mit der Kommutativiät führt zu Problemen:+ 
 +===== Kommutativität (Umstellungen)? ===== 
 +Das mit der Kommutativiät kann zu Problemen führen:
  
 {{:lehrkraefte:blc:informatik:ffprg1-2022:nerdle:pasted:20220601-095856.png}} {{:lehrkraefte:blc:informatik:ffprg1-2022:nerdle:pasted:20220601-095856.png}}
Line 15: Line 16:
 ===== Challenges ===== ===== Challenges =====
 ==== Generieren von Rechnungen ==== ==== Generieren von Rechnungen ====
-Schreiben Sie Funktionen, die verschiedene Typen von Rechnungen generieren (und je nachdem auch gleich alle möglichen Umstellungen)+Schreiben Sie Funktionen, die verschiedene Typen von Rechnungen generieren (und je nachdem auch gleich alle möglichen Umstellungen).
  
 +Beispiel:
 +<code python>
 +import random
 +
 +# 8 Zeichen, ein =, ein +, also 6 Zeichen für 3 Zahlen
 +def additionEinfach():
 +    if random.randrange(3)==0:  # 1/3 der Fälle generiere 1-stellig+2-stellig=3-stellig
 +        a = random.randrange(1,10)  # Einstellige Zahl
 +        c = random.randrange(100,100+a)  # Dreistellige Zahl so, dass c-a zweistellig ist
 +        b = c-a
 +        if random.randrange(2)==0:  # Zahlen vertauschen
 +            a,b = b,a
 +        return "%d+%d=%d" % (a,b,c)
 +    else:  # Generiere 2-stellig+2-stellig=2-stellig
 +        a = random.randrange(10,90)
 +        b = random.randrange(10,100-a)
 +        c = a+b
 +        return "%d+%d=%d" % (a,b,c)
 +        
 +        
 +# Testen:    
 +for i in range(10):
 +    print(additionEinfach())
 +    
 +    
 +</code>
 +
 +Erweitern Sie obige Funktion so, dass mit 50% Wahrscheinlicheit jeweils die Umkehrung c-b=a generiert wird.
 +<hidden Lösungsvorschlag>
 +Anstatt einfaches return wird folgendes verwendet:
 +<code python>
 +        if random.randrange(2)==0:  # 50% Wahrscheinlichkeit
 +            return "%d+%d=%d" % (a,b,c)
 +        else:
 +            return "%d-%d=%d" % (c,b,a)
 +</code>
 +</hidden>
 +
 +Programmieren Sie dann weitere solche Funktionen.
 ==== Überprüfung der Eingabe ==== ==== Überprüfung der Eingabe ====
 Die Eingabe muss überprüft werden, ob die Rechnung überhaupt korrekt ist.  Die Eingabe muss überprüft werden, ob die Rechnung überhaupt korrekt ist. 
Line 25: Line 65:
   * Steht dann links und rechts vom = das Gleiche, ist die Eingabe ok.   * Steht dann links und rechts vom = das Gleiche, ist die Eingabe ok.
  
 +
 +Das Überprüfung kann dann sehr einfach mit den generierten Rechnungen getestet werden (plus eigene «falsche» Eingaben).
 ==== Bewertungsfunktion ==== ==== Bewertungsfunktion ====
 Ist die Gleiche wie beim [[lehrkraefte:blc:informatik:ffprg1-2022:wordle:start|Wordle]]. Ist die Gleiche wie beim [[lehrkraefte:blc:informatik:ffprg1-2022:wordle:start|Wordle]].
  • lehrkraefte/blc/informatik/ffprg1-2022/nerdle/start.1654071337.txt.gz
  • Last modified: 2022/06/01 10:15
  • by Ivo Blöchliger