basic keyboard function
This commit is contained in:
1 parent
1e6942c5b7
commit
2ee79b85db
1 file changed
+21
-6
@@ -23,10 +23,11 @@ declare -gr SHOW_CURSOR=$'\e[?25h'
|
|||||||
declare -gr GOHOME=$'\e[H'
|
declare -gr GOHOME=$'\e[H'
|
||||||
declare -gr DOWN1=$'\e[1E'
|
declare -gr DOWN1=$'\e[1E'
|
||||||
declare -gr INDENT=$'\e[1C'
|
declare -gr INDENT=$'\e[1C'
|
||||||
|
declare -gr DOWN3=$'\e[9;0H'
|
||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
declare -g ANSWER
|
declare -g ANSWER
|
||||||
declare -g POOL='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
declare -g POOL='QWERTYUIOPASDFGHJKLZXCVBNM'
|
||||||
ANSWER=$(select_random_word)
|
ANSWER=$(select_random_word)
|
||||||
|
|
||||||
set_options "$@"
|
set_options "$@"
|
||||||
@@ -40,6 +41,7 @@ function main() {
|
|||||||
declare row
|
declare row
|
||||||
for (( row=0; row<HEIGHT; row++ )); do
|
for (( row=0; row<HEIGHT; row++ )); do
|
||||||
declare GUESS
|
declare GUESS
|
||||||
|
[[ "${KEYBOARD}" == 1 ]] && render_keyboard
|
||||||
GUESS=$(retrive_guess)
|
GUESS=$(retrive_guess)
|
||||||
check_guess "${GUESS}" "${row}" ; win=$?
|
check_guess "${GUESS}" "${row}" ; win=$?
|
||||||
|
|
||||||
@@ -67,6 +69,7 @@ function set_options() {
|
|||||||
declare -g HARD_MODE=0
|
declare -g HARD_MODE=0
|
||||||
declare -g STRICT_HARD_MODE=0
|
declare -g STRICT_HARD_MODE=0
|
||||||
declare -g DELAY=0.5
|
declare -g DELAY=0.5
|
||||||
|
declare -g KEYBOARD=1
|
||||||
|
|
||||||
while getopts "bw:HSdh" OPT; do
|
while getopts "bw:HSdh" OPT; do
|
||||||
case "${OPT}" in
|
case "${OPT}" in
|
||||||
@@ -149,10 +152,7 @@ function retrive_guess() {
|
|||||||
read -r -p "${CLEAR_UP1}Must be 5 letters: " GUESS
|
read -r -p "${CLEAR_UP1}Must be 5 letters: " GUESS
|
||||||
done
|
done
|
||||||
declare valid_guess
|
declare valid_guess
|
||||||
validate_guess "${GUESS}" &
|
validate_guess "${GUESS}" ; valid_guess=$?
|
||||||
declare validation_pid=$!
|
|
||||||
wait $validation_pid
|
|
||||||
valid_guess=$?
|
|
||||||
|
|
||||||
[[ ${valid_guess} == 1 ]] && GUESS=$(retrive_guess "Not A Valid Word")
|
[[ ${valid_guess} == 1 ]] && GUESS=$(retrive_guess "Not A Valid Word")
|
||||||
[[ ${valid_guess} == 2 ]] && GUESS=$(retrive_guess "Not A Valid Guess")
|
[[ ${valid_guess} == 2 ]] && GUESS=$(retrive_guess "Not A Valid Guess")
|
||||||
@@ -163,6 +163,20 @@ function retrive_guess() {
|
|||||||
echo -n "${GUESS^^}"
|
echo -n "${GUESS^^}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function render_keyboard() {
|
||||||
|
declare pos=$(( BORDER*2+7 ))
|
||||||
|
echo -en "\e[$pos;0H"
|
||||||
|
for (( i=0; i<${#POOL}; i++ )); do
|
||||||
|
if [[ $i == 10 ]]; then
|
||||||
|
echo -en "${NEWLINE}${INDENT}"
|
||||||
|
elif [[ $i == 19 ]]; then
|
||||||
|
echo -en "${NEWLINE} "
|
||||||
|
fi
|
||||||
|
echo -n "${POOL:$i:1} "
|
||||||
|
done
|
||||||
|
echo -en "${NEWLINE}"
|
||||||
|
}
|
||||||
|
|
||||||
function validate_guess() {
|
function validate_guess() {
|
||||||
declare GUESS=$1
|
declare GUESS=$1
|
||||||
|
|
||||||
@@ -239,7 +253,8 @@ function check_guess() {
|
|||||||
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} "
|
||||||
continue
|
else
|
||||||
|
POOL="${POOL/${_char}/_}"
|
||||||
fi
|
fi
|
||||||
[[ " ${yellows[*]} " =~ ${_char} ]] && continue
|
[[ " ${yellows[*]} " =~ ${_char} ]] && continue
|
||||||
[[ " ${greens[*]} " =~ ${_char} ]] && continue
|
[[ " ${greens[*]} " =~ ${_char} ]] && continue
|
||||||
|
|||||||
Reference in new issue
Block a user