diff options
author | pommicket <pommicket@gmail.com> | 2025-09-24 15:30:07 -0400 |
---|---|---|
committer | pommicket <pommicket@gmail.com> | 2025-09-24 15:36:30 -0400 |
commit | 4ee0e5cd0425602d6c1e2357514f9d0876cf5148 (patch) | |
tree | 8374330d69ee8d51e08e0a76e65a3bdfc2568973 /extractor | |
parent | 569eeca1f591c76090e3efcfdef96f0c4e13e817 (diff) |
Various fixes to extractor script
We no longer mislabel plays as invalid and the positions
are actually correct now.
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.') |