vnc10 / ProjetoSD

Projeto de SD

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ProjetoSD

Esse repositório é referente ao projeto final da matéria de Sistemas Distribuidos, no qual, será realizado a implementação do 'WhoAmI'. O jogo é realizado da seguinte forma: o jogador escolhe uma sala para entrar, dentro da sala existem vários jogadores, no qual um vai ser o mestre, que será escolhido aleatoriamente, o mestre é quem escolhe seu personagem, e os jogadores tentam acertar. Os jogadores podem fazer uma tentativa de escolha do personagem ou fazer uma perguntar para o mestre, no qual responde se a dica com 'sim' ou 'não', com a finalidade para ajudar a descobrir quem é o personagem, o jogador que acertar primeiro vence.

Para se executar o projeto é necessario ter instalado o compilador kotlin, com o compilador já instalado, deve-se entrar na pasta 'WhoIAm' e executar os comandos:

kotlinc MainServer.kt Controller.kt Game.kt Player.kt -include-runtime -d server.jar

kotlinc MainClient.kt Client.kt -include-runtime -d client.jar

Após executado os comandos, para executar o servidor use o comando:

sudo java -jar server.jar

E para o cliente:

sudo java -jar client.jar

alt text

Interfaces:

Controller:

*A interface Controller, é responsável por configurar a partida, inicializar o servidor e invocar o Game.

Parâmetros:

namePlayers (obrigatório):

Lista com o nome dos jogadores que estarão na partida

players (obrigatório):

Lista dos jogadores que estão na partida

subRound (obrigatório):

Número de rodadas de perguntas/tentativas

totalPoints (obrigatório):

Pontuação que será atribuída ao jogador que acertar o personagem

message (obrigatório):

Input das mensagens enviadas para configuração do servidor

Game:

A interface Game, é usada para começar o jogo, configurar a rodada, verificar se o personagem está correto, apresentar a pontuação, salvar os pontos no banco de dados e mostrar o vencedor.

Parâmetros:

players (obrigatório):

Lista de jogadores que vão participar da partida.

subRounds (obrigatório):

Número de rodadas de perguntas/tentativas

totalPoints (obrigatório):

Pontuação que será atribuída ao jogador que acertar o personagem

nameArquive (obrigatório):

Nome do arquivo que será salvo a pontuação da partida.

Player:

Interface responsável por controlar o estado de cada jogador dentro do jogo.

Parâmetros:

socket (obrigatório):

Responsável por armazenar o socket de comunicação de cada jogador.

nickName (obrigatório):

Responsável por armazenar o nome de cada jogador.

score (obrigatório):

Responsável por armazenar a pontuação do jogador.

wasMaster (obrigatório):

Responsável por armazenar o estado atual do cliente, podendo ser jogador ou mestre.

acertou (obrigatório):

Responsável por armazenar o estado atual do cliente da tentativa do jogador, podendo ser True quando a tentativa for acertada, ou False quando a tentativa for errada.

mensageIn (obrigatório):

Responsável por receber as mensagens digitadas pelo jogador.

messageOut (obrigatório):

Responsável por mostrar ao jogador as mensagens enviadas pelo servidor do jogo.

About

Projeto de SD


Languages

Language:Kotlin 100.0%