Objetivos :
-
Introdução: Este projeto é dividido em 3 questões, as quais estão relacionadas com temas abordados em sala de aula. As questões devem ser entregues juntas, juntamente com um relatório especificando o que foi feito em cada uma delas.
-
Regras
-
Os códigos podem ser implementados em C/C++, Java ou Python (altamente recomendado).
-
O relatório final deve conter uma explicação bem detalhada do que está no código.
-
É proibido usar o módulo select.
-
Cópias acarretarão em 0 (Zero) para todas as equipes pegas.
-
A data de entrega só poderá ser alterada com a permissão do professor.
-
Protocolo confiável sobre UDP (Camada de Transporte):
-
Deverá ser implementada uma camada de confiabilidade sobre UDP.
-
Podem ser utilizados os métodos vistos em sala, GBN e retransmissão seletiva. (escolhido : GBN)
-
Para melhor controle e visualização do processo, o programa deverá indicar sempre que uma transmissão ou retransmissão ocorrer.
-
A aplicação será a transmissão de strings de um programa para outro (podem ser diferentes).
-
Super-Trunfo (Cliente e Servidor):
-
Deverá ser implementado o jogo de super-trunfo.
-
Sobre o jogo: • O baralho possui 32 cartas, cada com um número de 1 a 8 e uma letra de A a D. • As regras do jogo encontram-se em:https://docs.google.com/document/d/18CkS7rS9JrRdxTYo33Ao3xUjYASJNG412ACeF2Sep3c/preview
-
Servidor: Deverá controlar toda a lógica do jogo. Inclui: Distribuição das cartas, avaliação do resultado de cada turno e verificação da condição de vitória.
-
Cliente: Deverá receber as jogadas do usuário e as mandar para o servidor. Deverá mostrar as cartas escolhidas pelos adversários a cada turno.
-
Batalha Naval (P2P):
-
Deverá ser implementado apenas um programa, que rodará para cada usuário.
Sobre o jogo_:
-
Jogam dois jogadores.
-
Cada um possui uma grade 10x10, escondida do adversário.
-
Cada um possui navios de diferentes tamanhos: 1 de tamanho 5, 1 de tamanho 4, 3 de tamanho 3 e 2 de tamanho 2.
-
Inicialmente, cada um põe seus navios horizontalmente ou verticalmente em sua grade.
-
O resto do jogo é jogado em turnos. Cada jogador escolhe uma posição da grade adversária para atacar.
-
Ele só saberá se acertou alguma coisa ou se destruiu um navio por completo.
-
Ganha o adversário que destruir todos os navios inimigos.