Acerte a carta
Publicado por Xerxes (última atualização em 01/06/2016)
[ Hits: 3.498 ]
Homepage: -
Na sua frente há três cartas viradas. Duas delas tem estrelas brancas e apenas uma tem estrela preta.
Você deve adivinhar onde está a carta com a estrela preta.
Após escolher sua carta, uma carta de estrela branca será revelada. Cabe a você, então, escolher se continua com a sua primeira escolha ou se troca de carta.
Sim, esta é uma variação do problema de Monty Hall. Mostra na prática se é mais vantajoso, ou não, trocar de carta.
#!/bin/bash # # ---------------------------------------------------------------------- # Na sua frente há três cartas viradas. Duas delas tem estrelas brancas e # apenas uma tem estrela preta. # # Você deve adivinhar onde está a carta com a estrela preta. # # Após escolher sua carta, uma carta de estrela branca será revelada. # Cabe a você, então, escolher se continua com a sua primeira escolha ou # Se troca de carta. # # Sim, esta é uma variação do problema de Monty Hall. # Mostra na prática se é mais vantajoso, ou não, trocar de carta. # # ---------------------------------------------------------------------- # # Autor: Xerxes Lins (xerxeslins@gmail.com) vivaolinux.com.br/~xerxeslins # # Versão 1.0b - 25/04/2016 # # ---------------------------------------------------------------------- # # Define qual das três é a carta certa function _certa { CERTA=$(( ( RANDOM % 3 ) + 1 )) } # "Redesenha" as cartas function _atualiza_cartas { DESENHO=" $FIG_CARTA1 $FIG_CARTA2 $FIG_CARTA3" } # Vira todas as cartas para baixo function _vira_cartas { FIG_CARTA1="🂠" FIG_CARTA2="🂠" FIG_CARTA3="🂠" } # Vira todas as cartas para cima function _vira_cartas2 { FIG_CARTA1="🃟" FIG_CARTA2="🃟" FIG_CARTA3="🃟" } # Ao final do jogo exibe sua taxa de sucesso function _stats { # Com contribuição do Lcavalheiro para obter casas decimais VIT_PERCENT=$(bc -l <<< "scale=2 ; $WIN_TROCA / $TOTAL_ROLLS * 100 ") #LOS_PERCENT=$(( ( $LOSE_TROCA / $LOSE ) * 100 )) clear echo "De todas as suas tentativas ($TOTAL_ROLLS), $VIT_PERCENT% dos acertos ocorreram quando você trocou de carta." #echo "De todas os seus erros, $LOS_PERCENT% ocorreram quando você trocou de carta." } # Fim do jogo function _finalizou { clear echo "" echo "$FRASE_FINAL" echo "" echo "A carta certa era a de número $CERTA!" _atualiza_cartas echo "" echo "$DESENHO" echo "" ERRADA=0 echo "Continuar? (S/*)" read CONT case $CONT in s|S) NOVO_JOGO=0 && TROCA=0 && _vira_cartas && _jogo ;; *) _stats && exit;; esac } # Verifica se a carta escolhida é a certa function _checa { # Contador de tentativas TOTAL_ROLLS=$(( $TOTAL_ROLLS + 1 )) # Verifica se houve troca if [ $OLD_CARD != $ESCOLHIDA ] then TROCA=yes fi # Desvira todas e "pinta" a certa _vira_cartas2 if [ $CERTA = 1 ] then FIG_CARTA1="🃏" elif [ $CERTA = 2 ] then FIG_CARTA2="🃏" else FIG_CARTA3="🃏" fi # Acertou ou errou? if [ $ESCOLHIDA -eq $CERTA ] then FRASE_FINAL="Você acertou!!!" WIN=$(( $WIN + 1 )) # Se teve troca, lembra disso if [ $TROCA == yes ] then WIN_TROCA=$(( $WIN_TROCA + 1 )) fi else FRASE_FINAL="Você errou!!!" LOSE=$(( $LOSE + 1 )) # Se teve troca, lembra disso if [ $TROCA == yes ] then LOSE_TROCA=$(( $LOSE_TROCA + 1 )) fi fi _finalizou } # Após escolher a carta, pergunta se quer trocar function _escolha1() { clear _vira_cartas # Se o jogo for "novo" então lembra se houve troca if [ $NOVO_JOGO -eq 1 ] then OLD_CARD=$1 fi # carta escolhida pelo jogador ESCOLHIDA=$1 # Carta errada ERRADA=1 while [ "$ERRADA" = "$ESCOLHIDA" ] || [ "$ERRADA" = "$CERTA" ]; do ERRADA=$(( ( RANDOM % 3 ) + 1 )) done # Carta que "sobra" SOBRA=1 while [ "$SOBRA" = "$ESCOLHIDA" ] || [ "$SOBRA" = "$ERRADA" ]; do SOBRA=$(( ( RANDOM % 3 ) + 1 )) done # Desvira a carta errada if [ $ERRADA = 1 ] then FIG_CARTA1="🃟" elif [ $ERRADA = 2 ] then FIG_CARTA2="🃟" else FIG_CARTA3="🃟" fi _atualiza_cartas echo " Você escolheu a carta $ESCOLHIDA. Revelação: A carta certa NÃO É a carta $ERRADA $DESENHO Gostaria de trocar para a carta $SOBRA? (S/N)" read RESPOSTA case $RESPOSTA in s|S) ESCOLHIDA=$SOBRA && _checa ;; n|N) _checa ;; *) clear && echo "Opção inválida. Saindo..." && exit ;; esac } # Jogo principal function _jogo { # Contador para saber se é novo NOVO_JOGO=$(( $NOVO_JOGO + 1 )) clear _atualiza_cartas echo " Onde está a carta certa (🃏)? Cartas (1, 2 e 3): $DESENHO Escolha uma carta... ________________________________ Acertos totais $WIN Acertos após trocar de carta $WIN_TROCA Erros totais $LOSE Erros após trocar de carta $LOSE_TROCA (X e Enter para sair)" read CARD case $CARD in 1|2|3) _escolha1 $CARD ;; x|X) _stats && exit ;; *) clear && echo "Opção inválida. Escolha 1, 2 ou 3." && sleep 2 && _jogo ;; esac } # Função do começo function _start { _vira_cartas NOVO_JOGO=0 TOTAL_ROLLS=0 ERRADA=0 ESCOLHIDA=0 WIN=0 LOSE=0 WIN_TROCA=0 LOSE_TROCA=0 _certa _jogo } # Começa o jogo _start
APACHE - Script para gerenciar usuários do apache
Script simples para verificar usuários logados na maquina e as postas abertas
Removendo primeiras ou últimas linhas do arquivo
Script de backup para MySQL - JonMyBackup
Nenhum comentário foi encontrado.
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Remoção de propaganda com o programa Comskip[AJUDA] (1)
Linux Lite Demorando Muito Para Ligar (0)
PC não liga no filtro de linha (3)