hard mode now check all previous rounds for yellow placement
Deploy game to server / deploy (push) Successful in 7s

This commit is contained in:
adam committed 2025-02-10 13:00:11 +00:00
1 parent fa2fdf80b7
commit c530058c9b
1 file changed
+12 -13
+12 -13
View File
@@ -27,6 +27,7 @@ declare -gr INDENT=$'\e[1C'
function main() {
declare -g ANSWER
declare -g POOL='QWERTYUIOPASDFGHJKLZXCVBNM'
declare -Ag YELLOWS
ANSWER=$(select_random_word)
set_options "$@"
@@ -172,6 +173,7 @@ function retrive_guess() {
[[ ${valid_guess} == 3 ]] && GUESS=$(retrive_guess "GREEN Issue")
[[ ${valid_guess} == 4 ]] && GUESS=$(retrive_guess "YELLOW Issue")
[[ ${valid_guess} == 5 ]] && GUESS=$(retrive_guess "POOL Issue")
[[ ${valid_guess} == 6 ]] && GUESS=$(retrive_guess "NEW Issue")
echo -n "${GUESS^^}"
}
@@ -220,25 +222,21 @@ function hard_mode_check() {
fi
if [[ -n "${yellows[i]}" ]]; then
[[ "${yellows[i]}" == "${GUESS:i:1}" ]] && return 4
[[ ! "${GUESS}" == *"${yellows[i]}"* ]] && return 4
fi
for (( r=row-1; r>=0; r-- )); do
CHAR="${GUESS:i:1}"
PREV_CHAR="${YELLOWS[$r,$i]}"
[[ "${CHAR}" == "${PREV_CHAR}" ]] && return 4
done
done
return 0
}
function color_check() {
declare -r CHAR=$1
declare -r c=$2
declare -r r=$(( row-1 ))
PREV_ROW="${BOARD[$r,$c]}"
PREV_CHAR="${PREV_ROW: -2:1}"
[[ "${CHAR}" == "${PREV_CHAR}" ]] && return 0 || return 1
}
function check_guess() {
declare -r _guess=$1
declare -r _row=$2
@@ -266,7 +264,8 @@ function check_guess() {
if [[ "${chars}" == *${_char}* ]]; then
chars="${chars/${_char}/}"
yellows[c]="${_char}"
yellows[c]="${_char}" # volatile - stores previous row yellows
YELLOWS[$_row,$c]="${_char}" # stores all yellow from all rounds
BOARD[$_row,$c]="${BOLD}${LETTER}${YELLOW} ${_char} "
else
POOL="${POOL/${_char}/_}"