Buscar

PROVA _ DISCIPLINA PROGRAMAÇÃO E INTEGRAÇÃO DE JOGOS - CURSO JOGOS DIGITAIS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

QUESTÃO 1
Considere que, em um programa qualquer, foi implementada uma estrutura de dados LIFO, denominada x1, e uma estrutura FIFO, denominada x2. Considere, também, que as estruturas foram corretamente inicializadas. Durante a execução do programa, foram realizadas as seguintes operações, exatamente nesta ordem:
 
1. x1.push(10)
2. x1.push(22)
3. x1.pop()
4. x1.push(15)
5. x2.insert(x1.top())
6. x2.remove()
 
Nesse sentido, assinale a alternativa correta.
 Na linha 4, ocorrerá um erro, uma vez que a variável x1 estará cheia. Com isso, nenhum valor será inserido na variável x2.
 No final do programa, a estrutura x1 terá os valores 15, 22 e 10 e a estrutura x2 estará vazia, ou seja, sem nenhum item.
 Na linha 3, ocorrerá um erro, uma vez que é necessário informar um parâmetro para esse método, estando relacionado ao índice do elemento.
 No final do programa, tanto a variável x1 como a variável x2 terão os mesmos valores 15, 22 e 10, efetuando, de forma indireta, a operação copy().
RESPOSTA CORRETA: No final do programa, a estrutura x1 terá os valores 15 e 10 e a estrutura x2 estará vazia, ou seja, sem nenhum item.
Resposta correta. A alternativa está correta. As duas estruturas começam vazias. Quando resolvemos empilhar o item 22 e desempilhar em x1, o mesmo elemento inserido será removido. Isso faz com que a pilha se torne vazia. Ao inserir um novo elemento e verificando o topo, temos o último elemento inserido. A estrutura x2, que se iniciou vazia, permaneceu também vazia, uma vez que único elemento inserido foi removido ao final do algoritmo.
QUESTÃO 2
Um aluno deseja criar uma aplicação que simule um buffer para transmissão de dados. Para isso, foi estabelecido que seria necessário criar dois pontos de transmissão: um para envio da mensagem e outro que faria o papel do receptor. Além disso, a mensagem precisaria ser particionada em blocos, denominados itens, e inseridos em uma estrutura de dados. A ideia consiste no fato de que, para cada ponto de transmissão, fosse implementada a mesma estrutura de dados, em que, no transmissor, seria lida a parte da mensagem e, ao mesmo tempo, seria retirada da primeira estrutura de dados. Após a retirada, cada parte deverá ser enviada para o receptor, que irá inserir cada uma dessas partes na segunda estrutura de dados. Com base no exposto e visando que a mensagem recebida deva permanecer na mesma da original, exatamente na mesma sequência, qual é a melhor estrutura de dados para a construção desse buffer?
 Javascript.
 Árvore.
 Pilha.
 RESPOSTA CORRETA: Fila.
Resposta correta. A alternativa está correta, pois a estrutura de dados Fila implementa a estratégia FIFO, ou seja, prioriza a retirada dos elementos mais recentes. Como as partes da mensagem serão retiradas e inseridas em sequência, a implementação de uma Fila nos dois pontos da transmissão estabelece que a mensagem não irá ser alterada por causa das regras de inclusão e exclusão que essa estrutura possui.
 Lista circular
QUESTÃO 3
Os NPCs são personagens não jogáveis, ou seja, que não podem ser conduzidos por um jogador. Apesar disso, os NPCs são peças vitais em jogos que contam uma história, uma vez que por meio deles os jogadores podem descobrir segredos e novos objetivos, comprar ou vender itens e até mesmo convidá-los para participar de missões. Entretanto, alguns NPCs possuem características limitadas, responsáveis, por exemplo, por ficarem estáticos no cenário e distribuírem uma informação aleatória, sem relevância para a história.
 
Dentre os tipos abstratos de dados, assinale a alternativa referente à modelagem de um NPC com características reduzidas:
 Atributos: lançar projéteis. Operadores: esquivar.
 Atributos: saúde, direção. Operadores: correr.
 Atributos: customização de vestuário, voz. Operadores: atacar.
 Atributos: tamanho, largura, direção do mapa. Operadores: dar dica, observar.
RESPOSTA CORRETA: Atributos: coordenada X, coordenada Y; operadores: falar.
Resposta correta. A alternativa está correta, pois os atributos Coordenada X, Coordenada Y referem-se ao posicionamento e o operador Falar refere-se à fala do personagem, sendo esses atributos os mínimos necessários para um NPC de interação existir no game.
QUESTÃO 4
Leia o excerto a seguir:
"Em diversas aplicações, necessita-se de estrutura mais complexas do que as puramente sequenciais [...]. Entre essas, destacam-se as árvores, por existirem inúmeros problemas práticos que podem ser modelados através delas. Além disso, as árvores, em geral, admitem um tratamento computacional simples e eficiente. Isto não pode ser dito de estruturas mais gerais do que as árvores, como os grafos, por exemplo.”
 
SZWARCFITER, J. L.; MARKENZON, L. Estruturas de Dados e seus Algoritmos, São Paulo: LTC, 1994, p. 61.
 
Analise as afirmativas a seguir:
 
I. Podemos dizer que uma árvore com apenas um elemento possui profundidade 0 (zero).
II. Nas árvores estritamente binárias, todo nó não folha deve possuir as subárvores esquerda e direita.
III. Uma árvore binária é completa de altura d quando todas as folhas estão no mesmo nível.
IV. Árvore Ordenada é um tipo de árvore que tem estrutura organizada de forma linear.
 
Está correto o que se afirma em:
 II e III, apenas.
 I e II, apenas.
 II, III e IV, apenas.
 I, II e IV, apenas.
 RESPOSTA CORRETA: I, II e III, apenas.
Resposta correta. A alternativa está correta, uma árvore que possui apenas o nó raiz tem profundidade 0, uma vez que a profundidade é dada pelo nível do nó. Além disso, para que uma árvore seja estritamente binária ela precisa que os nós intermediários tenham as duas subárvores preenchidas. No caso das árvores completas de altura d, é necessário consultar todos os nós folhas e verificar se eles estão no mesmo nível.
QUESTÃO 5
Grafo de cena é uma técnica bastante conhecida na área de computação gráfica para modelagem de cenários complexos. Em um jogo digital 3D, foi criado um grafo de cena para modelagem de um dormitório de uma casa. Nesse contexto, os nós desse grafo representam objetos contidos nesse cômodo (nós folhas) e operações geométricas aplicadas nesses objetos (nós internos). O grafo obtido está representado na imagem a seguir.
 Fonte: Elaborada pelo autor.
 
Considerando o contexto apresentado, analise as afirmativas a seguir:
 
I. A raiz do grafo não representa uma operação geométrica e poderia ser descartada.
II. A transformação de rotação será aplicada nos objetos 1, 2 e 3.
III. A transformação de translação será aplicada em todos os objetos da cena.
IV. Se considerarmos o grafo como uma árvore, a altura dessa estrutura seria 3.
 
Está correto o que se afirma em:
RESPOSTA CORRETA: III e IV, apenas.
Resposta correta. A alternativa está correta, pois em um grafo de cena podemos nos beneficiar com uma propriedade chamada herança de estados. Nesse caso, como o nó da translação é anterior a todos os nós dos objetos, essa transformação é aplicada em todos os nós sucessores. Além disso, o maior nível encontrado por um nó folha (ou seja, a distância entre o nó folha até a raiz) seria de 3, o que definiria a altura da árvore.
 I, II e IV, apenas.
 II e III, apenas.
 I, II e III, apenas.
 II, III e IV, apenas.
QUESTÃO 6
Leia o trecho a seguir:
“O chefe de fase é um oponente que se destaca da grande maioria [sic] dos oponentes dentro do game, em termo de escala, capacidade e comportamento. Um encontro com o chefe de fase é um teste das habilidades do jogador naquele ponto e uma oportunidade para ele provar sua maestria”.
 
SCHUYTEMA, P. Design de games: uma abordagem prática. [S.l.]: Cengage Learning, 2008. p. 209.
 
Assinale a alternativa que representa um correto operador de um chefe de fase a ser representado em um tipo abstrato de dados:
RESPOSTA CORRETA: Disparar golpe ofensivo substancial.
Resposta correta. Considerando as alternativas apresentadas, “Disparar golpe ofensivo substancial” é o único operador que pode ser modelado no TAD do chefe de fase. Os demais operadores são considerados aspectos do próprio jogo, e assim,precisam ser implementados por outros elementos.
 Reconquistar atenção do jogador.
 Recompensar jogador.
 Desenhar cenário.
 Executar trilha sonora.
QUESTÃO 7
Um programador está criando um jogo digital de futebol de campo. O jogo pretende respeitar todas as regras do esporte real, onde os 11 jogadores se enfrentam na busca de marcar gols e conquistar a vitória. Após pensar nos mecanismos do jogo, o desenvolvedor resolveu criar para cada time duas listas: a primeira, denominada com até 11 itens, onde cada item representa um jogador, caracterizando o time titular; já na segunda lista, a quantidade máxima de itens será parametrizada de acordo com o tipo de competição (amistoso, campeonato nacional, copa ou campeonato internacional),  e tem como objetivo representar o banco de reservas. As listas de titulares e reservas serão nomeadas como lista1 e lista2, respectivamente.
 
Considerando o contexto apresentado, analise as afirmativas a seguir:
I. Para realizar uma substituição entre jogadores, é necessário retirar um jogador da lista1 e inseri-lo na lista2, assim como retirar um jogador da lista2 e inserir na lista1.
II. Quando um jogador titular recebe um cartão vermelho, precisamos retirá-lo da lista2.
III. Quando um jogador em campo recebe dois cartões amarelos, caracterizando uma expulsão do jogador, precisamos retirar esse jogador da lista1.
IV. Quando alteramos o posicionamento (ataque, defesa, meio-campo) de um jogador titular, não é necessário executar nenhuma operação de inserção ou remoção nas listas.
 
É correto o que se afirma em:
 II e III apenas.
RESPOSTA CORRETA: I, III e IV apenas.
Resposta correta. A alternativa está correta, pois a substituição de um jogador consiste em trocar um elemento de uma lista1 por outro de uma lista2. Podemos alcançar esse resultado com operações de inserção e remoção. Além disso, a expulsão de um jogador consiste na remoção do mesmo na lista, e o posicionamento do jogador pode ser representado como um atributo da classe.
 I, II e III apenas.
 I, II e IV apenas. 
 I e II apenas.
QUESTÃO 8
Uma estrutura de dados é um mecanismo criado para armazenar e gerenciar de uma forma eficiente. Quando queremos representar mecanismos existentes no mundo real, criamos um tipo de dado customizado, também chamado de Tipos Abstratos de Dados.
 
Considerando o excerto apresentado, sobre os Tipos Abstratos de Dados, analise as afirmativas a seguir e assinale V para a(s) Verdadeira(s) e F para a(s) Falsa(s).
 
I. ( ) Um TAD é uma estrutura de dados conhecida como caixa preta, porém não encapsula os atributos relacionados àquele objeto.
II. ( ) Toda vez que alteramos um operador em uma estrutura de dados, adicionando um novo parâmetro de entrada, precisamos também alterar os outros locais em que chamamos essa funcionalidade.
III. ( ) A melhor maneira de um desenvolvedor alterar os dados armazenados é utilizar o próprio operador da estrutura de dados destinada a isso, quando existir.
IV. ( ) O objetivo do TAD é representar todos os elementos que possuem uma interface e são visíveis durante o gameplay do jogador.
 
Assinale a alternativa que apresenta a sequência correta:
 V, V, F, F.
 F, F, F, F.
RESPOSTA CORRETA: F, V, V, F.
Resposta correta. A sequência está correta. Os TADs são elementos que representam os conceitos e mecanismos do mundo. É uma estrutura de dados caixa preta que encapsula os atributos e tem objetivo de representar objetos e mecanismos do mundo real, mesmo que não tenham interface com o usuário.
 F, V, F, V.
 V, V, V, V
QUESTÃO 9
Um score tem como objetivo criar uma listagem com os jogadores que melhor pontuaram em um determinado jogo, apresentando o nome do jogador e a pontuação obtida. Esse tipo de listagem pode ser criado por meio da utilização de uma estrutura de dados do tipo lista. Uma melhoria na implementação seria transformar a lista encadeada em uma lista encadeada ordenada, onde as tratativas poderiam ser feitas diretamente no método de inserção. Diante desse contexto, assinale a alternativa correta sobre a implementação de uma lista encadeada:
 Precisamos sempre armazenar no item a referência para o elemento antecessor.
 RESPOSTA CORRETA: A ordenação consiste em encontrar a melhor posição para o item antes de inseri-lo.
Resposta correta. A alternativa está correta, pois para apresentar um score de forma ordenada, precisamos nos preocupar com a inserção dos elementos na lista. Seria necessário encontrar a posição adequada, baseado na pontuação do jogador, para só então inserir o elemento.
 O problema exige que ao menos 5 itens estejam sempre presentes na lista.
 O problema em questão deve ser representado por uma fila, e não por uma lista. 
 Cada item irá armazenar os atributos nome do jogador, pontuação e sexo.
QUESTÃO 10
Leia o excerto a seguir:
"A forma mais comum de representar graficamente uma árvore é através de sua representação hierárquica, semelhante à utilizada para descrever organogramas de uma empresa [...]. Nessa representação existe uma linha unindo cada nó as raízes de suas subárvores., quando não vazias, as quais se encontram sempre abaixo (acima) desse nó.”
 
SZWARCFITER, J. L.; MARKENZON, L. Estruturas de Dados e seus Algoritmos, São Paulo: LTC, 1994, p. 63.
 
A partir do apresentado, analise as asserções a seguir e a relação proposta entre elas.
 
I. Qualquer operação de busca em árvores binárias não altera o tipo ou a quantidade de nós dessa estrutura.
Pois:
II. A implementação por itens encadeados permite adicionar um número infinito de elementos na árvore.
 
A seguir, assinale a alternativa correta:
 RESPOSTA INCORRETA: As asserções I e II são proposições falsas. 
Sua resposta está incorreta. A alternativa está incorreta, pois é possível implementar árvores utilizando alocação estática ou dinâmica. Na alocação estática, já conhecemos a priori
a quantidade de elementos que a árvore suportará, pois isso é definido em tempo de compilação. Já na implementação dinâmica, a memória é alocada dinamicamente e existe a possibilidade de realizar inúmeras inserções na árvore. Quando realizamos uma busca nos nós, nenhum elemento é inserido ou removido, apenas existe a consulta dos valores. Assim, ambas proposições são verdadeiras, porém a II não justifica a I.
 As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.
 A asserção I é uma proposição verdadeira e a asserção II é uma proposição falsa.
 A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
RESPOSTA CORRETA: As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I.

Continue navegando