[JAVA + CORBA] Jogo do Palito (Sistemas Distribuidos)

Rob-Zombie

Power Member
Boas, no meu projecto final na cadeira de Computação Distribuída pediram-me para desenvolver o seguinte jogo:

Resumidamente...
Cada jogador começa com três palitos. Os jogadores colocam as mãos para trás, e cada jogador coloca na mão direita uma certa quantidade de palitos (zero, um, dois ou três) sem que os outros jogadores saibam. A mão direita fechada vai pra frente e os palitos nessa mão de cada jogador são os palitos que estão “no jogo”.

A seguir, um dos jogadores dá um palpite sobre a soma total dos “palitos no jogo”. O próximo a dar o palpite será o jogador à esquerda do primeiro (sentido horário), e assim sucessivamente. Não pode haver palpite repetido. Quando todos os jogadores tiverem dado o seu palpite, as mãos se abrem, faz-se a soma dos palitos para ver se algum jogador acertou. Caso haja, esse jogador descarta um palito, passando a jogar com um palito a menos.

Ora... a implementação do jogo em si não me parece difícil , os únicos problemas levantados são relativos à segurança que são os seguintes:

Implementação

Todos os jogadores devem se comunicar diretamente com os outros, não existe um servidor central para fazer o controle do jogo.

Problema com jogadores trapaceiros, como impedir qualquer possibilidade de trapaça, por exemplo:

*

Como evitar que os jogadores saibam a mão direita dos outros antes de dar o palpite ?
*

Como evitar que um jogador envie diferentes valores de mão direita para cada jogador ?
*

Como evitar que um jogador malicioso se faça passar por outro ? Ou seja, enviar a mão direita ou palpite em nome de outro.
*

Como evitar que um jogador malicioso negue a mão direita ou palpite que jogou ? (propriedade de Irrefutabilidade)
*

Como sincronizar o início de uma rodada, os instantes para enviar a mão direita e o palpite ?
*

Como evitar que um jogador malicioso atrase indefinidamente o jogo ?

Portanto eu com este tópico pretendia que a maltinha me desse uma pequena ajuda,não ... não é para me fazerem o trabalho.
Apenas discutir possíveis soluções de implementação (teoricamente) , especificações do CORBA , bibliotecas que possa usar... etc etc etc.

Ah... de referir que o professor falou que valorizaria os trabalhos que apresentem todas estas soluções sem qualquer tipo de encriptação (o que me parece algo complicado ... ).

PS: Desculpem lá o "Brasuquês" do enunciado...
 
Última edição:
Back
Topo