explain hard mode errors in guess prompt
Replace "GREEN Issue", "YELLOW Issue" and "POOL Issue" with messages that say which letter broke which rule: 3rd letter must be A Must contain R 1st letter can't be R (was yellow there before) S is not in the word (strict mode, grey letter reused) hard_mode_check now records the failing position, and a yellow letter reused in the same spot gets its own code (6, previously the unused "NEW Issue"). Drop the unused "Not A Valid Guess" code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
6b07093d68
commit
0f8640e9e8
1 file changed
+10
-6
@@ -262,12 +262,14 @@ function retrieve_guess() {
|
|||||||
validate_guess "${GUESS}" ; valid_guess=$?
|
validate_guess "${GUESS}" ; valid_guess=$?
|
||||||
|
|
||||||
declare message
|
declare message
|
||||||
|
declare -r pos="${HARD_MODE_POS}"
|
||||||
|
declare -r letter="${GUESS:pos:1}"
|
||||||
|
declare -ra ordinals=(1st 2nd 3rd 4th 5th)
|
||||||
[[ ${valid_guess} == 1 ]] && message="Not A Valid Word"
|
[[ ${valid_guess} == 1 ]] && message="Not A Valid Word"
|
||||||
[[ ${valid_guess} == 2 ]] && message="Not A Valid Guess"
|
[[ ${valid_guess} == 3 ]] && message="${ordinals[pos]} letter must be ${greens[pos]}"
|
||||||
[[ ${valid_guess} == 3 ]] && message="GREEN Issue"
|
[[ ${valid_guess} == 4 ]] && message="Must contain ${yellows[pos]}"
|
||||||
[[ ${valid_guess} == 4 ]] && message="YELLOW Issue"
|
[[ ${valid_guess} == 5 ]] && message="${letter^^} is not in the word"
|
||||||
[[ ${valid_guess} == 5 ]] && message="POOL Issue"
|
[[ ${valid_guess} == 6 ]] && message="${ordinals[pos]} letter can't be ${letter^^}"
|
||||||
[[ ${valid_guess} == 6 ]] && message="NEW Issue"
|
|
||||||
|
|
||||||
if [[ -n "${message}" ]]; then
|
if [[ -n "${message}" ]]; then
|
||||||
GUESS=$(retrieve_guess "${message}") || exit 1
|
GUESS=$(retrieve_guess "${message}") || exit 1
|
||||||
@@ -316,6 +318,8 @@ function hard_mode_check() {
|
|||||||
declare GUESS=$1
|
declare GUESS=$1
|
||||||
|
|
||||||
for (( i=0; i<WIDTH; i++ )); do
|
for (( i=0; i<WIDTH; i++ )); do
|
||||||
|
HARD_MODE_POS=$i # letter position that failed, for the error message
|
||||||
|
|
||||||
if [[ "${STRICT_HARD_MODE}" == 1 ]]; then
|
if [[ "${STRICT_HARD_MODE}" == 1 ]]; then
|
||||||
[[ "${POOL}" == *${GUESS:i:1}* ]] || return 5
|
[[ "${POOL}" == *${GUESS:i:1}* ]] || return 5
|
||||||
fi
|
fi
|
||||||
@@ -331,7 +335,7 @@ function hard_mode_check() {
|
|||||||
for (( r=ROW-1; r>=0; r-- )); do
|
for (( r=ROW-1; r>=0; r-- )); do
|
||||||
CHAR="${GUESS:i:1}"
|
CHAR="${GUESS:i:1}"
|
||||||
PREV_CHAR="${YELLOWS[$r,$i]}"
|
PREV_CHAR="${YELLOWS[$r,$i]}"
|
||||||
[[ "${CHAR}" == "${PREV_CHAR}" ]] && return 4
|
[[ "${CHAR}" == "${PREV_CHAR}" ]] && return 6
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user