#!/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