Vamos criar um exemplo de jogo da forca usando BigBashView com HTML, CSS e JavaScript. Ao final de cada partida, o nome do usuário será solicitado e a pontuação será salva em um arquivo chamado **pontos_jogo_forca.txt** na pasta home do usuário.
1. Crie um arquivo chamado **jogo_forca.sh.htm** com o seguinte conteúdo:
#!/bin/bash
echo "<!DOCTYPE html>"
echo "<html>"
echo "<head>"
echo "<title>Jogo da Forca - BigBashView</title>"
echo "<style>"
echo " body { font-family: Arial, sans-serif; }"
echo " #palavra { font-size: 24px; }"
echo " #letras button { margin: 5px; }"
echo "</style>"
echo "<script>"
echo " const palavras = ['casa', 'carro', 'computador', 'teclado', 'janela'];"
echo " let palavra = '';"
echo " let palavraMascarada = '';"
echo " let tentativas = 0;"
echo " let acertos = 0;"
echo " let erros = 0;"
echo " let letrasUsadas = [];"
echo ""
echo " function iniciarJogo() {"
echo " palavra = palavras[Math.floor(Math.random() * palavras.length)];"
echo " palavraMascarada = '_'.repeat(palavra.length);"
echo " tentativas = 0;"
echo " acertos = 0;"
echo " erros = 0;"
echo " letrasUsadas = [];"
echo " document.getElementById('palavra').innerText = palavraMascarada;"
echo " document.getElementById('mensagem').innerText = '';"
echo " }"
echo ""
echo " function verificarLetra(letra) {"
echo " if (letrasUsadas.includes(letra)) {"
echo " document.getElementById('mensagem').innerText = 'Letra já utilizada!';"
echo " return;"
echo " }"
echo " letrasUsadas.push(letra);"
echo " let acertou = false;"
echo " let novaPalavraMascarada = '';"
echo " for (let i = 0; i < palavra.length; i++) {"
echo " if (palavra[i] === letra) {"
echo " novaPalavraMascarada += letra;"
echo " acertos++;"
echo " acertou = true;"
echo " } else {"
echo " novaPalavraMascarada += palavraMascarada[i];"
echo " }"
echo " }"
echo " palavraMascarada = novaPalavraMascarada;"
echo " document.getElementById('palavra').innerText = palavraMascarada;"
echo " tentativas++;"
echo " if (acertou) {"
echo " document.getElementById('mensagem').innerText = 'Acertou!';"
echo " } else {"
echo " erros++;"
echo " document.getElementById('mensagem').innerText = 'Errou!';"
echo " }"
echo " if (acertos === palavra.length) {"
echo " salvarPontuacao();"
echo " }"
echo " }"
echo ""
echo " async function salvarPontuacao() {"
echo " const nome = prompt('Parabéns! Você ganhou! Digite seu nome para salvar a pontuação:');"
echo " if (nome) {"
echo " await fetch('salvar_pontuacao.run?nome=' + encodeURIComponent(nome) + '&pontos=' + encodeURIComponent(tentativas));"
echo " document.getElementById('mensagem').innerText = 'Pontuação salva!';"
echo " } else {"
echo " document.getElementById('mensagem').innerText = 'Pontuação não salva. Nome não fornecido.';"
echo " }"
echo " iniciarJogo();"
echo " }"
echo "</script>"
echo "</head>"
echo "<body onload='iniciarJogo()'>"
echo "<h1>Jogo da Forca</h1>"
echo "<p id='palavra'></p>"
echo "<div id='letras'>"
for letra in {a..z}; do
echo "<button onclick='verificarLetra(\"$letra\")'>$letra</button>"
done
echo "</div>"
echo "<p id='mensagem'></p>"
echo "</body>"
echo "</html>"
2. Crie um arquivo chamado `salvar_pontuacao.run` com o seguinte conteúdo:
#!/bin/bash
echo "$(date) - $nome - $pontos tentativas" >> "$HOME/pontos_jogo_forca.txt"
3. Torne o arquivo **salvar_pontuacao.run** executável:
chmod +x salvar_pontuacao.run
4. Para executar o script no BigBashView, utilize o comando:
bigbashview jogo_forca.sh.htm
Neste exemplo, o arquivo **jogo_forca.sh.htm** contém o código HTML, CSS e JavaScript para criar um jogo da forca simples. Quando o usuário acerta todas as letras da palavra, a função **salvarPontuacao()** é chamada, solicitando o nome do usuário.