From 1dff4f524bb19089a5993318cef85614c19bea75 Mon Sep 17 00:00:00 2001 From: Kwarde Date: Thu, 18 Jan 2024 17:03:21 +0100 Subject: [PATCH] FIX: KeyError when returning a mistyped spell with Levenshtein distance --- game.py | 8 ++++---- spells.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/game.py b/game.py index 6bd3edd..98ee94c 100644 --- a/game.py +++ b/game.py @@ -47,12 +47,12 @@ def get_player_spell_from_input(player: Player): continue elif player_input.find("help", 0) != -1: find_what = player_input[5:] - spell = spells.get(find_spell_by_name(find_what)[0][0], None) + spell_name, spell_obj = find_spell_by_name(find_what)[0] - if spell is spells[_INVALID_SPELL]: - print(" Spell '{what}' does not exist!".format(what=find_what)) + if spell_obj is spells[_INVALID_SPELL]: + print(" Spell '{what}' does not exist!".format(what=spell_name)) else: - print("'{spell_name}':{spell_desc}".format(spell_name=find_what, spell_desc=spells[find_what])) + print("'{spell_name}':{spell_desc}".format(spell_name=spell_name, spell_desc=spell_obj)) continue else: return find_spell_by_name(player_input) diff --git a/spells.py b/spells.py index e8dffd1..bb3a9b0 100644 --- a/spells.py +++ b/spells.py @@ -107,7 +107,7 @@ def find_spell_by_name(input: str): # Returns a multidimensional tuple: ( ('spel for i in spells.items(): dist = distance(i[0].title(), input.title()) if dist <= MAX_LEVENSHTEIN_DISTANCE: - ret[1] = i + ret = (i[0], i[1]) break return (ret, dist)