Preciso resolver uma implementação de sistemas distribuidos

Redes de Computadores Sistemas distribuidos Curso Superior

PROBLEMA: jogo 2048
Você conhece o jogo 2048? Se não, irei apresentá-lo a vocês. Abaixo segue uma imagem.
-Nesse jogo, as teclas direcionais são usadas para realizar jogadas (cima, baixo, esquerda e direita). A
-cada vez que uma tecla é pressionada, os blocos numerados tentam deslizar pela matriz caso haja
espaço. No exemplo da imagem abaixo, se a tecla para esquerda for pressionada, 5 blocos irão se
mover (8, 2, 16, 2, 32).
-Além de tentar deslizar, blocos adjacentes com o mesmo número se juntam em um único bloco com um
número dobrado caso tentem deslizar na direção certa. No exemplo da imagem abaixo, se a tecla para
baixo for pressionada, dois blocos 2 irão se transformar em um bloco 4 e dois blocos 32 irão se
transformar em um bloco 64.
Durante o jogo, além de fazer as jogadas, surgem aleatoriamente blocos na matriz com números iguais
a potências de 2. O objetivo é fazer os blocos se juntarem para que um bloco com número 2048 seja
formado. Quando isso acontece, o jogador vence o jogo e não é possível fazer mais jogadas.

Porém, também pode acontecer do jogador não ter mais jogadas possíveis antes de formar o número
2048. No exemplo da imagem abaixo, apertar a tecla para a direita não é uma jogada válida, pois
nenhum bloco pode se mover ou se juntar a outro bloco.
Sua tarefa nesse problema é dizer quais são as jogadas válidas para uma determinada situação
do jogo.
Entrada
Você deve fornecer 6 casos de teste de estado de jogo. Ou seja, 6 matrizes 4x4 aleatórias com valores
zero (para espaço vazio) ou múltiplos de 2. Isto é, os números da matriz são iguais a 0 para indicar que
não há bloco na posição, ou são iguais a potências de 2 entre 2 e 2048 inclusive.
Saída
Para cada teste, a saída consiste de uma linha contendo todas as jogadas possíveis para a entrada. As
jogadas são indicadas por BAIXO, ESQUERDA, DIREITA E CIMA. Caso não haja nenhuma jogada
possível, imprima NONE.
Imprima também a quantidade de vezes que não foi possível fazer uma jogada possível (NONE).
Exemplo
6 MATRIZES SORTEADAS RESULTADO
2 128 8 16
16 8 4 32
8 16 32 64
16 2 64 128
0 0 0 8
0 0 2 16
0 0 2 32
2 8 16 32
NONE
BAIXO ESQUERDA CIMA
DIREITA CIMA
NONE
BAIXO ESQUERDA
NONE
Não foi possível fazer jogadas 3 vezes

0 0 0 0
0 0 0 0
0 0 0 0
2 0 0 0
2 4 8 16
4 8 16 32
8 16 32 64
16 32 64 128
0 0 0 2
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
Atividade de avaliativa 1
O objetivo desse exercício é que vocês comparem algoritmos em relação ao tempo de execução.
Lembrem-se que, se é desejado aferir o tempo de execução do processo, é necessário levar em
consideração que outros processos estão concorrendo por esse tempo de processamento na
máquina.
Escolha a mesma linguagem de programação para os exercícios 1 e 2 abaixo.
1) Faça um algoritmo A (sequencial) que resolva o problema acima.
2) Faça uma nova versão do algoritmo que utilize threads (algoritmo B) para o mesmo problema .
3) Faça um programa testador de tempo de execução. Ele terá por intuito inicializar os processos A e B,
aferir seus respectivos tempos médios de execução e calcular os speedups:
a) aferir o tempo médio do algoritmo A para 50 execuções;
b) aferir o tempo médio do algoritmo B para 50 execuções em cada um dos cenários abaixo:
i) 3 thread;
ii) 6 threads;
b) calcular os speedups do algoritmo A em relação a cada uma das versões do algoritmo B.
4) REFLITA e ANOTE:
a) Por que obteve esses resultados?
b) A relação do tempo do speedup coletado com os itens abaixo:
i) Qual o hardware usado? Isso influencia?
Instituto Federal de Educação, Ciência e Tecnologia do Sudeste de Minas Gerais
Campus Rio Pomba
- Sistemas Paralelos e Distribuídos -
professora: Bianca Portes
ii) Qual o sistema operacional usado? Isso influencia?
iii) Qual a linguagem e recursos da linguagem usados? Haveria diferença se as linguagens
fossem diferentes?
iv) Por que determinada abordagem obteve melhor desempenho em relação a outra
(paralelo x sequencial)?
v) Onde foi possível aumentar a vazão na sua proposta?
.

Foto de Pablo A.
Pablo perguntou há 2 anos

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida
1 resposta
-1
votos
-1 usuários votaram nessa resposta como não útil.
Professor Raul C.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 ano

Oi Pablo. Tente utilizar a seção Tarefas desta plataforma para essa pergunta ou qualquer outra que exija muito tempo ou esforço de um professor, afinal ninguém responde algo assim de graça (esta eção é para perguntas pontuais, com respostas curtas). que terá uma resposta de qualidade em questão de horas ou poucos dias. Sou professor de História e começarei uma turma de resolução ao vivo de questões de História do ENEM no final deste mês, acesse o curso (nesta plataforma) e entre na turma, não irá se arrepender e está muito barato. Acesse-o através desse link onde tem todas as informações: https://profes.com.br/turmas/historia/historia-para-o-enem-2

Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

Professores particulares de Redes de Computadores

+ Ver todos
Encontre professor particular para te ajudar nos estudos
R$ 40 / h
Raul C.
Natal / RN
Raul C.
5,0 (2 avaliações)
Horas de aulas particulares ministradas 7 horas de aula
Tarefas resolvidas 4 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
Especialização: História Cultural (claretiano)
Quer aprender história de maneira didática e com profundidade? Quer passar no enem ou de ano? Então seja meu aluno