Script Jogo de Perguntas

mattknobmattknob Mateus Knob
editado dezembro 2011 em Programação e Scripts
Fiz este script para meu curso na faculdade e fiquei com dó de apenas arquivá-lo, então decidi postar aqui para os que, assim como eu, estão começando no mundo linux e para que possam ter uma idéia da aplicabilidade do shell script. Sintam-se a vontade para copiar, modificar e quem sabe usar também em vossos cursos :D

#!/bin/bash
# Criado por Mateus Knob
# Dezembro de 2011

# INTRODUÇÃO DO JOGO
clear
printf "\n"
echo "| Jogo de Perguntas CTI 2011 |"
printf "\n"
echo "Digite 1 para conhecer as regras do jogo"
echo "Digite 2 para começar o jogo"
read opcao
case "$opcao" in
"1")
printf "\n"
echo "REGRAS E COMANDOS DO JOGO"
echo "1) O jogador deve responder às 5 perguntas do tema selecionado"
echo "2) Para cada resposta certa, o jogador ganha 20 pontos"
echo "3) Para cada resposta errada, o jogador perde 10 pontos"
echo "4) A resposta deve ser apenas o número da alternativa correta"
echo "5) Para sair do jogo, pressione CTRL+C a qualquer momento"
printf "\n"
echo "Pressione ENTER para voltar à tela anterior"
read voltar
if [ $voltar -eq ]; then
./jogo.sh
else
echo "Comando Inválido"
fi
;;

# COMEÇO DO JOGO
"2")
printf "\n"
echo "Digite seu nome:"
read nome
printf "\n"
echo "$nome, escolha o tema das perguntas:"
printf "\n"
echo "1) Banco de Dados"
echo "2) Sistemas Operacionais de Linha de Comando"
echo "3) Algoritmos e Lógica de Programação"
printf "\n"
echo "Tema escolhido:"
read tema
;;
*)
echo "Opção Inválida"]
;;
esac
pontos=0
case "$tema" in

# PERGUNTAS BANCO DE DADOS
"1")
printf "\n"

# PRIMEIRA PERGUNTA
echo "Primeira Pergunta:"
printf "\n"
echo "Os campos VARCHAR servem para:"
echo "1) Dígitos numéricos"
echo "2) Dígitos com casas decimais"
echo "3) Digítos alfanuméricos"
echo "4) Data"
echo "Sua resposta:"
read r1
if [ $r1 -eq 3 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
printf "\n"

# SEGUNDA PERGUNTA
echo "Segunda Pergunta:"
printf "\n"
echo "A organização de um banco de dados é feito através de:"
echo "1) Linhas"
echo "2) Tabelas"
echo "3) Campos"
echo "4) Códigos"
echo "Sua resposta:"
read r2
if [ $r2 -eq 2 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
printf "\n"

# TERCEIRA PERGUNTA
echo "Terceira Pergunta:"
printf "\n"
echo "O conjunto de campos formam um(a):"
echo "1) Linha"
echo "2) Atributo"
echo "3) Banco"
echo "4) Registro"
echo "Sua resposta:"
read r3
if [ $r3 -eq 4 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
printf "\n"

# QUARTA PERGUNTA
echo "Quarta Pergunta:"
printf "\n"
echo "Em que consiste a primeira forma normal?"
echo "1) Retirar das tabelas os elementos dependentes"
echo "2) Retirar das tabelas os elementos compostos"
echo "3) Retirar das tabelas os elementos repetitivos"
echo "4) Retirar das tabelas os elementos com campos vazios"
echo "Sua resposta:"
read r4
if [ $r4 -eq 3 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
printf "\n"

# QUINTA PERGUNTA
echo "Quinta Pergunta:"
printf "\n"
echo "Quais dos bancos de dados abaixo é gratuito?"
echo "1) PostgreSQL"
echo "2) SQL Server"
echo "3) Oracle"
echo "4) SyBase"
echo "Sua resposta:"
read r5
if [ $r5 -eq 1 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
;;

# PERGUNTAS SISTEMAS OPERACIONAIS DE LINHA DE COMANDO
"2")
printf "\n"

# PRIMEIRA PERGUNTA
echo "Primeira Pergunta:"
printf "\n"
echo "Quem desenvolveu o primeiro sistema Linux?"
echo "1) Steve Jobs"
echo "2) Celso Roth"
echo "3) Linus Torvalds"
echo "4) Bill Gates"
echo "Sua resposta:"
read r1
if [ $r1 -eq 3 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
printf "\n"

# SEGUNDA PERGUNTA
echo "Segunda Pergunta:"
printf "\n"
echo "No Linux, para que serve o comando chmod?"
echo "1) Criar diretórios"
echo "2) Alterar permissões"
echo "3) Copiar arquivos"
echo "4) Apagar o sistema operacional"
echo "Sua resposta:"
read r2
if [ $r2 -eq 2 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
printf "\n"

# TERCEIRA PERGUNTA
echo "Terceira Pergunta:"
printf "\n"
echo "Qual Sistema Operacional abaixo não faz parte do projeto GNU/Linux?"
echo "1) Mandriva"
echo "2) Ubuntu"
echo "3) Open SuSE"
echo "4) Windows XP"
echo "Sua resposta:"
read r3
if [ $r3 -eq 4 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
printf "\n"

# QUARTA PERGUNTA
echo "Quarta Pergunta:"
printf "\n"
echo "Arquivos .tar são arquivos:"
echo "1) Ocultos"
echo "2) Corrompidos"
echo "3) Compactados"
echo "4) Sem permissões de acesso"
echo "Sua resposta:"
read r4
if [ $r4 -eq 3 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
printf "\n"

# QUINTA PERGUNTA
echo "Quinta Pergunta:"
printf "\n"
echo "Não é uma interface gráfica:"
echo "1) Ubuntu"
echo "2) KDE"
echo "3) Gnome"
echo "4) Unity"
echo "Sua resposta:"
read r5
if [ $r5 -eq 1 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
;;

# PERGUNTAS ALGORITMOS E LOGICA DE PROGRAMAÇÃO
"3")
printf "\n"

# PRIMEIRA PERGUNTA
echo "Primeira Pergunta:"
printf "\n"
echo "Uma variável String serve para:"
echo "1) Números reais"
echo "2) Números inteiros"
echo "3) Texto"
echo "4) Indefinido"
echo "Sua resposta:"
read r1
if [ $r1 -eq 3 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
printf "\n"

# SEGUNDA PERGUNTA
echo "Segunda Pergunta:"
printf "\n"
echo "No Delphi, o comando FloatToStr serve para transformar"
echo "1) Número real para número inteiro"
echo "2) Número real para texto"
echo "3) Texto para número real"
echo "4) Data para texto"
echo "Sua resposta:"
read r2
if [ $r2 -eq 2 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
printf "\n"

# TERCEIRA PERGUNTA
echo "Terceira Pergunta:"
printf "\n"
echo "Qual o nome da propriedade que altera o nome de uma TEdit?"
echo "1) Show"
echo "2) Read"
echo "3) Caption"
echo "4) Name"
echo "Sua resposta:"
read r3
if [ $r3 -eq 4 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
printf "\n"

# QUARTA PERGUNTA
echo "Quarta Pergunta:"
printf "\n"
echo "O Delphi é um software baseado na linguagem:"
echo "1) Asp.Net"
echo "2) C++"
echo "3) Pascal"
echo "4) Java"
echo "Sua resposta:"
read r4
if [ $r4 -eq 3 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
printf "\n"

# QUINTA PERGUNTA
echo "Quinta Pergunta:"
printf "\n"
echo "A grafia que representa DIFERENÇA no Delphi é:"
echo "1) <>"
echo "2) >="
echo "3) <="
echo "4) :="
echo "Sua resposta:"
read r5
if [ $r5 -eq 1 ]; then
echo "Sua resposta está..."
sleep 3
echo "CORRETA!"
pontos=`expr $pontos + 20`
sleep 3
else
echo "Sua resposta está..."
sleep 3
echo "INCORRETA!"
pontos=`expr $pontos - 10`
sleep 3
fi
;;

# FINAL DO JOGO
esac
printf "\n"
echo "Parabéns $nome, você fez $pontos pontos!!!!!!"
printf "\n"
echo "Deseja jogar novamente?"
echo "1) Sim 2)Não"
read again
if [ $again -eq 1 ]; then
./jogo.sh
else
printf "\n"
echo "Tchau!"
sleep 3
fi
Entre ou Registre-se para fazer um comentário.