X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=riddle_solver.md;fp=riddle_solver.md;h=67b62988b141f0df6fddc3d05a046aaff07b198f;hb=5e5626bd52223307c5535d15668692e142e65d52;hp=a9e3064dd36242c65fd1b04a11d203e3143ba3d9;hpb=ce34915246926441c163272e09f1343db3fd1955;p=riddle-generator.git diff --git a/riddle_solver.md b/riddle_solver.md index a9e3064..67b6298 100644 --- a/riddle_solver.md +++ b/riddle_solver.md @@ -37,12 +37,13 @@ def parse_line(tokens: List[str]) -> Tuple[int, Tuple[RiddleClue, RiddleClue]]: position_word = [t for t in stripped_tokens if t in ordinals][0] pos = from_ordinal(position_word) - first_index, first_word = [(i, t) for i, t in enumerate(stripped_tokens) + indexed_words = [(i, t) for i, t in enumerate(stripped_tokens) if t not in ordinals - if t not in negative_words][0] - second_index, second_word = [(i, t) for i, t in enumerate(stripped_tokens) - if t not in ordinals - if t not in negative_words][1] + if t not in negative_words] + + first_index, first_word = indexed_words[0] + second_index, second_word = indexed_words[1] + neg_indices = [i for i, t in enumerate(stripped_tokens) if t in negative_words] first_clue = None @@ -107,10 +108,10 @@ sample_riddle ```python def parse_riddle(riddle_text: str) -> Riddle: - riddle_lines = {i: elem - for i, elem in - [parse_line(tokenise(l)) for l in riddle_text.split('\n')]} - return collapse_riddle_clues(riddle_lines) + return {i: elem + for i, elem in + [parse_line(tokenise(l)) + for l in riddle_text.split('\n')]} ``` ```python @@ -120,7 +121,8 @@ solve_riddle(sample_riddle) ```python def parse_and_solve_riddle(riddle_text: str) -> List[str]: riddle = parse_riddle(riddle_text) - return solve_riddle(riddle) + elems = collapse_riddle_clues(riddle) + return solve_riddle(elems) ``` ```python