Você está na página 1de 4

Universidade Federal do Rio Grande do Norte - UFRN

Escola de Ciências e Tecnologia - ECT


Lógica de Programação

Projeto de Laboratório de Lógica de Programação


Turma 5 - 2017.2
Prof. Einstein Santos e Rômulo Nunes

O presente documento tem o objetivo de esclarecer o projeto do laboratório de Lógica


de Programação(LoP).
Plágio será punido com nota zero.

Jogo: Mastermind
Mastermind é um jogo de tabuleiro, inventado por Mordechai Meirowitz, cujo
objetivo é a descoberta de uma senha através de previsões e de respostas obtidas em
tentativas anteriores. Inicialmente, o jogo foi lançado para ser jogado por duas pessoas,
porém já se encontra na internet aplicativos que permitem ao usuário jogar contra o
computador, tentando descobrir uma senha gerada randomicamente.
O jogo é composto por um conjunto de pinos coloridos (para a formação da senha e
dos palpites), um conjunto de pinos menores (brancos e pretos) e um conjunto de fileiras
(equivalente ao número de tentativas que o usuário tem para descobrir a senha escondida).
Para que o jogo comece, é necessário que uma senha, formada pelos pinos coloridos,
seja determinada e escondida (seja pelo computador ou por outro jogador). A cada palpite de
senha, o usuário recebe como resposta uma quantidade de pinos brancos e pretos para que o
mesmo possa verificar a qualidade da sua previsão e assim, ir melhorando a cada tentativa o
seu palpite. Para cada cor colocada exatamente no canto correto, o jogador recebe um pino da
cor branca. Os pinos pretos são distribuídos quando uma cor que o usuário colocou no seu
palpite está na senha, porém na posição errada.
A vitória ao jogador é concedida quando o mesmo obtém uma quantidade de pinos
brancos igual ao tamanho da senha. Caso o número de tentativas (fileiras) estoure, o jogador
perde a partida, não conseguindo descobrir qual senha foi inicialmente escondida.
Mastermind foi um dos jogos de maior sucesso da década de 70 tendo vendido mais
de 50 milhões de unidades em 80 países. Para vencer o jogo é necessário raciocínio lógico,
para que através das tentativas anteriores, o jogador possa gerar uma previsão de melhor
qualidade para o seu próximo palpite.
Universidade Federal do Rio Grande do Norte - UFRN
Escola de Ciências e Tecnologia - ECT
Lógica de Programação

Observações sobre o jogo a ser implementado


 Senhas devem ser geradas aleatoriamente
 Não pode haver repetição na senha gerada
 O usuário pode testar senhas com repetição
 Primeiro devem ser mostrados os pinos brancos e depois os pretos (assim como
mostra o a imagem).
 Pode usar números ou caracteres em vez de „bolas coloridas‟ para compor a senha.

Equipe de Desenvolvimento
O trabalho será desenvolvido por uma equipe de no máximo 3 alunos, em que 1 deles
será o líder. Para formar uma equipe, um dos integrantes deve publicar no fórum “Formação
de grupos para o projeto”, no SIGAA, uma mensagem contendo o nome e a subturma de cada
integrante, especificando quem é o líder de cada equipe.
Ex:
Rômulo Nunes – 5D (Líder)
Einstein Santos – 5A
As equipes poderão ser criadas e modificadas até o dia 06/11. Para isso basta que o
aluno substitua a publicação no fórum (apagando a antiga e criando uma nova). Se houverem
publicações conflitantes (o mesmo aluno em duas equipes), valerá a mais recente. Após o dia
06/11, as equipes não poderão sofrer alterações. Qualquer aluno sem equipe; ou uma equipe
com o número de participantes maior que 3; ou em equipe sem líder; poderá receber a nota 0
(zero) no projeto. Qualquer problema na formação dos grupos, tratar pessoalmente com o
professor.
As equipes podem ser formadas por alunos de diferentes subturmas. O fórum de
formação também pode ser utilizado para buscar por integrantes para a equipe. NÃO SERÁ
PERMITIDA A FORMAÇÃO DE GRUPOS DE DIFERENTES TURMAS.
Universidade Federal do Rio Grande do Norte - UFRN
Escola de Ciências e Tecnologia - ECT
Lógica de Programação

O projeto
O projeto consiste em desenvolver o jogo Torre de Hanoi para ser jogado por um
usuário qualquer. O jogo deve possuir as seguintes funcionalidades:
Funcionalidades básicas:
1. Tela inicial do jogo (5%): A tela inicial do jogo deve conter um menu de
opções, que permite o usuário escolher entre as opções „Instruções‟, „Jogar‟ e
„Sair‟.
2. Tela de instruções do jogo (5%): Tela contendo as instruções de como jogar
o Mastermind.
3. Nível de dificuldade (10%): Quando o usuário escolher a opção „Jogar‟, deve
ser direcionado para uma tela onde escolherá o nível do jogo. Existem três
níveis de jogo:

4. Lógica do jogo (30%): A lógica do jogo, geração da senha aleatória,


marcação dos pinos brancos e pretos.
5. Pontuação do jogador (10%): A pontuação do jogador deve ser marcada de
acordo com a quantidade de tentativas que o mesmo usou para adivinhar a
senha.
6. Jogar Novamente (10%): Após a finalização de uma partida, o jogo deve
perguntar se o usuário deseja jogar novamente ou sair do jogo, caso o jogador
opte por uma nova partida, o jogo deve novamente apresentar as opções do
nível de dificuldade.
7. Interação com o jogador e jogabilidade (10%): No começo do jogo, deve
ser perguntado o nome de cada jogador, e durante todo o game, o programa
deve se referenciar ao jogador pelo nome.
8. Modo multiplayer (20%): Permitir que dois jogadores disputem uma partida.
Um jogador jogará após o outro, e ao final do programa deverá ser mostrado o
nome do vencedor (aquele que completar o jogo com menos movimentos).
Funcionalidades extras:
1. Pontuação pelo tempo (10%): Marcar a pontuação através do tempo que o
usuário levou para concluir o jogo.
2. Interface gráfica (10%): Prover uma interface gráfica ao jogo.

Observação: A implementação do projeto deve ser gradativa e a medida que novas etapas
forem concluídas as anteriores devem ser mantidas. Ao final da implementação, depois de
concluídas todas as etapas, o jogo deverá funcionar com todos os requisitos especificados em
cada etapa.
Universidade Federal do Rio Grande do Norte - UFRN
Escola de Ciências e Tecnologia - ECT
Lógica de Programação

Entrega
As datas de entrega estão definidas no cronograma disponível neste documento.
As funcionalidades extras só serão corrigidas caso todas as funcionalidades básicas
tenham sido entregues. Também é necessário enviar um relatório acerca do projeto. Esse
relatório deve seguir o modelo disponibilizado no SIGAA. Para que o relatório fique
completo é importante que ele seja escrito durante a implementação de cada passo do projeto.
As tarefas, no SIGAA, serão configuradas para permitir reenvio. Ou seja, a equipe
pode enviar o código fonte e/ou relatório várias vezes enquanto estiver dentro do prazo,
fazendo valer sempre o último envio.
A perda do prazo de envio de qualquer tarefa por qualquer motivo poderá ser
interpretada como desistência da equipe no projeto.

Cronograma
Data Horário Local Descrição
06/11 Segunda 23h59 SIGAA Fim do período para
formação das equipes.

23/11 Quinta 23h59 SIGAA Entrega da versão final

23/11 Quinta 23h59 SIGAA Entrega do relatório

24/11, 25/11, 28/11 e Sexta/Sáb/Ter/Qui Lab 02 e Sala Apresentação do projeto


30/11

Avaliação
Cada projeto será avaliado através da execução do jogo, da inspeção do código fonte
(organização, comentários e clareza na lógica utilizada), da apresentação oral e do relatório.
No momento da apresentação, todos os integrantes devem entender a lógica e o
funcionamento do jogo, e não somente a parte que desenvolveram. A apresentação será feita
através de arguição com perguntas direcionadas a cada membro do grupo.
A nota final (NF) será calculada pela seguinte fórmula:
NF = ((A/10)*(0.2*R+0.8*S))
Onde:
SIGLA Descrição Pontuação

R Relatório 10

S Código 12

A Apresentação 10

Você também pode gostar