Browse Source

Update

main
Adrian Heine 8 months ago
parent
commit
33ac6ed43a
  1. 23
      main.py

23
main.py

@ -71,9 +71,15 @@ def vergleiche(respuesta, expecta):
respuesta = '¡' + respuesta[1:]
if respuesta[0] == '?' and expecta[0] == '¿':
respuesta = '¿' + respuesta[1:]
respuesta = re.sub('(~n|n~)', 'ñ', respuesta)
expecta = re.sub(' \((irr.|pl.)\)', '', expecta)
respuesta = unicodedata.normalize('NFD', respuesta)
expecta = unicodedata.normalize('NFD', expecta)
respuesta = re.sub(' ?([!?¿¡….]) ?', r'\1', respuesta)
expecta = re.sub(' ?([!?¿¡….]) ?', r'\1', expecta)
respuesta = re.sub(r'\.\.\.', '', respuesta)
expecta = re.sub(r'\.\.\.', '', expecta)
if respuesta == expecta: return 0
respuesta = re.sub('[!?¿¡…. ]', '', respuesta)
expecta = re.sub('[!?¿¡…. ]', '', expecta)
@ -94,6 +100,10 @@ assert vergleiche("Buenas noches", "¡Buenas noches!") == 1
assert vergleiche("ser", "ser (irr.)") == 0
assert vergleiche("hacer algo", "hacer (irr.) algo") == 0
assert vergleiche("padres", "padres (pl.)") == 0
assert vergleiche("¿De dónde …?", "¿De dónde… ?") == 0
assert vergleiche("el nombre", "el apellido") == 4
assert vergleiche("Tengo … a~nos.", "Tengo... años.") == 0
assert vergleiche("¿Cuántos a~nos tienes?", "¿Cuántos años tienes?") == 0
class Resultado:
CORRECTO = 0
@ -123,11 +133,10 @@ def einzelne_abfrage(palabra, status):
else:
match status:
case 0: bien = Resultado.BIEN if resultado < 4 else Resultado.NO_BIEN
case 1: bien = Resultado.BIEN if resultado < 2 else (RESULTADO.NO_BIEN if resultado < 4 else Resultado.MAL)
case 2: bien = Resultado.BIEN if resultado < 2 else (RESULTADO.NO_BIEN if resultado < 3 else Resultado.MAL)
case 3: bien = resultado < 2
case 4: bien = resultado < 1
bien = Resultado.BIEN if bien else Resultado.MAL
case 1: bien = Resultado.BIEN if resultado < 3 else (Resultado.NO_BIEN if resultado < 4 else Resultado.MAL)
case 2: bien = Resultado.BIEN if resultado < 2 else (Resultado.NO_BIEN if resultado < 3 else Resultado.MAL)
case 3: bien = Resultado.BIEN if resultado < 2 else Resultado.MAL
case 4: bien = Resultado.BIEN if resultado < 1 else Resultado.MAL
print(f" {bcolors.LINK_START}file://{AUDIO_BASE}{palabra['audio']}.aac{bcolors.LINK_MIDDLE}",end="")
if bien == Resultado.CORRECTO:
print(f"{bcolors.OKGREEN}✓{bcolors.ENDC}",end="")
@ -181,10 +190,10 @@ class Sesion:
for palabra in palabras:
match einzelne_abfrage(palabra, status):
case Resultado.CORRECTO:
self.status[palabra['id']] = status + (2 if status < 2 else 1)
self.status[palabra['id']] = (status or 0) + (2 if (status or 0) < 2 else 1)
self.bien += 1
case Resultado.BIEN:
self.status[palabra['id']] = status + 1
self.status[palabra['id']] = (status or 0) + 1
self.bien += 1
case Resultado.NO_BIEN:
continue

Loading…
Cancel
Save