From 88a9d623f67c9716bd423c558471ef989571cc8a Mon Sep 17 00:00:00 2001 From: faab Date: Sun, 3 Nov 2024 02:49:43 +0000 Subject: [PATCH] Add number_guess.sh --- number_guess.sh | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 number_guess.sh diff --git a/number_guess.sh b/number_guess.sh new file mode 100644 index 0000000..e8c0730 --- /dev/null +++ b/number_guess.sh @@ -0,0 +1,52 @@ +#!/bin/bash +PSQL="psql --username=freecodecamp --dbname=number_guessing_game -t --no-align -c" + +NUMBER=$((1 + $RANDOM % 1000)) + +echo "Enter your username:" +read USERNAME + +USER_QUERY=$($PSQL "SELECT username, games_played, best_game FROM users WHERE username = '$USERNAME'") + +if [[ -z $USER_QUERY ]]; then + echo "Welcome, $USERNAME! It looks like this is your first time here." + INSERT_USER=$($PSQL "INSERT INTO users(username) VALUES('$USERNAME')") + BEST_GAME="" +else + GAMES_PLAYED=$(echo "$USER_QUERY"| cut -d'|' -f2) + BEST_GAME=$(echo "$USER_QUERY"| cut -d'|' -f3) + echo "Welcome back, $USERNAME! You have played $GAMES_PLAYED games, and your best game took $BEST_GAME guesses." +fi + + +GUESSES=1 + +echo "Guess the secret number between 1 and 1000:" +read GUESS +while [[ $GUESS -ne $NUMBER ]]; do + + + if [[ ! $GUESS =~ ^[0-9]+$ ]]; then + echo "That is not an integer, guess again:" + read GUESS + continue + fi + + if [[ $NUMBER -lt $GUESS ]]; then + echo "It's lower than that, guess again:" + ((GUESSES++)) + else + echo "It's higher than that, guess again:" + ((GUESSES++)) + fi + + read GUESS +done + +echo "You guessed it in $GUESSES tries. The secret number was $NUMBER. Nice job!" + +if [[ $GUESSES -lt $BEST_GAME || -z $BEST_GAME ]]; then + UPDATE_USER=$($PSQL "UPDATE users SET best_game = $GUESSES WHERE username = '$USERNAME'") +fi + +UPDATE_USER=$($PSQL "UPDATE USERS SET games_played = games_played + 1 WHERE username = '$USERNAME'") \ No newline at end of file