-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathwordle_beater.py
55 lines (48 loc) · 1.64 KB
/
wordle_beater.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import time
from lib import targetlist
from lib.games import FrequencyGame
def main():
games = [
(FrequencyGame, {"expanded_list_guesses": 0}),
# (FrequencyGame, {"expanded_list_guesses": 1}),
# (FrequencyGame, {"expanded_list_guesses": 2}),
# (FrequencyGame, {"expanded_list_guesses": 3}),
# (FrequencyGame, {"expanded_list_guesses": 4}),
# (FrequencyGame, {"expanded_list_guesses": 5}),
# (FrequencyGame, {"expanded_list_guesses": 6}),
]
results = {
f"{game.__name__} - {opts}": {k + 1: 0 for k in range(6)}
for game, opts in games
}
for _, v in results.items():
v["losses"] = 0
for game, opts in games:
game_string = f"{game.__name__} - {opts}"
game_instance = game(**opts)
for word in targetlist:
game_instance.run(word)
guesses = game_instance.guesses
if not guesses[-1].won:
results[game_string]["losses"] += 1
# Show me the losses:
# print(f"{word}: {guesses}")
else:
results[game_string][len(guesses)] += 1
print(results)
for game, opts in games:
print(f"{game.__name__} - {opts}")
count = 0
sum_of = 0
for k, v in results[f"{game.__name__} - {opts}"].items():
if not isinstance(k, int):
continue
count += v
sum_of += k * v
if count != 0:
print(f"Average: {sum_of/count}")
print(f"Total: {count}")
if __name__ == "__main__":
start = time.time()
main()
print(f"Seconds: {time.time() - start}")