batman
This commit is contained in:
commit
cc8ffcfcc2
38 changed files with 6046 additions and 0 deletions
50
bash/games/wordle.sh
Executable file
50
bash/games/wordle.sh
Executable file
|
@ -0,0 +1,50 @@
|
|||
words=($(grep '^\w\w\w\w\w$' /usr/share/dict/words | tr '[a-z]' '[A-Z]'))
|
||||
actual=${words[$(($RANDOM % ${#words[@]}))]} end=false guess_count=0 max_guess=6
|
||||
if [[ $1 == "unlimit" ]]; then
|
||||
max_guess=999999
|
||||
fi
|
||||
while [[ $end != true ]]; do
|
||||
guess_count=$(($guess_count + 1))
|
||||
if [[ $guess_count -le $max_guess ]]; then
|
||||
echo "Enter your guess ($guess_count / $max_guess):"
|
||||
read guess
|
||||
guess=$(echo $guess | tr '[a-z]' '[A-Z]')
|
||||
if [[ " ${words[*]} " =~ " $guess " ]]; then
|
||||
output="" remaining=""
|
||||
if [[ $actual == $guess ]]; then
|
||||
echo "You guessed right!"
|
||||
for ((i = 0; i < ${#actual}; i++)); do
|
||||
output+="\033[30;102m ${guess:$i:1} \033[0m"
|
||||
done
|
||||
printf "$output\n"
|
||||
end=true
|
||||
else
|
||||
for ((i = 0; i < ${#actual}; i++)); do
|
||||
if [[ "${actual:$i:1}" != "${guess:$i:1}" ]]; then
|
||||
remaining+=${actual:$i:1}
|
||||
fi
|
||||
done
|
||||
for ((i = 0; i < ${#actual}; i++)); do
|
||||
if [[ "${actual:$i:1}" != "${guess:$i:1}" ]]; then
|
||||
if [[ "$remaining" == *"${guess:$i:1}"* ]]; then
|
||||
output+="\033[30;103m ${guess:$i:1} \033[0m"
|
||||
remaining=${remaining/"${guess:$i:1}"/}
|
||||
else
|
||||
output+="\033[30;107m ${guess:$i:1} \033[0m"
|
||||
fi
|
||||
else
|
||||
output+="\033[30;102m ${guess:$i:1} \033[0m"
|
||||
fi
|
||||
done
|
||||
printf "$output\n"
|
||||
fi
|
||||
else
|
||||
echo "Please enter a valid word with 5 letters!"
|
||||
guess_count=$(($guess_count - 1))
|
||||
fi
|
||||
else
|
||||
echo "You lose! The word is:"
|
||||
echo $actual
|
||||
end=true
|
||||
fi
|
||||
done
|
Loading…
Add table
Add a link
Reference in a new issue