Duelo das Cartas Mágicas

Publicado por Xerxes (última atualização em 09/08/2016)

[ Hits: 2.416 ]

Homepage: -

Download magos.sh




Simples "card game" em modo texto (não tem imagem das cartas), cujo objetivo é destruir o oponente usando as magias.

No começo determina quem terá a iniciativa, usando Jan Ken Po (pedra, papel e tesoura).

Depois as cartas são sorteadas e o jogo começa!

  



Esconder código-fonte

#!/bin/bash
#
# magos.sh - Card Game simples em modo texto
#
# Autor   : Xerxes Lins (xerxeslins@gmail.com)
# Site   : vivaolinux.com.br/~xerxeslins
#
# -----------------------------------------------
#
# Este script foi criado quando resolvi testar arrays no bash.
# Acabou se tornando um passa-tempo simples e casual.
# 
# Cada jogador tem um baralho infinito. Cada carta representa
# uma magia ou um tipo de poção. O objetivo é reduzir os pontos
# de vida do oponente à 0 (zero) usando as cartas.
#
# Torne o script executável:
#
# $ chmod +x magos.sh
#
# Execute com:
#
# ./magos.sh
#
# Histórico:
#
# v1.0b 15-07-2016 - versão inicial ainda não foi exaustivamente testado
#
# Licença: GPL
#

function _opcao_invalida {
   clear
   echo "Opção inválida!"
   sleep 1
   clear
   _reload $1
}

function _reload {
   $1
}

function _PQTPC {
   echo "Obs.: pressione qualquer tecla para continuar"
   read -srn1
   $1
}

function _baralho {
   CARTAS=("Raio" "Bola de Fogo" "Cristal de Gelo" "Poção vermelha" "Poção azul" "Escudo de Luz" "Névoa Venenosa" "Explosão Arcana" "Cegueira" "Seta Arcana") 
}

function _sem_mana {
   if [ $PM -lt $1 ]
   then
      echo "Você não tem mana suficiente!

Precisa pelo menos de $1PM para isso.
      "
      sleep 1
      _PQTPC $2
   fi   
}

function _desc_cartas {
   clear
   echo "Descrição de cada carta:

-Raio (comum), dano 10, custo 3
-Bola de Fogo (comum), dano 15, custo 5
-Cristal de Gelo (comum), congela, custo 1
-Poção Vermelha (comum), aumenta 12 pontos de vida
-Poção Azul (comum), aumenta 5 pontos de mana
-Escudo de Luz (rara), protege, custo 1
-Névoa Venenosa (rara), envenena, custo 4
-Explosão Arcana (rara), dano 20 em todos, custo 10
-Cegueira (rara), cega, custo 2
-Seta Arcana (rara), dano 40, custo 20
"   

_PQTPC _usar_carta
}

function _sorteio_cartas {
   CONT=$2
   while [ $CONT -le $1 ]
   do
   CHANCE=$(( ( RANDOM % 100 ) +1 ))
   if [ $CHANCE -le 5 ]
   then
   CARD[$CONT]=${CARTAS[9]}
   elif [ $CHANCE -le 10 ]
      then
         CARD[$CONT]=${CARTAS[8]}
   elif [ $CHANCE -le 15 ]
      then
         CARD[$CONT]=${CARTAS[7]}
   elif [ $CHANCE -le 20 ]
      then
         CARD[$CONT]=${CARTAS[6]}
   elif [ $CHANCE -le 25 ]
      then
         CARD[$CONT]=${CARTAS[5]}
   elif [ $CHANCE -le 40 ]
      then
         CARD[$CONT]=${CARTAS[4]}
   elif [ $CHANCE -le 55 ]
      then
         CARD[$CONT]=${CARTAS[3]}
   elif [ $CHANCE -le 70 ]
      then      
         CARD[$CONT]=${CARTAS[2]}
   elif [ $CHANCE -le 85 ]
      then
         CARD[$CONT]=${CARTAS[1]}
   elif [ $CHANCE -le 100 ]
      then
      CARD[$CONT]=${CARTAS[0]}
   fi
   CONT=$(( $CONT + 1))
   done
}

function _dificuldade {
   clear
   echo "DUELO DAS CARTAS MÁGICAS
   
1 - Sou noob (︶ω︶)
2 - Eu me garanto! ლ(▀̿̿Ĺ̯̿̿▀̿ლ)
"
read -srn1 OPT
   clear
   case $OPT in
   1) DIFICULDADE=4 ;;
   2) DIFICULDADE=0 ;;
   *) _opcao_invalida _dificuldade ;;
   esac
}

function _puxar_carta {
   clear
   if [ "$PUXOU" = "sim" ]
   then
      echo "Você já puxou neste turno!
      "
   elif [ ${#CARD[@]} -lt 5 ]
   then
      echo "Puxando uma carta..."
      PUXOU="sim"
      VAZIO=${#CARD[@]}
      _sorteio_cartas $VAZIO $VAZIO
      sleep 1
      echo "
Você puxou ${CARD[$VAZIO]}
"
   else
      echo "Desculpe!
      
Sua mão já está cheia.
"
   fi
   sleep 2
   _painel
}

function _testa_empate {
   if [ $PV -le 0 ] && [ $PV_INI -le 0 ]
   then
   echo "
   Vocês dois morreram!!! (+__+) (+__+)
   
   FIM DE JOGO
   
"
   exit
   fi
}

function _testa_morte {
   if [ $PV -le 0 ]
   then
   echo "
Você morreu!!! (+__+)
      
FIM DE JOGO

"
   exit
   fi
}

function _testa_morte_ini {
   if [ $PV_INI -le 0 ]
   then
   echo "
Parabéns! Você derrotou o oponente! (*•̀ᴗ•́*)و ̑̑
      
FIM DE JOGO
"
   exit
   fi   
}

function _efeito_carta {
   clear
   INFO=$*
   echo "Você escolheu $*...
   "
   sleep 1
   if [[ $INFO = ${CARTAS[0]} ]]
   then
      _sem_mana 3 _usar_carta
      PM=$(( $PM - 3 ))
      DANO=10
      if [ "$ARMOR_INI" = "1" ]
      then
         DANO=3
         ARMOR_INI="0"
         echo "Você destruiu a proteção do oponente!
         "
         sleep 2
      fi
      echo "Você causou $DANO pontos de dano!
      "
      PV_INI=$(( $PV_INI - $DANO ))
      _testa_morte_ini
   elif [[ $INFO = ${CARTAS[1]} ]]
   then
      _sem_mana 5 _usar_carta
      PM=$(( $PM - 5 ))
      DANO=15
      if [ "$ARMOR_INI" = "1" ]
      then
         DANO=8
         ARMOR_INI="0"
         echo "Você destruiu a proteção do oponente!
         "
         sleep 2
      fi
      echo "Você causou $DANO pontos de dano!
      "
      PV_INI=$(( $PV_INI - $DANO ))
      _testa_morte_ini
   elif [[ $INFO = ${CARTAS[2]} ]]
   then
      _sem_mana 1 _usar_carta
      PM=$(( $PM - 1 ))
      if [ "$ARMOR_INI" = "1" ]
      then
         echo "Você destruiu a proteção do oponente!
         "
         sleep 2
         ARMOR_INI="0"
      else
         echo "Você congelou o oponente!
         "
         CONGELA_INI="1"
      fi
   elif [[ $INFO = ${CARTAS[3]} ]]
   then
      PV=$(( $PV + 12 ))
      echo "Você ganhou 12 pontos de vida!
      "
      if [ $PV -gt 40 ]
      then
         PV=40
      fi
   elif [[ $INFO = ${CARTAS[4]} ]]
   then
      PM=$(( $PM + 5 ))
      echo "Você ganhou 5 pontos de mana!
      "
      if [ $PM -gt 40 ]
      then
         PM=40
      fi
   elif [[ $INFO = ${CARTAS[5]} ]]
   then
      _sem_mana 1 _usar_carta
      PM=$(( $PM - 1 ))
      ARMOR="1"
      echo "Você está protegido!
      "
   elif [[ $INFO = ${CARTAS[6]} ]]
   then
      _sem_mana 4 _usar_carta
      PM=$(( $PM - 4 ))
      GAS_INI="1"
      echo "Você envenenou o oponente!
      "
   elif [[ $INFO = ${CARTAS[7]} ]]
   then
      _sem_mana 10 _usar_carta
      PM=$(( $PM - 10 ))
      echo "((((((BOOOMMM))))))

A explosão atingiu a todos!
"
      sleep 2
      DANO=20
      DANO_INI=20
      if [ "$ARMOR_INI" = "1" ]
      then
         DANO_INI=13
         ARMOR_INI="0"
         echo "Você destruiu a proteção do oponente!
         "
         sleep 2
      fi
      PV_INI=$(( $PV_INI - $DANO_INI ))
      echo "Você causou $DANO_INI pontos de dano!
         "
      if [ "$ARMOR" = "1" ]
      then
         DANO=13
         ARMOR="0"
         echo "Você destruiu sua própria proteção!
         "
         sleep 2
      fi
      PV=$(( $PV - $DANO ))
      echo "Você sofreu $DANO pontos de dano!
      "
      sleep 2
      _testa_empate
      _testa_morte_ini
      _testa_morte
      
   elif [[ $INFO = ${CARTAS[8]} ]]
   then
      _sem_mana 2 _usar_carta
      PM=$(( $PM - 2 ))
      CEGO_INI="1"
      echo "Você envolveu o oponente com uma densa escuridão!
      "
   elif [[ $INFO = ${CARTAS[9]} ]]
   then
      _sem_mana 20 _usar_carta
      PM=$(( $PM - 20 ))
      #clear
      DANO=40
      if [ "$ARMOR_INI" = "1" ]
      then
         DANO=33
         ARMOR_INI="0"
         echo "Você destruiu a proteção do oponente!
         "
      fi
      echo "Você causou $DANO pontos de dano!
      "
      PV_INI=$(( $PV_INI - $DANO ))
      _testa_morte_ini
   fi
   
   #Remove a carta da mão
   unset CARD[$ESCOLHIDA]
   CARD=("${CARD[@]}")
   COUNT=$(( $COUNT + 1 ))
   sleep 2
   _PQTPC _painel
}

function _usar_carta {
      clear
      echo "Escolha uma carta para usar:
      "
      CONT=1
      for i in "${CARD[@]}"
      do
      if [ $CEGO = "0" ]
      then
         echo "$CONT - $i"
      else
         echo "$CONT - [NÃO CONSEGUE VER]"
      fi
      CONT=$(( $CONT + 1 ))
      done
      echo "
v - Voltar
d - Descrição das cartas
"
      read -srn1 OPT
      case $OPT in
      v|V) _painel ;;
      d|D) _desc_cartas ;;
      esac
      #Testa se é número e se está dentro do intervalo da mão
      EHNUMERO='^[0-9]+$'
      if [[ $OPT =~ $EHNUMERO ]] && [[ $OPT -le ${#CARD[@]} ]]
      then
         if [ $COUNT -gt 1 ]
         then
            clear
            echo "Você já usou duas cartas neste turno!
            "
            sleep 1
            _PQTPC _painel
         fi
         if [ $CEGO = "1" ]
         then
            ESCOLHIDA=$(( RANDOM % ${#CARD[@]} ))
         else
            ESCOLHIDA=$(( $OPT - 1 ))
         fi
         _efeito_carta ${CARD[$ESCOLHIDA]}
      else
         _opcao_invalida _usar_carta
      fi
}

function _encerrar {
   MANA_BONUS=$(( 2 - $COUNT ))
   if [ $PUXOU = "não" ]
   then
      MANA_BONUS=$(( $MANA_BONUS + 2 ))
   fi
   clear
   echo "Você encerrou a sua vez.

Mana bônus +$MANA_BONUS
"
   PM=$(( $PM + $MANA_BONUS ))
   if [ $PM -gt 40 ]
      then
         PM=40
   fi
   PUXOU="não"
   VEZ="pc"
   sleep 2
   _turno
}

function _status {
   SNORMAL=""
   SCONGELA=""
   SCEGO=""
   SGAS=""
   SARMOR=""
   if [ $CEGO = "0" ] && [ $GAS = "0" ] && [ $ARMOR = "0" ] && [ $CONGELA = "0" ]
   then
      SNORMAL="normal"
   fi
   if [ $CONGELA = "1" ]
   then
      SCONGELA="congelado"
   fi
   if [ $CEGO = "1" ]
   then
      SCEGO="cego "
   fi
   if [ $GAS = "1" ]
   then
      SGAS="envenenado "
   fi
   if [ $ARMOR = "1" ]
   then
      SARMOR="protegido "
   fi   
   STATUS="$SNORMAL$SCEGO$SGAS$SARMOR$SCONGELA"
   SNORMAL_INI=""
   SCONGELA_INI=""
   SCEGO_INI=""
   SGAS_INI=""
   SARMOR_INI=""
   if [ $CEGO_INI = "0" ] && [ $GAS_INI = "0" ] && [ $ARMOR_INI = "0" ] && [ $CONGELA_INI = "0" ]
   then
      SNORMAL_INI="normal"
   fi
   if [ $CONGELA_INI = "1" ]
   then
      SCONGELA_INI="congelado"
   fi
   
   if [ $CEGO_INI = "1" ]
   then
      SCEGO_INI="cego "
   fi
   if [ $GAS_INI = "1" ]
   then
      SGAS_INI="envenenado "
   fi
   if [ $ARMOR_INI = "1" ]
   
   then
      SARMOR_INI="protegido "
   fi
   STATUS_INI="$SNORMAL_INI$SCEGO_INI$SGAS_INI$SARMOR_INI$SCONGELA_INI"
}

function _barrinha {   
   CHEIO=""
   VAZIO=""
   i=1
   while [ $i -le $1 ]
   do
   CHEIO=$CHEIO▓
   i=$(( $i + 1 ))
   done
   i=$2
   while [ $i -gt $1 ]
   do
   VAZIO=$VAZIO░
   i=$(( $i - 1 ))
   done
   echo "$CHEIO$VAZIO"
}
─
function _barrinha2 {   
   CHEIO=""
   VAZIO=""
   i=1
   while [ $i -le $1 ]
   do
   CHEIO=$CHEIO═
   i=$(( $i + 1 ))
   done
   i=$2
   while [ $i -gt $1 ]
   do
   VAZIO=$VAZIO" "
   i=$(( $i - 1 ))
   done
   echo "$CHEIO$VAZIO"
}

function _painel {   
   _status
   clear
   echo "Turno #$TURNO"
LIFEBAR_INI=$(_barrinha $PV_INI 40)
MANABAR_INI=$(_barrinha2 $PM_INI 40)
LIFEBAR=$(_barrinha $PV 40)
MANABAR=$(_barrinha2 $PM 40)
_distribuicao $CARTAS_INI storage
PAINEL_CARTAS_INI=$NA_MAO
_distribuicao ${#CARD[@]} storage
PAINEL_CARTAS=$NA_MAO

echo "
Oponente : $STATUS_INI $AJUDASTATUS_INI
$LIFEBAR_INI $PV_INI $AJUDAVIDA_INI
$MANABAR_INI $PM_INI $AJUDAMANA_INI
$PAINEL_CARTAS_INI $AJUDACARTAS_INI

Você : $STATUS $AJUDASTATUS
$LIFEBAR $PV $AJUDAVIDA
$MANABAR $PM $AJUDAMANA
$PAINEL_CARTAS $AJUDACARTAS


1 - Puxar uma carta do baralho
2 - Ver/Usar cartas
3 - Encerrar

a - $AJ Ajuda"
   read -srn1 OPT
   case $OPT in
   1) _puxar_carta ;;
   2) _usar_carta ;;
   3) _encerrar ;;
   a) _ajuda ;;
   *) _opcao_invalida _painel
   esac
}

function _vez_jogador {
   CEGO_INI="0"
   COUNT_INI=0
   PUXOU_INI="não"
   clear
   echo "Sua vez!
   "
   sleep 2
   if [ $GAS = "1" ] && [ $GASOSO = "0" ]
   then
      GASOSO="1"
      PV=$(( $PV - 3))
      echo "Vida -3 (envenenado)
      "
      sleep 2
      _testa_morte
   fi
   if [ $CONGELA = "1" ]
   then
      echo "Não pode agir! (congelado)
      "
      sleep 2
      CONGELA="0"
      VEZ="pc"
      _turno
   fi
   if [ $CEGO = "1" ]
   then
      echo "Suas cartas foram viradas e embaralhadas! (cego)
      "
      sleep 4
   fi
   _painel
}

function _usar_carta_ini {
   sleep 2
   CHANCE=$(( ( RANDOM % 100 ) +1 ))
   if [ $CHANCE -le 5 ] && [ $PM_INI -ge 20 ]
   then
      echo "Usou ${CARTAS[9]}!
      "
      sleep 2
      PM_INI=$(( $PM_INI - 20 ))
      DANO=40
      if [ "$ARMOR" = "1" ]
      then
         DANO=33
         ARMOR="0"
         echo "Oponente destruiu sua proteção!
         "
         sleep 2
      fi
      PV=$(( $PV - $DANO ))
      echo "Você sofreu $DANO pontos de dano!
      "
      sleep 2
      _testa_morte
   elif [ $CHANCE -le 10 ] && [ $PM_INI -ge 2 ]
      then
      echo "Usou ${CARTAS[8]}!
      "
      sleep 2
      CEGO="1"
      PM_INI=$(( $PM_INI - 2 ))
      echo "Você foi envolvido por uma densa escuridão!
      "
      sleep 2
   elif [ $CHANCE -le 15 ] && [ $PM_INI -gt 13 ] && [ $PV_INI -ge $PV ]
      then
      PM_INI=$(( $PM_INI - 10 ))
      echo "Usou ${CARTAS[7]}!
      "
      sleep 2
      echo "((((((BOOOMMM))))))
         
A explosão atingiu a todos!
"
      sleep 2   
      DANO=20
      DANO_INI=20
      if [ $ARMOR = "1" ]
      then
         DANO=13
         ARMOR="0"
         echo "Oponente destruiu sua proteção!
         "
         sleep 2
      fi
      PV=$(( $PV - $DANO ))
      echo "Você sofreu $DANO pontos de dano!
      "
      sleep 2
      if [ $ARMOR_INI = "1" ]
      then
         DANO_INI=13
         ARMOR_INI="0"
         sleep 2
         echo "Oponente destrui a própria proteção!
         "
         sleep 2
      fi
      PV_INI=$(( $PV_INI - $DANO_INI ))
      echo "Oponente sofreu $DANO_INI pontos de dano!
      "
      sleep 2
      _testa_morte
   elif [ $CHANCE -le 20 ] && [ $GAS = "0" ]
      then
      echo "Usou ${CARTAS[6]}!
      "
      sleep 2
      GAS="1"
      echo "Você foi envenenado!
      "
      sleep 2
   elif [ $CHANCE -le 25 ] && [ $ARMOR_INI = "0" ] && [ $PM_INI -ge 2 ]
      then
      echo "Usou ${CARTAS[5]}!
      "
      sleep 2
      ARMOR_INI="1"
      PM_INI=$(( $PM_INI - 2 ))
      echo "Oponente está protegido!
      "
      sleep 2
   elif [ $CHANCE -le 40 ] && [ $PM_INI -lt 26 ]
      then
      echo "Usou ${CARTAS[4]}!
      "
      sleep 2
      PM_INI=$(( $PM_INI + 5 ))
      echo "Oponente ganhou 5 pontos de mana!
      "
      if [ $PM_INI -gt 40 ]
      then
         PM_INI=40
      fi
      sleep 2
   elif [ $CHANCE -le 55 ] && [ $PV_INI -lt 33 ]
      then
      echo "Usou ${CARTAS[3]}!
      "
      sleep 2
      PV_INI=$(( $PV_INI + 12 ))
      echo "Oponente ganhou 12 pontos de vida!
      "
      if [ $PV_INI -gt 40 ]
      then
         PV_INI=40
      fi
      sleep 2
   elif [ $CHANCE -le 70 ] && [ $PM_INI -le 5 ] && [ $CONGELA = "0" ]
      then
      PM_INI=$(( $PM_INI - 5 )) 
      echo "Usou ${CARTAS[2]}!
      "
      sleep 2
      if [ "$ARMOR" = "1" ]
      then
         ARMOR="0"
         echo "Oponente destruiu sua proteção!
         "
         sleep 2
      else
         CONGELA="1"
         echo "Você está congelado!
         "
         sleep 2
      fi
   elif [ $CHANCE -le 85 ] && [ $PM_INI -ge 5 ]
      then
      PM_INI=$(( $PM_INI - 5 ))
      echo "Usou ${CARTAS[1]}!
      "
      sleep 2
      DANO=15
      if [ "$ARMOR" = "1" ]
      then
         DANO=8
         ARMOR="0"
         echo "Oponente destruiu sua proteção!
         "
         sleep 2
      fi
      echo "Você sofreu $DANO pontos de dano!
      "
      sleep 2
      PV=$(( $PV - $DANO ))
      sleep 2
      _testa_morte
   elif [ $CHANCE -le 100 ] && [ $PM_INI -ge 3 ]
      then
      PM_INI=$(( $PM_INI - 3 ))
      echo "Usou ${CARTAS[0]}!
      "
      sleep 2
      DANO=10
      if [ "$ARMOR" = "1" ]
      then
         DANO=3
         ARMOR="0"
         echo "Oponente destruiu sua proteção!
         "
         sleep 2
      fi
      PV=$(( $PV - $DANO ))
      echo "Você sofreu $DANO pontos de dano!
      "
      sleep 2
      _testa_morte
   
   else
      echo "Em dúvida... (¯―¯٥)
"
      sleep 2
      _IA
   fi
   echo "Pensando... ( ゚ー゚) º0
   "
   sleep 2
   COUNT_INI=$(( $COUNT_INI + 1 ))
   CARTAS_INI=$(( $CARTAS_INI - 1))
   _IA
}

function _encerra_ini {
   MANA_BONUS=$(( 2 - COUNT_INI ))
   if [ $PUXOU_INI = "não" ]
   then
      MANA_BONUS=$(( $MANA_BONUS + 2 ))
   fi
   echo "Oponente encerrou!

Mana bônus +$MANA_BONUS
   "
   sleep 2
   PM_INI=$(( $PM_INI + MANA_BONUS ))
   if [ $PM_INI -gt 40 ]
      then
         PM=40
   fi
   _PQTPC _vez_jogador
}

function _IA {
   if [ $CARTAS_INI -lt 5 ] && [ $PUXOU_INI = "não" ]
   then
      CARTAS_INI=$(( $CARTAS_INI + 1 ))
      PUXOU_INI="sim"
      echo "Oponente puxou uma carta!
      "
   fi
    DECISION=$(( RANDOM % 10 ))
    if [ $DECISION -le $DIFICULDADE ] || [ $COUNT_INI -gt 1 ] || [ $CARTAS_INI -eq 0 ]
    then
      _encerra_ini
   else
      _usar_carta_ini
   fi
}

function _vez_pc {
   CEGO="0"
   GASOSO="0"
   COUNT=0
   clear
   echo "Vez do oponente!
   "
   sleep 1
   if [ $GAS_INI = "1" ]
   then
      PV_INI=$(( $PV_INI - 3))
      echo "Vida -3 (envenenado)
      "
      sleep 2
      _testa_morte_ini
   fi
   
   if [ $CONGELA_INI = "1" ]
   then
      echo "Não pode agir! (congelado)
      "
      sleep 2
      CONGELA_INI="0"
      VEZ="jogador"
      _turno
   fi
   if [ $CEGO_INI = "1" ]
   then
      echo "O oponente não consegue escolher bem as cartas! (cego)
      "
      sleep 2
   fi   
   _IA
}

function _distribuicao {
   unset NA_MAO
   i=1
   while [ $i -le $1 ]
   do
   if [ $2 = "show" ]
   then
      echo -ne " 🃏 "
      sleep 0.3
   elif [ $2 = "storage" ]
   then
      NA_MAO="$NA_MAO 🃏 "
   fi
   i=$(( $i + 1 ))
   done   
}

function _ajuda {
   if [ $AJ = "(✔)" ]
   then
   AJ="( )"
   unset AJUDATURNO
   unset AJUDAVIDA
   unset AJUDAMANA
   unset AJUDACARTAS
   unset AJUDASTATUS
   unset AJUDAVIDA_INI
   unset AJUDAMANA_INI
   unset AJUDACARTAS_INI
   unset AJUDASTATUS_INI
   else
   AJ="(✔)"
   AJUDATURNO="← contador de turnos"
   AJUDAVIDA="← sua vida"
   AJUDAMANA="← seu mana"
   AJUDACARTAS="← suas cartas"
   AJUDASTATUS="← seu status"   
   AJUDAVIDA_INI="← vida do oponente"
   AJUDAMANA_INI="← mana do oponente"
   AJUDACARTAS_INI="← cartas do oponente"
   AJUDASTATUS_INI="← status do oponente"
   fi
   _painel
}

function _turno {   
   TURNO=$(( $TURNO + 1 ))
   if [ $TURNO -eq 1 ]
   then   
   clear
   echo "Distribuindo cartas aleatoriamente...
   "
   sleep 2
   _sorteio_cartas 4 0 #cartas de 0 a 4 iniciando pelo contador 0
   CARTAS_INI=5
   echo "Para você:
   "
   sleep 1
   _distribuicao ${#CARD[@]} show
   echo "
   "
   sleep 1
   echo "Para o oponente:
   "
   sleep 1
   _distribuicao $CARTAS_INI show
   sleep 2
   echo "
   "
   echo "Que vença o melhor! ƪ(˘⌣˘)ʃ"
   sleep 2
   fi   
   if [ $VEZ = "jogador" ]
   then
      _vez_jogador
   elif [ $VEZ = "pc" ]
   then
      _vez_pc
   fi   
}

function _iniciativa {
   clear
   echo "Iniciativa:

o → Pedra       s → Papel       x → Tesoura
"
   read -srn1 OPT
   clear
   case $OPT in
   "o"|"O") OPT="Pedra" && WIN="Tesoura" && LOSE="Papel" ;;
   "s"|"S") OPT="Papel" && WIN="Pedra" && LOSE="Tesoura" ;;
   "x"|"X") OPT="Tesoura" && WIN="Papel" && LOSE="Pedra" ;;
   "v"|"V") OPT="TRAPACEOU" ;; #SECRET 
   *) _opcao_invalida _iniciativa ;;
   esac
   echo "Jan"
   sleep 1
   echo "ken"
   sleep 1
   echo "PO!!!"
   sleep 2
   clear
   PPT=$(( ( RANDOM % 3 ) + 1 ))
   if [ $OPT = "TRAPACEOU" ]
   then
      PPT=1
   fi
   if [ $PPT -eq 1 ]
   then
   echo "(Você) $OPT VS $WIN (Oponente)
   "
   sleep 2
   echo "A iniciativa é sua! ٩(^ᴗ^)۶
   "
   VEZ="jogador"
   sleep 2
   elif [ $PPT -eq 2 ]
   then 
   echo "(você) $OPT VS $OPT (Oponente)
   "
   sleep 1
   echo "Empatou! Jogue novamente.
   "
   sleep 1
   _PQTPC _iniciativa
   else
   echo "(você) $OPT VS $LOSE (Oponente)
   "
   sleep 1
   echo "Você perdeu! O oponente tem a iniciativa.. (╥_╥)
   "
   VEZ="pc"
   sleep 2
   fi
   TURNO=0
   PV=40
   PM=10
   PV_INI=40
   PM_INI=10
   ARMOR="0"
   ARMOR_INI="0"
   CONGELA="0"
   CONGELA_INI="0"
   GAS="0"
   GAS_INI="0"
   PUXOU="não"
   PUXOU_INI="não"
   COUNT_INI=0
   COUNT=0
   CEGO="0"
   CEGO_INI="0"
   _PQTPC _turno
}
#cria baralho
_baralho
#_vez_jogador
#dificuldade
_dificuldade
#jan-ken-po
_iniciativa

Scripts recomendados

Script para geração de mala direta usando svg

Mantendo hora do servidor atualizada com NTP

Backup de bases de dados individuais do PostgreSQL

Calcula período entre data inicial e data final

[ResuLinux] Discador Claro 3G em dialog


  

Comentários
[1] Comentário enviado por Patrick03 em 13/08/2016 - 20:32h

Simplesmente épico...!

---------------------------------------
Corrija-me quando necessário!
---------------------------------------

[2] Comentário enviado por xerxeslins em 13/08/2016 - 21:15h


[1] Comentário enviado por Patrick03 em 13/08/2016 - 20:32h

Simplesmente épico...!

---------------------------------------
Corrija-me quando necessário!
---------------------------------------


Obrigado! :D


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts