Add Rock Paper Scissors script
This commit is contained in:
parent
d73ffd06b2
commit
bf6ed0cb21
|
@ -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
|
Loading…
Reference in New Issue