A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Erich D. Lunardeli Silvestre. Visão geral Serviços Interfaces Detalhes Avaliação.

Apresentações semelhantes


Apresentação em tema: "Erich D. Lunardeli Silvestre. Visão geral Serviços Interfaces Detalhes Avaliação."— Transcrição da apresentação:

1 Erich D. Lunardeli Silvestre

2 Visão geral Serviços Interfaces Detalhes Avaliação

3 Serviço de Bingo Serviço Confiável de Geração de Números Aleatórios Cliente do Jogador 1 Cliente do Jogador 2 Cliente do Jogador N SOAP

4 Responsabilidades: Criar instâncias de bingo; Listar bingos; Gerar e distribuir cartelas; Verificar ganhadores; Armazenar e fornecer o estado de cada bingo. Responsabilidades: Gerar números pseudo-aleatórios em faixas determinadas; NÃO armazenar estado.

5 PartidaDeBingo criar(Bingo bingo, int númeroDeJogadores) ; Parâmetros: bingo = bingo a ser realizado pelo serviço númeroDeJogadores = número de jogadores a esperar antes de iniciar os sorteios do bingo Retorno: partida criada, ela já deve possuir um número atribuído PartidaDeBingo obterPartida (int númeroDaPartida) Este método deve ser utilizado para a obtenção do estado da partida Parâmetro: númeroDaPartida = número da partida a obter Retorno: partida de bingo PartidaDeBingo[] listarPartidas(); Retorna a lista de partidas que ainda não foram iniciadas

6 PartidaDeBingo entrar (String nome, int númeroDaPartida) Parâmetros: nome = nome pelo qual o jogador será reconhecido númeroDaPartida = numero da partida a entrar Retorno: Partida de bingo, ela deve conter todos os dados de estado preenchidos Obs: é bloqueante, só retorna quando o último jogador entrar ou um timeout acontecer. void sair (String nome, int númeroDaPartida) Parâmetros: nome = nome do jogador númeroDaPartida = numero da partida a deixar

7 int[] gerarAleatorios(int menor, int maior, int[]excluídos, int quantidade) Parâmetros: menor = menor número a gerar maior = maior número a gerar excluídos = números que não devem ser gerados quantidade = números a gerar Retorno: Uma lista de números pseudo-aleatórios contidos no intervalo [menor, maior] e que não estejam na lista de excluídos. NÃO pode haver números repetidos.

8 Classe Bingo Atributos: String nomeDoCriador nome do criador do bingo, ex: Joãozinho. String nomeDoBingo Nome do bingo, ex: Bingo da Igreja X String[] prêmios (opcional Premio[]) Lista dos prêmios oferecidos no bingo Um par de métodos get/set para cada atributo Classe Premio (opcional) Atributos: String nome = nome do prêmio String urlDaImagemDoPrêmio = url da imagem do prêmio Um par de métodos get/set para cada atributo

9 Classe PartidaDeBingo Atributos: Int número Número de identificação da partida, deve ser único String estado Estado atual do bingo, valores possíveis: [Não iniciado, Iniciado, Finalizado ] int Rodada Número da rodada atual Cartela[] cartelas As cartelas de todos jogadores que participam da partida String[] ganhadores Lista dos ganhadores de cada rodada em ordem crescente int[] númerosSorteados Lista de números já sorteados na rodada atual String observações Reservado para mensagens. Por exemplo: Falta uma dezena para jogador X ganhar o prêmio Y. Um par de métodos get/set para cada atributo

10 Classe Cartela Atributo: int[] dezenas Dezenas da cartela String nomeDoJogador Nome do dono da cartela Um par de métodos get/set para cada atributo Alguns métodos a cargo do desenvolvedor, ex: marcarDezena(int dezena).

11 Uma interface gráfica deve ser implementada e permitir ao usuário: A criação de uma nova partida de bingo Listagem das partidas ainda não iniciadas Entrar em uma partida que esteja listada Quando em um bingo: Listagem dos atributos (nome, premios (se tiver URL mostrar imagem), etc..) Estado atual (atributos da classe partida) Cartela do jogador e as marcações (opcional: cartela dos demais jogadores) A atualização da interface gráfica com o Serviço de Bingo será feita pelo serviço obterPartida()

12 O número de dezenas de cada cartela é livre, assim como a faixa de números sorteados : Sugestão: 20 e [1,50] Toda geração aleatória de números deve ser feita pelo Serviço de Geração de Números Aleatórios Uma rodada é encerrada quando um jogador completa sua cartela Ao fim de cada rodada: Um prêmio é atribuído ao vencedor As marcações das cartelas são zeradas Cada sorteio de dezena deve levar no máximo 5 segundos

13 Implementação: Alguma linguagem que suporte WS: C++, Java, Python Sugestão: Java + Axis + Apache Tomcat O importante é que tanto a interface gráfica, quanto clientes e serviços funcionem

14 Apresentação Enviar código do projeto pelo menos 1 dia antes via e- mail Marcar horário via


Carregar ppt "Erich D. Lunardeli Silvestre. Visão geral Serviços Interfaces Detalhes Avaliação."

Apresentações semelhantes


Anúncios Google