diff options
Diffstat (limited to 'extractor')
-rw-r--r-- | extractor/extractor.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/extractor/extractor.py b/extractor/extractor.py index 0960eb1..f4c361d 100644 --- a/extractor/extractor.py +++ b/extractor/extractor.py @@ -4,6 +4,8 @@ import sys import os import shutil import argparse +import os +pid = os.getpid() parser = argparse.ArgumentParser(description='''BlankPlays challenge extractor. Extracts challenges from log files generated by Macondo's autoplay command.''') @@ -54,7 +56,7 @@ class GameState: col += 1 else: row += 1 - + def board_string(self) -> str: rows = [] for row in range(15): @@ -98,7 +100,7 @@ class GameState: i += 1 if len(vertical_word) > 1: words.append(vertical_word) - if not all(word in word_list for word in words): + if not all(word.upper() in word_list for word in words): return [] return words @@ -116,11 +118,12 @@ class GameState: if os.path.exists(filename): print(filename, 'already exists. Aborting.') sys.exit(1) - with open('challenge.tmp', 'wb') as out: + tmpnam = f'challenge-{pid}.tmp' + with open(tmpnam, 'wb') as out: out.write(self.board_string().encode()) for square, letter, _ in self.blank_plays(): out.write(f'{square} {letter}\n'.encode()) - os.rename('challenge.tmp', filename) + os.rename(f'challenge-{pid}.tmp', filename) def is_nice(play: tuple[int, str, list[str]]) -> bool: _square, letter, words = play @@ -148,7 +151,6 @@ for filename in args.log_files: if game_id not in games: games[game_id] = GameState() play = fields[4] - games[game_id].make_play(play) if fields[3] == '?': game = games[game_id] plays = game.blank_plays() @@ -160,4 +162,5 @@ for filename in args.log_files: print(len(plays), 'plays') count += 1 game_idx += 1 + games[game_id].make_play(play) print(count, 'challenges made.') |