Spaces:
Build error
Build error
Fix bug in state update
Browse filesNow only set the character as state "not" if it is not in the word at all
- wordle_env/state.py +6 -6
wordle_env/state.py
CHANGED
|
@@ -77,11 +77,11 @@ def update_from_mask(state: WordleState, word: str, mask: List[int]) -> WordleSt
|
|
| 77 |
offset = 1 + cint * WORDLE_N * 3
|
| 78 |
if mask[i] == SOMEWHERE:
|
| 79 |
prior_maybe.append(c)
|
| 80 |
-
# Char at position i = no, and in other positions maybe, other chars stay as they are
|
| 81 |
-
for
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
state[offset + 3 * i:offset + 3 * i + 3] = [1, 0, 0]
|
| 86 |
elif mask[i] == NO:
|
| 87 |
# Need to check this first in case there's prior maybe + yes
|
|
@@ -168,7 +168,7 @@ def update(state: WordleState, word: str, goal_word: str) -> Tuple[WordleState,
|
|
| 168 |
state[char_offset: char_offset + 3] = [0, 1, 0]
|
| 169 |
state[offset + 3 * i:offset + 3 * i + 3] = [1, 0, 0]
|
| 170 |
reward += CHAR_REWARD * 0.1
|
| 171 |
-
|
| 172 |
# Char at all positions = no
|
| 173 |
state[offset:offset + 3 * WORDLE_N] = [1, 0, 0] * WORDLE_N
|
| 174 |
processed_letters.append(c)
|
|
|
|
| 77 |
offset = 1 + cint * WORDLE_N * 3
|
| 78 |
if mask[i] == SOMEWHERE:
|
| 79 |
prior_maybe.append(c)
|
| 80 |
+
# Char at position i = no, and in other positions maybe except it had a value before, other chars stay as they are
|
| 81 |
+
for char_idx in range(0, WORDLE_N * 3, 3):
|
| 82 |
+
char_offset = offset + char_idx
|
| 83 |
+
if tuple(state[char_offset: char_offset + 3]) == (0, 0, 0):
|
| 84 |
+
state[char_offset: char_offset + 3] = [0, 1, 0]
|
| 85 |
state[offset + 3 * i:offset + 3 * i + 3] = [1, 0, 0]
|
| 86 |
elif mask[i] == NO:
|
| 87 |
# Need to check this first in case there's prior maybe + yes
|
|
|
|
| 168 |
state[char_offset: char_offset + 3] = [0, 1, 0]
|
| 169 |
state[offset + 3 * i:offset + 3 * i + 3] = [1, 0, 0]
|
| 170 |
reward += CHAR_REWARD * 0.1
|
| 171 |
+
elif c not in goal_word:
|
| 172 |
# Char at all positions = no
|
| 173 |
state[offset:offset + 3 * WORDLE_N] = [1, 0, 0] * WORDLE_N
|
| 174 |
processed_letters.append(c)
|