Sei sulla pagina 1di 2

Disciplina: TECIIA

Professor: Eduardo Henrique Spies

Trabalho – ArrayLists (O melhor RPG já criado no universo)


Peso: em nota 4 pontos, em fodacidade: Over 9000!
____________________________________________________________________________
1. Os alunos de ciência da computação do campus URI Santiago decidiram programar um jogo de
computador. Os itens abaixo descrevem o que é necessário ao jogo.
a) É necessário que exista uma classe Arma que possua como atributos o valor do ataque da
arma (inteiro) e também o seu tipo (se é uma espada, machado etc...). É necessário criar os
métodos get e set para seus atributos. Também é necessário que exista a tabela relacionada
na base de dados com pelos menos três diferentes armas para motivos de teste.
b) O Herói, que irá possuir como campos um nome, uma quantidade de pontos de vida,
quantidade de pontos de defesa, uma quantidade de agilidade e uma arma (do tipo arma
criado) que ele está equipando. Além da arma que ele está equipando o Herói também
possui uma mochila (inventário) que é uma coleção de diferentes armas. Cada jogador pode
fazer login no sistema através de um formulário e ser encaminhado para a tela de criação de
personagens. Uma vez o jogador tendo seu personagem criado ele deve ser encaminhado
diretamente para a tela do jogo. Os personagens dos jogadores devem ficar armazenados
na base de dados. Um login deve gerar uma sessão de modo que o usuário pode recarregar
e abrir o navegador e ainda estar com seu personagem associado. A sessão deve ser
encerrada ao fazer logoff.
c) Nosso herói ainda pode possuir uma determinada profissão. Existem três diferentes
possíveis profissões sendo elas Mago, Guerreiro e Arqueiro. Cada profissão possuindo
diferentes quantidades de seus atributos básicos (a critério de vocês o balanceamento das
classes). Cada classe ainda possui uma habilidade específica, o mago possui a habilidade
bola de fogo (causa o dano de ataque da arma a todos os inimigos), o guerreiro possui a
habilidade “fúria” que dobra o ataque e a defesa até o final da batalha, e o arqueiro possui a
habilidade “tiro certeiro” que dá o triplo do ataque do dano de arma a 1 inimigo.
d) O nosso herói está em uma missão para derrotar diversos inimigos que estão tentando
destruir a paz do reino. Os inimigos possuem nome, quantidade de pontos de vida,
quantidade de pontos de defesa, quantidade de pontos de ataque, pontos de agilidade, e
uma lista de armas que eles podem dropar, com sua respectiva chance de drop (não
podendo exceder 50% de chance de drop). Da mesma forma, é necessário existir uma base
de dados com pelo menos 5 tipos diferentes de inimigos (com seus respectivos drops
cadastrados adequadamente).
e) O herói irá precisar ainda de um método atacar. O método atacar deverá imprimir na tela a
mensagem “<nome_do_herói> atacou usando <tipo_do_armamento> causando
<ataque_da_arma> - <defesa_do_inimigo> de dano no inimigo”. O mesmo deve acontecer
com os inimigos que podem atacar o nosso herói. O herói também irá precisar de um
método usarHabilidade que irá usar a habilidade específica da profissão do herói.
f) O herói também precisa um método “otimizarEquipamento” que verifica dentro da mochila
dele qual a arma com o maior ataque e a equipa no seu slot de arma equipada.
g) O jogo atua num sistema de batalha em turnos, onde cada batalha possui uma lista de
inimigos que nosso herói terá que enfrentar. Dentro da batalha é possível acessar o método
Agir() onde o usuário pode escolher entre atacar (o herói ataca um inimigo específico dito
pelo usuário) e defender (dobra os pontos de defesa para aquele turno) e usar habilidade (o
uso de habilidade é restrito a uma vez por batalha). Cada vez que o herói toma uma ação o
Disciplina: TECIIA
Professor: Eduardo Henrique Spies

método passarTurno abaixo é chamado. O sistema deve ter armazenado pelo menos três
diferentes batalhas cadastradas no seu banco de dados que serão as três missões que
nossos heróis deverão enfrentar.
h) A batalha possui um método passarTurno (que deve ser chamado após a seleção de uma
ação do herói) que realiza a ação de todos personagens (heróis e inimigos) envolvidos na
batalha. A ordem dos ataques deve ser de acordo com o valor da agilidade dos personagens.
O resultado de cada ataque deve ser exibido na tela a cada turno, e a batalha é encerrada
quando todos os inimigos estão mortos ou nosso herói morreu. Também é necessário
implementar um método “fugir” que encerra a batalha mantendo os resultados de danos
até o momento.
i) Ao fim de cada batalha é necessário calcular as recompensas de batalha que nosso herói
recebeu. Para cada inimigo é sorteado um número entre 0-100 para obtenção de cada um
dos itens de drop de cada inimigo. Se o herói conseguiu algum drop uma notificação deve
ser mostrada em tela no formato “O <nome_do_inimigo> dropou um <tipo_de_arma> com
<ataque_da_arma> de ataque, a arma foi adicionada a mochila do herói” e o item deve ser
devidamente adicionado à mochila do herói.

Potrebbero piacerti anche