DAS-5102   Fundamentos da Estrutura da Informação

Trabalhos para 2004/1

Trabalhos entregues após a data estipulada perdem 1 ponto por dia de atraso, inclusive sábado e domingo.
 

T1 - Implementação de um Jogo de Batalha Naval para um jogador    31/maio

Implementar no computador o jogo "Batalha Naval", a ser jogado entre humano e computador.

O tabuleiro deverá ter 10 por 10 posições. Os navios são:
Submarino: 2 posições
Cruzador: 3 posições
Destróier: 4 posições
Porta-aviões: 5 posições

Cada navio pode ser disposto na horizontal ou na vertical, podem encostar entre si e nas
bordas do tabuleiro.

Cada jogador atira uma bala de cada vez, independente de acertar ou não.

Para afundar o navio é necessário acertar todas as posições que ele ocupa.

Deve ser mostrado na tela o tabuleiro com os tiros do jogador humano e o tabuleiro
com os navios do jogador humano e os tiros do jogador computador. O tabuleiro
pode ser feito com caracteres, por exemplo:

- água
. tiro sem acertar
X navio
O navio afundado
 
 

0 1 2 3 4 5 6 7 8 9
- - - - - - - - - -     0
- - X X - - - - - -     1
- - - - - - - - - X     2
- - - - - X - - - X     3
- - - - - X - - - X     4
- - - - - X - - - X     5
- - - - - - - - - X     6
- - - - - - - - - -     7
- - - - - - - - - -     8
- - - - - X X X X -     9
 
 
 
 
 

T2 - Implementação de um Jogo de Xadrez apenas com peões (que podem virar damas)

                     5/julho

Implementar no computador um jogo de xadrez cuja única peça inicial são 8 peões por jogador.
 
Os peões são movimentados como no jogo de xadrez:
- Peão caminha só para frente;
- Primeiro movimento de cada peão pode ser uma ou duas casas, demais movimentos apenas uma;
- Como na diagonal para frente;
- Inicia na segunda linha do tabluleiro.
 
Quando um peão chega no final do tabuleiro ele vira uma dama (rainha) e passa
a poder mover-se sem restrições de casas e tanto na vertical, como na horizontal e
diagonal.
 
Vence a partida o jogador que comer todas as peças do adversário.
 
A apresentação do tabuleiro na tela pode ser simples, com caracteres alfa-numéricos,
por exemplo: "b", "B" para brancas e "p", "Q" para pretas.
 
- - - - - - - Q    0
p p p p p p p -    1
- - - - - - - -    2
- - - - - - - -    3
- - - - - - - -    4
- - - - - - - -    5
- - - - - - - -    6
- - - - - - - -    7
b b b b b b b -    8
- - - - - - - B    9
 
As brancas sempre aparecem em baixo da tela e as pretas em cima da tela,
as brancas sempre iniciam jogando.
 
Deve ser possível duas pessoas jogarem entre si, ou uma pessoa com o computador.
No caso do computador jogar, o mesmo deverá fazer jogadas válidas, podendo
ser usado qualquer algoritmo, inclusive movimentos aleatórios (desde que
válidos).
 
Quando uma pessoa joga contra o computador, deve ser possível para ela
escolher se deseja jogar com as brancas ou com as pretas.
 
Após o término da partida, deve ser possível fazer um replay de todo o
jogo, quando os movimentos de toda a partida são reproduzidos, com
sleep de 1 segundo entre cada dois movimentos.

Fazem parte da avaliação, além dos requisitos funcionais:
 
- Organização (design) do programa
- Legibilidade do código fonte
- Elegância das soluções