Add Rock Paper Scissors script

This commit is contained in:
raul 2025-01-08 09:41:31 +01:00
parent d73ffd06b2
commit bf6ed0cb21
Signed by: raul
GPG Key ID: C1AA797073F17129
1 changed files with 132 additions and 0 deletions

132
rps.sh Executable file
View File

@ -0,0 +1,132 @@
#!/bin/bash
declare JUGADOR1
declare JUGADOR2
declare JUGADOR1_PUNTOS=0
declare JUGADOR2_PUNTOS=0
OPCIONES_DISPONIBLES=("piedra" "papel" "tijera")
checkAnswer() {
ESVALIDA=false
for respuesta in "${OPCIONES_DISPONIBLES[@]}"; do
if [[ "$1" == "$respuesta" ]]; then
ESVALIDA=true
fi
done
echo $ESVALIDA
}
# 2 args
checkWinner() {
case "$2" in
"piedra")
if [[ "$1" == "piedra" ]]; then
echo "EMPATE"
fi
if [[ "$1" == "papel" ]]; then
echo "$JUGADOR1"
fi
if [[ "$1" == "tijera" ]]; then
echo "$JUGADOR2"
fi
;;
"papel")
if [[ "$1" == "piedra" ]]; then
echo "$JUGADOR2"
fi
if [[ "$1" == "papel" ]]; then
echo "EMPATE"
fi
if [[ "$1" == "tijera" ]]; then
echo "$JUGADOR1"
fi
;;
"tijera")
if [[ "$1" == "piedra" ]]; then
echo "$JUGADOR1"
fi
if [[ "$1" == "papel" ]]; then
echo "$JUGADOR2"
fi
if [[ "$1" == "tijera" ]]; then
echo "EMPATE"
fi
;;
esac
}
status() {
clear
echo -e "
Puntos de $JUGADOR1: $JUGADOR1_PUNTOS / $PUNTOS_LIMITE
Puntos de $JUGADOR2: $JUGADOR2_PUNTOS / $PUNTOS_LIMITE
"
}
main() {
clear
echo "Bienvenido!"
read -p "Número de puntos límite: " PUNTOS_LIMITE
read -p "Nombre del Jugador 1: " JUGADOR1
read -p "Nombre del Jugador 2: " JUGADOR2
while true; do
while true; do
status
if [[ "$PUNTOS_LIMITE" == "$JUGADOR1_PUNTOS" ]]; then
echo -e "JUGADOR 1 GANA"
exit
elif [[ "$PUNTOS_LIMITE" == "$JUGADOR2_PUNTOS" ]]; then
echo -e "JUGADOR 2 GANA\n"
exit
fi
read -sp "$JUGADOR1: " ELEC1
T=$(checkAnswer "$ELEC1")
if [[ "$T" == false ]]; then
echo "ENTRADA INVALIDA"
sleep 0.5s
break
fi
echo
read -sp "$JUGADOR2: " ELEC2
T=$(checkAnswer "$ELEC2")
if [[ "$T" == false ]]; then
echo "ENTRADA INVALIDA"
sleep 0.5s
break
fi
RESULTADO=$(checkWinner "$ELEC1" "$ELEC2")
if [[ "$RESULTADO" == "EMPATE" ]]; then
echo -e "\nResultado de la partida: $RESULTADO"
else
echo -e "\nResultado de la partida: $RESULTADO GANA!"
fi
case "$RESULTADO" in
"$JUGADOR1")
JUGADOR1_PUNTOS=$(($JUGADOR1_PUNTOS + 1))
;;
"$JUGADOR2")
JUGADOR2_PUNTOS=$(($JUGADOR2_PUNTOS + 1))
;;
esac
read -sp "Pulse enter para continuar: " lol
done
done
}
main