IME - Instituto de Matemática e Estatística DICC - Departamento de Informática Sistemas Distribuídos Tópicos Especiais Prof. Alexandre Sztajnberg 2010/1 Projeto de Programação 1 – Sockets Neste projeto vamos desenvolver pequenos jogos com sockets UDP e TCP, usando a linguagem C ou Java, no Unix. Os jogos são para 2 jogadores, e são do tipo “turn” (as jogadas vão se alternado entre os jogadores). Exemplo: jogo da velha, batalha naval, xadrez, damas. Cada grupo vai fazer receber uma combinação de jogo+protocolo+arquitetura+linguagem. Deve implementar o programa de acordo com os requisitos solicitados. Também deve desenvolver um texto discutindo como as questões a seguir foram abordadas. Os fontes, executáveis e o texto devem ser disponibilizados na conta da snarf através de uma página Web simples, mas organizada. Arquiteturas: • cliente-servidor, direto - sem intermediários. • clientes-central, clientes interagem através de uma central. Cada arquitetura tem aspectos as serem considerados: • Central: onde vai ser executado?, como os clientes sabem onde está? Como registrar? Como sincronizar o jogo e as jogadas? • Direto: como Além do jogo, em si, o grupo terá que pensar em alguns pontos relevantes na aplicação: • São dois jogadores que não se conhecem. Como um jogador obtém a referência do outro? • Depois de obter a referência, como os dois jogadores “engage” no jogo? Isto é: tornam-se disponíveis para jogar, e combinam quem começa primeiro? • Como as mensagens contendo as jogadas são representadas e manipuladas? • Como terminar o jogo? Isto é: como terminar o jogo, decidir quem ganhou, notificar serem notificados e, finalmente liberar os recursos (socket, memória, etc.)? • Um jogo pode ser interrompido no meio e depois reiniciado? E como ele recomeçará? • O jogo possui requisitos de segurança contra “cheating”? Por exemplo, um jogador consegue fazer duas jogadas seguidas antes do adversário fazer a sua? • O que acontece se um jogador demorar muito na sua jogada? Distribuição dos requisitos Gr. No. Central Direto Java Nathalea e Guilherme 1 X X Pedro e Leandro 2 X X Daniel e Frederico 3 X X Ana e Jaime 4 X X Márcia e Helder 5 X X André e Fábio 6 X X Rafael e Rodrigo 7 X Thiago 8 X Luciano Barroso 9 X Rodrigo e Guilherme 10 X C X X X X TCP X X X X X UDP Velha B Nav. X X X X X X X X X X X X X X X