Spaces:
Sleeping
Sleeping
Add different sleep so the simulated player dont get errors and plays smoothly
Browse files
rs_wordle_player/rs_wordle_player.py
CHANGED
@@ -29,17 +29,22 @@ def get_attempts(fb_connector):
|
|
29 |
return words, results
|
30 |
|
31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
def play_game(player, fb_connector, env, model_path):
|
33 |
-
words = []
|
34 |
-
states = []
|
35 |
-
finished = False
|
36 |
attempts = 0
|
|
|
|
|
37 |
while not finished or attempts < 6:
|
38 |
attempts += 1
|
39 |
new_attempt = suggest(env, words, states, model_path)
|
40 |
player.play_word(new_attempt)
|
41 |
words, states = get_attempts(fb_connector)
|
42 |
-
finished = states
|
43 |
return words, finished
|
44 |
|
45 |
|
|
|
29 |
return words, results
|
30 |
|
31 |
|
32 |
+
def is_game_finished(states):
|
33 |
+
if states:
|
34 |
+
return states[-1] == '22222' or len(states) == 6
|
35 |
+
return False
|
36 |
+
|
37 |
+
|
38 |
def play_game(player, fb_connector, env, model_path):
|
|
|
|
|
|
|
39 |
attempts = 0
|
40 |
+
words, states = get_attempts(fb_connector)
|
41 |
+
finished = is_game_finished(states)
|
42 |
while not finished or attempts < 6:
|
43 |
attempts += 1
|
44 |
new_attempt = suggest(env, words, states, model_path)
|
45 |
player.play_word(new_attempt)
|
46 |
words, states = get_attempts(fb_connector)
|
47 |
+
finished = is_game_finished(states)
|
48 |
return words, finished
|
49 |
|
50 |
|
rs_wordle_player/selenium_player.py
CHANGED
@@ -2,6 +2,7 @@ import os
|
|
2 |
import time
|
3 |
from dotenv import load_dotenv
|
4 |
from selenium import webdriver
|
|
|
5 |
from selenium.webdriver.chrome.options import Options
|
6 |
from selenium.webdriver.common.by import By
|
7 |
from selenium.webdriver.common.keys import Keys
|
@@ -36,6 +37,7 @@ class SeleniumPlayer():
|
|
36 |
|
37 |
def log_in(self):
|
38 |
if not self.logged_in():
|
|
|
39 |
login_div = self.driver.find_element(By.CLASS_NAME, 'login-button')
|
40 |
login_btns = login_div.find_elements(By.TAG_NAME, 'button')
|
41 |
login_btn = login_btns[0]
|
@@ -52,15 +54,23 @@ class SeleniumPlayer():
|
|
52 |
element = self.driver.find_element(By.NAME, 'password')
|
53 |
element.send_keys(password)
|
54 |
element.send_keys(Keys.ENTER)
|
55 |
-
time.sleep(10)
|
56 |
self.driver.switch_to.window(wordle_window)
|
|
|
|
|
|
|
|
|
|
|
57 |
|
58 |
def play_word(self, word):
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
|
|
|
|
|
|
|
|
64 |
|
65 |
def finish(self):
|
66 |
self.driver.quit()
|
|
|
2 |
import time
|
3 |
from dotenv import load_dotenv
|
4 |
from selenium import webdriver
|
5 |
+
from selenium.common.exceptions import UnexpectedAlertPresentException
|
6 |
from selenium.webdriver.chrome.options import Options
|
7 |
from selenium.webdriver.common.by import By
|
8 |
from selenium.webdriver.common.keys import Keys
|
|
|
37 |
|
38 |
def log_in(self):
|
39 |
if not self.logged_in():
|
40 |
+
time.sleep(2)
|
41 |
login_div = self.driver.find_element(By.CLASS_NAME, 'login-button')
|
42 |
login_btns = login_div.find_elements(By.TAG_NAME, 'button')
|
43 |
login_btn = login_btns[0]
|
|
|
54 |
element = self.driver.find_element(By.NAME, 'password')
|
55 |
element.send_keys(password)
|
56 |
element.send_keys(Keys.ENTER)
|
|
|
57 |
self.driver.switch_to.window(wordle_window)
|
58 |
+
time.sleep(5)
|
59 |
+
onboard_div = self.driver.find_element(By.CLASS_NAME, 'onboarding-modal-container')
|
60 |
+
onboard_btn = onboard_div.find_elements(By.TAG_NAME, 'button')
|
61 |
+
onboard_btn[-1].click()
|
62 |
+
|
63 |
|
64 |
def play_word(self, word):
|
65 |
+
try:
|
66 |
+
element = self.driver.find_element(By.TAG_NAME, 'html')
|
67 |
+
# simulate typing the letters in the word into the input field
|
68 |
+
element.send_keys(word)
|
69 |
+
# simulate pressing the Enter key
|
70 |
+
element.send_keys(Keys.ENTER)
|
71 |
+
time.sleep(5)
|
72 |
+
except UnexpectedAlertPresentException:
|
73 |
+
print('Won game alert on screen')
|
74 |
|
75 |
def finish(self):
|
76 |
self.driver.quit()
|