fix for mode mode and strict hard mode

This commit is contained in:
adam committed 2025-01-29 01:36:30 +00:00
1 parent d1ff8262db
commit f37c483518
1 file changed
+9 -9
+9 -9
View File
@@ -179,7 +179,7 @@ function validate_guess() {
} }
function hard_mode_check() { function hard_mode_check() {
[[ -z "${row}" || "${row}" == 0 ]] && return 0 #[[ -z "${row}" || "${row}" == 0 ]] && return 0
declare GUESS=$1 declare GUESS=$1
@@ -192,9 +192,8 @@ function hard_mode_check() {
[[ "${greens[i]}" != "${GUESS:i:1}" ]] && return 3 [[ "${greens[i]}" != "${GUESS:i:1}" ]] && return 3
fi fi
if [[ " ${yellows[*]} " =~ ${GUESS:i:1} ]]; then if [[ -n "${yellows[i]}" ]]; then
unset 'yellows[i]' [[ "${yellows[i]}" == "${GUESS:i:1}" ]] && return 4
color_check "${GUESS:i:1}" $i && return 4
fi fi
done done
@@ -219,7 +218,6 @@ function check_guess() {
declare -r _answer="${ANSWER}" declare -r _answer="${ANSWER}"
declare chars="" declare chars=""
declare -ga greens=()
declare -ga yellows=() declare -ga yellows=()
for (( i=0; i<WIDTH; i++ )); do for (( i=0; i<WIDTH; i++ )); do
@@ -232,20 +230,22 @@ function check_guess() {
declare _char=${_guess:$c:1} declare _char=${_guess:$c:1}
if [[ "${_char}" == "${_answer:$c:1}" ]]; then if [[ "${_char}" == "${_answer:$c:1}" ]]; then
green_count=$(( green_count+1 ))
greens[c]="${_char}" greens[c]="${_char}"
BOARD[$_row,$c]="${BOLD}${LETTER}${GREEN} ${_char} " BOARD[$_row,$c]="${BOLD}${LETTER}${GREEN} ${_char} "
[[ "${#greens[*]}" -eq 5 ]] && return 5
continue continue
fi fi
[[ "${#greens[*]}" -eq 5 ]] && return 5
if [[ "${chars}" == *${_char}* ]]; then if [[ "${chars}" == *${_char}* ]]; then
chars="${chars/${_char}/}" chars="${chars/${_char}/}"
yellows[c]="${_char}" yellows[c]="${_char}"
BOARD[$_row,$c]="${BOLD}${LETTER}${YELLOW} ${_char} " BOARD[$_row,$c]="${BOLD}${LETTER}${YELLOW} ${_char} "
else continue
POOL="${POOL/${_char}/_}"
fi fi
[[ " ${yellows[*]} " =~ ${_char} ]] && continue
[[ " ${greens[*]} " =~ ${_char} ]] && continue
POOL="${POOL/${_char}/_}"
done done
} }