Você está na página 1de 3

Universidade

Federal do Cear
Centro de Cincias
Departamento de Computao

Trabalho Final Jogo Senha


Disciplina Programao (CK0110) Semestre 2014.2

Prof. Miguel Franklin


*** PARA EQUIPES DE NO MXIMO 2 (DOIS) ALUNOS ***

Desenvolver um programa em linguagem C representando o jogo Senha, onde o usurio dever ser capaz
de jogar contra o computador.

Requisitos Funcionais:
1. O usurio dever, no incio do jogo, definir os seguintes parmetros da partida:
a. N: Tamanho da senha (de 4 a 12)
b. PC: Possibilidades de cores (de 3 a 6)
c. Lim: Limite de tentativas de adivinhao (a partir de 1, sem limite superior)
2. O usurio dever, a cada rodada, entrar uma tentativa de adivinhao, que composta por uma
sequncia de cdigos de cores, usando-se as possibilidades de cores a seguir:
a.
b.
c.
d.
e.
f.

Vermelho vm
Verde vd
Amarelo am
Azul az
Magenta mg
Ciano ci

3. Antes de solicitar a tentativa do jogador, o computador deve informar as cores que esto disponveis,
dentre as possibilidades citadas acima. Caso o jogo esteja configurado para utilizar menos do que 6
cores, as cores a serem escolhidas devem seguir a ordem de prioridade listada acima. Por exemplo,
se for escolhido ter apenas 3 possibilidades, estas sero, necessariamente: vm, vd e am.
4. Ao solicitar uma tentativa de adivinhao, o usurio deve entrar uma sequncia de N cores,
separadas por vrgula. O computador deve ser capaz de compreender sequncias que tenham
espaos depois das vrgulas (Ex. vd, vm, am no lugar de vd,vm,am).
5. O computador deve validar a entrada do usurio, considerando a diversidade e a quantidade de
cores entradas. Caso o usurio j tenha tentado a combinao entrada, considerando o histrico de
todas as combinaes j entradas, o sistema dever exibir a mensagem Voc j tentou esta
combinao antes, ignorando-a e solicitando uma nova combinao. Uma senha pode ter
elementos de cores repetidas.
6. Caso a combinao entrada pelo usurio seja indita, o computador dever analis-la e mostrar a
combinao em cores e o resultado da anlise ao lado direito, indicando cada acerto de cor fora da
posio com um smbolo ! e o acerto de uma cor na posio correta com um smbolo @. O
programa no dever indicar em que posies houve acerto. Considere o exemplo a seguir:
1

Exemplo: considere um jogo cujas variveis so:

Entre
- vm:
- vd:
- am:
- az:
- mg:

N = 4
PC = 6
Lim = 100

Observao: O que for indicado em negrito o que o computador apresenta ao usurio. O que for
apresentado em itlico o que o usurio entrou.

Consideremos que a senha sorteada pelo computador seja: am, az, mg, vm
com uma combinao de 4 elementos dentre as 5 cores seguintes:
vermelho
verde
amarelo
azul
magenta

Entre a sua tentativa, separando os elementos por vrgula:


vd,am,az,vm
o o o o

->

! ! @

Esta foi a tentativa de nmero 1. Voc no acertou. Entre sua nova tentativa:



Obs. (1): Observe que o primeiro smbolo ! diz respeito ao fato da senha conter am, mas que tal
cor no est no local correto. O segundo smbolo ! diz respeito ao fato da senha conter az, mas que tal
cor no est no local correto. O smbolo @ diz respeito ao fato da senha conter vm exatamente no local
que o usurio indicou (posio 4).

Obs. (2) A representao em cores das jogadas deve ser mostradas ao usurio. Utilize no seu
projeto o arquivo cores.h disponibilizado no SIGAA para este fim.

7. Se o usurio acertar a senha antes do limite de jogadas, o computador deve exibir a mensagem:
Parabns. Voc conseguiu adivinhar a senha com M tentativas., onde M foi a quantidade de
tentativas do usurio, no considerando aquelas eventualmente repetidas.

Requisitos No Funcionais:
1. O programa dever utilizar o mnimo de memria possvel.
2. O programa dever conter a implementao de pelo menos uma estrutura de dados utilizando
registros e gerenciamento dinmico de memria.
3. O projeto dever ser constitudo por cdigos fontes separados, de acordo com caractersticas
funcionais (Ex. estrutura de dados, programa principal, funes auxiliares, etc.). Todos os arquivos-
fonte com o respectivo Makefile para construir o projeto devem ser disponibilizados na entrega.
4. O dimensionamento das variveis a serem utilizadas deve otimizar a ocupao de memria. (Ex. se
uma jogada pode ter de 4 a 12 cores, no convm estipular um vetor de 12 posies para
representar uma jogada.

Critrios de Avaliao
A avaliao ser realizada em duas fases:
1. Anlise do cdigo-fonte;
2. Anlise da execuo do programa (teste);
3. Apresentao do prottipo em laboratrio (se solicitado pelo professor).
O cdigo-fonte ser avaliado de acordo com os seguintes critrios qualitativos:
i.
ii.
iii.
iv.
v.

Eficcia do programa em suprir todos os requisitos funcionais e no funcionais;


Eficincia do programa (otimizao);
Organizao do cdigo (uso racional de subprogramas, estruturas, etc.);
Legibilidade do cdigo (uso de endentao e semntica dos identificadores de variveis);
Documentao (comentrios dentro do cdigo fonte).

Obviamente, funcionalidades adicionais s que foram solicitadas neste documento so bem vindas e sero
gratificadas na nota (na medida do possvel). O cdigo-fonte deve conter, em comentrio no incio, os
nomes e matrculas dos alunos que compem o grupo. O cdigo-fonte deve ser submetido na data fixada
atravs de servidor de upload, a ser definido. A apresentao do prottipo ser marcada em seguida.
Lembramos que todos os programas sero submetidos a anlise lxica automtica, que pode evidenciar
cpia de cdigo.
Os trabalhos sero corrigidos no Linux. Portanto, certifique-se que o trabalho feito no Windows tambm
compila e roda no Linux.

Prazo de Entrega: 20 de novembro de 2014, at 23:59.


Upload atravs do SIGAA (Turma Virtual)
No sero aceitas entregas por e-mail (a no ser que haja algum problema com a submisso pelo SIGAA).