Compare commits
10
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
efa709e34e | ||
|
|
a7cdb712fd | ||
|
|
75074d8e84 | ||
|
|
3487adf34c | ||
|
|
2194d495e6 | ||
|
|
005a129919 | ||
|
|
bdb3d4e4d1 | ||
|
|
6bbcc5229b | ||
|
|
4029c00edc | ||
|
|
8327678209 |
@@ -50,12 +50,14 @@ function main() {
|
|||||||
init_board
|
init_board
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
[[ "${ONLINE}" == 1 ]] && save_game "NO_EXIT"
|
||||||
|
|
||||||
render_board
|
render_board
|
||||||
|
|
||||||
for (( ROW; ROW<HEIGHT; ROW++ )); do
|
for (( ROW; ROW<HEIGHT; ROW++ )); do
|
||||||
declare GUESS
|
declare GUESS
|
||||||
[[ "${KEYBOARD}" == 1 ]] && render_keyboard
|
[[ "${KEYBOARD}" == 1 ]] && render_keyboard
|
||||||
GUESS=$(retrive_guess)
|
GUESS=$(retrieve_guess)
|
||||||
check_guess "${GUESS}" "${ROW}" ; WIN=$?
|
check_guess "${GUESS}" "${ROW}" ; WIN=$?
|
||||||
|
|
||||||
reveal_row "${ROW}"
|
reveal_row "${ROW}"
|
||||||
@@ -63,8 +65,11 @@ function main() {
|
|||||||
if [[ $WIN == 5 ]]; then
|
if [[ $WIN == 5 ]]; then
|
||||||
save_result
|
save_result
|
||||||
echo -e "${CLEAR_DOWN}YOU WIN"
|
echo -e "${CLEAR_DOWN}YOU WIN"
|
||||||
[[ "${ONLINE}" == 1 && "${DAILY_DONE}" != 1 ]] && echo "Share/view your game with -> curl \"${URL_BASE}/${RESULT_FILE}\""
|
if [[ "${ONLINE}" == 1 && "${DAILY_DONE}" != 1 ]]; then
|
||||||
while read -r board_line; do echo "${board_line//[A-Z]/ }"; done < "${RESULT_FILE}"
|
echo "Share/view your game with -> curl \"${URL_BASE}/${RESULT_FILE}\""
|
||||||
|
echo "Share/view your stats with -> curl \"${URL_BASE}/stats/${USER}\""
|
||||||
|
while read -r board_line; do echo "${board_line//[A-Z]/ }"; done < "${RESULT_FILE}"
|
||||||
|
fi
|
||||||
echo "Guess - $(( ROW+1 ))/6"
|
echo "Guess - $(( ROW+1 ))/6"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@@ -78,8 +83,11 @@ function main() {
|
|||||||
echo -en "${NEWLINE}${RESET}"
|
echo -en "${NEWLINE}${RESET}"
|
||||||
|
|
||||||
save_result
|
save_result
|
||||||
[[ "${ONLINE}" == 1 && "${DAILY_DONE}" != 1 ]] && echo "Share/view your game with -> curl \"${URL_BASE}/${RESULT_FILE}\""
|
if [[ "${ONLINE}" == 1 && "${DAILY_DONE}" != 1 ]]; then
|
||||||
while read -r board_line; do echo "${board_line//[A-Z]/ }"; done < "${RESULT_FILE}"
|
echo "Share/view your game with -> curl \"${URL_BASE}/${RESULT_FILE}\""
|
||||||
|
echo "Share/view your stats with -> curl \"${URL_BASE}/stats/${USER}\""
|
||||||
|
while read -r board_line; do echo "${board_line//[A-Z]/ }"; done < "${RESULT_FILE}"
|
||||||
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,18 +141,18 @@ function set_options() {
|
|||||||
USER="${USER,,}"
|
USER="${USER,,}"
|
||||||
|
|
||||||
declare -g DAY
|
declare -g DAY
|
||||||
DAY=$(( $EPOCHSECONDS / 86400 ))
|
DAY=$(( EPOCHSECONDS / 86400 ))
|
||||||
|
|
||||||
declare -gr PROGRESS_FILE=".${USER}-${DAY}.progress"
|
declare -gr PROGRESS_FILE=".${USER}-${DAY}.progress"
|
||||||
|
|
||||||
declare -gr RESULT_FILE="${USER}-${DAY}.board"
|
declare -gr RESULT_FILE="${USER}-${DAY}.board"
|
||||||
|
|
||||||
|
declare -gr CUR_RESULT_FILE="${USER}.board"
|
||||||
|
|
||||||
declare -gr STATS_SOURCE=".${USER}.stats"
|
declare -gr STATS_SOURCE=".${USER}.stats"
|
||||||
|
|
||||||
declare -gr STATS_FILE="${USER}.stats"
|
declare -gr STATS_FILE="${USER}.stats"
|
||||||
|
|
||||||
trap save_game SIGINT
|
|
||||||
|
|
||||||
if [[ -f "${PROGRESS_FILE}" ]] && [[ -s "${PROGRESS_FILE}" ]]; then
|
if [[ -f "${PROGRESS_FILE}" ]] && [[ -s "${PROGRESS_FILE}" ]]; then
|
||||||
load_game
|
load_game
|
||||||
RESUME=1
|
RESUME=1
|
||||||
@@ -164,19 +172,24 @@ function set_options() {
|
|||||||
[[ "${HM}" =~ ^[Yy]$ ]] && STRICT_HARD_MODE=1
|
[[ "${HM}" =~ ^[Yy]$ ]] && STRICT_HARD_MODE=1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
trap save_game SIGINT
|
||||||
;;
|
;;
|
||||||
d)
|
d)
|
||||||
DELAY=0
|
DELAY=0
|
||||||
;;
|
;;
|
||||||
h)
|
h)
|
||||||
echo -e "Usage: <program_name> [OPTIONS]
|
echo -e \
|
||||||
|
"Usage: <program_name> [OPTIONS]
|
||||||
Play a game for Wordle
|
Play a game for Wordle
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
-b Toggle borderless mode
|
-b Toggle borderless mode
|
||||||
-w Set target word
|
-w Set target word
|
||||||
-H Enable hard mode
|
-H Enable hard mode
|
||||||
-S Enable strict hard mode (Cannot reuse grey letters)
|
-S Enable strict hard mode (Cannot reuse grey letters)
|
||||||
-k disable on screen keyboard
|
-k disable on screen keyboard
|
||||||
|
-o Enable online mode
|
||||||
-d Enable debug mode (no delay during letter reveal)
|
-d Enable debug mode (no delay during letter reveal)
|
||||||
-h Show this help message and exit"
|
-h Show this help message and exit"
|
||||||
|
|
||||||
@@ -215,7 +228,7 @@ function render_board() {
|
|||||||
[[ "${BORDER}" == 1 ]] && echo -e "└─────────────────┘"
|
[[ "${BORDER}" == 1 ]] && echo -e "└─────────────────┘"
|
||||||
}
|
}
|
||||||
|
|
||||||
function retrive_guess() {
|
function retrieve_guess() {
|
||||||
if [[ -n $1 ]]; then
|
if [[ -n $1 ]]; then
|
||||||
read -r -p "${CLEAR_UP1}$1: " GUESS
|
read -r -p "${CLEAR_UP1}$1: " GUESS
|
||||||
else
|
else
|
||||||
@@ -228,12 +241,12 @@ function retrive_guess() {
|
|||||||
declare valid_guess
|
declare valid_guess
|
||||||
validate_guess "${GUESS}" ; valid_guess=$?
|
validate_guess "${GUESS}" ; valid_guess=$?
|
||||||
|
|
||||||
[[ ${valid_guess} == 1 ]] && GUESS=$(retrive_guess "Not A Valid Word")
|
[[ ${valid_guess} == 1 ]] && GUESS=$(retrieve_guess "Not A Valid Word")
|
||||||
[[ ${valid_guess} == 2 ]] && GUESS=$(retrive_guess "Not A Valid Guess")
|
[[ ${valid_guess} == 2 ]] && GUESS=$(retrieve_guess "Not A Valid Guess")
|
||||||
[[ ${valid_guess} == 3 ]] && GUESS=$(retrive_guess "GREEN Issue")
|
[[ ${valid_guess} == 3 ]] && GUESS=$(retrieve_guess "GREEN Issue")
|
||||||
[[ ${valid_guess} == 4 ]] && GUESS=$(retrive_guess "YELLOW Issue")
|
[[ ${valid_guess} == 4 ]] && GUESS=$(retrieve_guess "YELLOW Issue")
|
||||||
[[ ${valid_guess} == 5 ]] && GUESS=$(retrive_guess "POOL Issue")
|
[[ ${valid_guess} == 5 ]] && GUESS=$(retrieve_guess "POOL Issue")
|
||||||
[[ ${valid_guess} == 6 ]] && GUESS=$(retrive_guess "NEW Issue")
|
[[ ${valid_guess} == 6 ]] && GUESS=$(retrieve_guess "NEW Issue")
|
||||||
|
|
||||||
echo -n "${GUESS^^}"
|
echo -n "${GUESS^^}"
|
||||||
}
|
}
|
||||||
@@ -381,20 +394,24 @@ function save_game() {
|
|||||||
} >> "${PROGRESS_FILE}"
|
} >> "${PROGRESS_FILE}"
|
||||||
|
|
||||||
echo -en "${RESET}"
|
echo -en "${RESET}"
|
||||||
exit 0
|
[[ -z $1 ]] && exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
function save_result() {
|
function save_result() {
|
||||||
|
[[ "${ONLINE}" == 0 ]] && return 0
|
||||||
[[ "${ONLINE}" == 1 ]] && update_stats
|
[[ "${ONLINE}" == 1 ]] && update_stats
|
||||||
if [[ "${ONLINE}" == 1 ]] && [[ "${DAILY_DONE}" != 1 ]]; then
|
if [[ "${ONLINE}" == 1 ]] && [[ "${DAILY_DONE}" != 1 ]]; then
|
||||||
render_board > "${RESULT_FILE}"
|
render_board > "${RESULT_FILE}"
|
||||||
|
render_board > "${CUR_RESULT_FILE}"
|
||||||
if [[ $WIN != 5 ]]; then
|
if [[ $WIN != 5 ]]; then
|
||||||
[[ "${BORDER}" == 1 ]] && echo -en "${CLEAR_DOWN}${INDENT}${INDENT}" >> "${RESULT_FILE}"
|
[[ "${BORDER}" == 1 ]] && echo -en "${CLEAR_DOWN}${INDENT}${INDENT}" >> "${RESULT_FILE}"
|
||||||
echo -en "${CLEAR_LINE}${BOLD}" >> "${RESULT_FILE}"
|
echo -en "${CLEAR_LINE}${BOLD}" >> "${RESULT_FILE}"
|
||||||
for (( i=0; i<WIDTH; i++ )); do
|
for (( i=0; i<WIDTH; i++ )); do
|
||||||
echo -en " ${ANSWER:$i:1} " >> "${RESULT_FILE}"
|
echo -en " ${ANSWER:$i:1} " >> "${RESULT_FILE}"
|
||||||
|
echo -en " ${ANSWER:$i:1} " >> "${CUR_RESULT_FILE}"
|
||||||
done
|
done
|
||||||
echo -en "${NEWLINE}${RESET}" >> "${RESULT_FILE}"
|
echo -en "${NEWLINE}${RESET}" >> "${RESULT_FILE}"
|
||||||
|
echo -en "${NEWLINE}${RESET}" >> "${CUR_RESULT_FILE}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
echo 'PLAYED=1' > "${PROGRESS_FILE}"
|
echo 'PLAYED=1' > "${PROGRESS_FILE}"
|
||||||
@@ -416,7 +433,7 @@ function update_stats() {
|
|||||||
|
|
||||||
[[ $WIN == 5 ]] && SCORE="${GAME_HIST[$ROW]}"
|
[[ $WIN == 5 ]] && SCORE="${GAME_HIST[$ROW]}"
|
||||||
[[ $WIN == 5 ]] && SCORE=$(( SCORE+1 ))
|
[[ $WIN == 5 ]] && SCORE=$(( SCORE+1 ))
|
||||||
[[ $WIN == 5 ]] && GAME_HIST[$ROW]="${SCORE}"
|
[[ $WIN == 5 ]] && GAME_HIST[ROW]="${SCORE}"
|
||||||
|
|
||||||
[[ $WIN == 5 ]] && STREAK=$(( STREAK+1 ))
|
[[ $WIN == 5 ]] && STREAK=$(( STREAK+1 ))
|
||||||
[[ $WIN != 5 ]] && STREAK=0
|
[[ $WIN != 5 ]] && STREAK=0
|
||||||
|
|||||||
Reference in new issue
Block a user