TrabalhoAvaliacao-2016

Propaganda
Fundamentos de Programação
1º ano
AMV
2015/2016
(ver. 1.2)
Trabalho de Avaliação
1. Apresentação
Este trabalho tem o objetivo de consolidar os conhecimentos de Fundamentos de
Programação e de Java.
2. Descrição
Pretende-se que os alunos criem um jogo semelhante ao jogo da forca, com os
seguintes requisitos:
 O programa deve ter um menu com as opções:
o Iniciar jogo
o Consultar lista de pontuações
o Sair
 Ao selecionar a opção selecionar "Iniciar jogo", o programa escolhe aleatoriamente
uma palavra do ficheiro "palavras.txt"
 Nesse ficheiro, cada palavra ocupa uma linha
 Depois de selecionada a palavra, o programa apresenta um menu ao utilizador
onde pede para:
o inserir uma letra, ou
o tentar adivinhar a palavra
 O jogador tem apenas 10 tentativas no total (soma das letras, ou tentativas de
adivinhar palavra). Se não acertar, perde o jogo e o programa volta ao menu inicial.
 De início, antes da primeira tentativa, o jogo mostra uma sequência de sublinhados
(caráter '_') onde cada sublinhado representa uma letra a palavra a acertar.
 Sempre que o jogador insere uma letra, o programa volta a mostrar a sequência de
sublinhados, mas substituindo as letras já acertadas nos locais adequados.
 Se a palavra tiver uma letra com acento, ou cedilha, o programa deve considerar
essa letra como certa, mesmo que o utilizador insira a letra sem acento ou cedilha




Sempre que um jogo termina, o programa coloca uma linha no ficheiro
"resultados.txt", com o resultado conseguido pelo jogador.
Cada linha nesse ficheiro é constituída pelo nome do utilizador (uma palavra),
seguida de um espaço, seguido da data/hora (ver ANEXO I) no formato
"YYYY-MM-DD hh:mm:ss", seguida de um espaço, seguido da pontuação.
As linhas devem estar ordenadas por pontuação decrescente
A pontuação é calculada da seguinte forma:
o Cada letra acertada vale 3 pontos (se a palavra tiver duas letras "a", só
conta 3 pontos)
o Cada letra falhada vale -1 ponto
o Se acertar a palavra, soma mais 10 pontos
3. Exemplo
Considere-se que o programa escolheu aleatoriamente a palavra "paritário"
Quando inicia, deve mostrar a seguinte sequência de sublinhados
_________
Se o utilizador inserir a letra "a", o programa deve mostrar a sequência seguinte e
contar 3 pontos:
_a___á___
Depois, se o utilizador escolher a letra "e", o programa deve descontar 1 ponto (passa
a 2) e mostra a mesma sequência:
_a___á___
A seguir, se o utilizador escolher a letra "i", o programa conta mais 3 pontos - passa a
5 - e mostra o seguinte:
_a_i_á_i_
No fim, supondo que o utilizador consegue acertar e ficar com 24 pontos, o programa
deve inserir no ficheiro "resultados.txt" a seguinte linha, ordenada por pontuaçao
decrescente:
alex 2015-11-16 09:30:01 24
4. Entrega e discussão dos trabalhos
Os trabalhos devem ser apresentados e discutidos na última semana de aulas.
Anexo I
Excerto de código que determina a Data e Hora actual num determinado formato.
O formato pedido no projecto é ligeiramente diferente deste, portanto devem alterá-lo.
import java.util.Calendar;
import java.text.SimpleDateFormat;
…
public static final String DATE_FORMAT = "yyyyMMdd HH:mm:ss";
…
public static String now() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
return sdf.format(cal.getTime());
}
Download