santit96 commited on
Commit
492f7eb
·
1 Parent(s): aead3eb

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[-1] == '22222'
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
- element = self.driver.find_element(By.TAG_NAME, 'html')
60
- # simulate typing the letters in the word into the input field
61
- element.send_keys(word)
62
- # simulate pressing the Enter key
63
- element.send_keys(Keys.ENTER)
 
 
 
 
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()