4) { while ($ads2 == $ads1) { $ads2 = rand(1, $slides); } } $ads3 = rand(1, $slides); if ($slides > 4) { while (($ads3 == $ads2) || ($ads3 == $ads1)) { $ads3 = rand(1, $slides); } } ?>
IPRJ TÓPICOS ESPECIAIS EM LINGUAGENS DE PROGRAMAÇÃO  
EXERCÍCIO DE REVISÃO  
1
) Deseja-se adicionar inimigos a um determinado jogo. Sobre estes inimigos, têm-se  
as seguintes informações:  
Todo inimigo possui uma posição na tela (coordenadas x e y).  
Todo inimigo possui um estado atual que determina se ele está vivo ou morto.  
Todo inimigo possui um tipo (zumbi, fantasma ou monstro). Cada tipo de  
inimigo é representado visualmente por uma imagem diferente: a imagem do  
zumbi chama-se “zumbi.png”, imagem do fantasma chama-se  
fantasma.png”, e a imagem do monstro chama-se “monstro.png”. O  
tamanho de todos os inimigos é 30x60.  
a
A vida do inimigo é representada por um valor entre 0 e 100. Inicialmente a  
vida do inimigo é 100.  
Todo inimigo pode ser atacado. Ao ser atacado, o inimigo perde uma  
quantidade de vida relativa ao poder de ataque de quem o estiver atacando  
(vida = vida - poder_de_ataque).  
Se a vida do inimigo for menor ou igual à zero, o inimigo muda o seu estado  
atual para morto.  
Um inimigo somente pode ser atacado se ele estiver vivo.  
De acordo com as informações acima, implemente:  
a) Defina uma estrutura de dados para representar e armazenar os inimigos do  
jogo.  
b) Implemente o método love.load para criar um conjunto de 10 inimigos  
aleatórios.  
c) Implemente, dentro do método love.update, o processo para verificar se o  
inimigo foi atacado pelo jogador. O ataque somente ocorre quando o jogador  
pressionar a tecla “a” e estiver colidindo com o inimigo. Sabe-se que a posição  
do jogador está armazenada nas variáveis player_xe player_y e que o  
seu tamanho é 30x60. Ao ser atacado, deve-se calcular o dano recebido pelo  
inimigo e atualizar o seu estado atual (vivo ou morto) de acordo com a sua  
quantidade de vida. Sabe-se que o poder de ataque do jogador está  
armazenado na variável player_ataque.  
d) Implemente, dentro do método love.draw, o processo para desenhar os  
inimigos na tela utilizando as suas respectivas imagens (zumbi, fantasma ou  
monstro). Somente os inimigos que estiverem vivos devem ser desenhados.