Labyrinth Adelmario Douglas (adclj) Lamberto Augusto (laon) Millena Andrade (maag) Williams Azevedo (wtoa) Agenda Labyrinth Descrição Objetivos Casos de Uso Visão Geral Análise Diagrama de Classes Diagrama de Sequência Arquitetura Mapeamento Análise em Projeto Diagrama com Cápsulas Referências Labyrinth - Descrição Um jogo de labirinto onde o jogador deve descobrir qual o caminho de saída do labirinto É dividido em fases. As fases seguintes terão labirintos mais complexos Efeitos sonoros para informar que o tempo para sair do labirinto está acabando Labyrinth – Objetivos Antes de sair do labirinto, o jogador deve pegar uma chave que permitirá sua saída O jogador deverá chegar ao fim do labirinto antes de acabar o tempo pré-determinado no início da fase Conforme o jogador vai passando de fase, os labirintos vão ficando maiores e mais difíceis Quantos mais rápido ele sair do labirinto, mais pontos ele marcará Casos de Uso Casos de Uso – Visão Geral Pontuação do Jogador Perder Vida Finalizar Jogo Iniciar Jogo Usuário Movimentar Jogador Mostrar Recordes Adicionar Recorde Sair do Sistema Adicionar Recorde ao Ranking Movimentar Jogador Checar Movimento <<include>> Usuário Movimentar Jogador <<include>> Receber Chamada Chamada Iniciar timer <<include>> Iniciar Timer Perder Jogo Adicionar Recorde <<extend>> <<include>> <<include>> Decremento de Tempo Perder Vida <<include>> Adicionar Recorde ao Ranking <<include>> <<extend>> Finalizar Jogo Vencer Jogo <<include>> Pontuação do Jogador Análise Movimentar Jogador Diagrama de Classes 1 GameScreen 1 Game Movimentar Jogador Diagrama de Sequência Jogador : usuário : GameScreen : Game keyPressed(int) move(int, int) colision(int, int) boolean [boolean] setX(int) [boolean] setY(int) moveSound(boolean) [boolean] paint(Graphics) Iniciar Timer Diagrama de Classes 1..1 1 GameScreen 1 1..1 GameSettings 1 1 1 1 Counter Game Iniciar Timer Diagrama de Sequência : GameScreen : Game : Counter : GameSettings initializeTimer( ) Counter(GameScreen, Game) run( ) decTimer( ) setTime(int) paint(Graphics) o método run() é executado a cada 1s. Decrementar Tempo Diagrama de Classes 1..1 1 GameScreen 1 1..1 GameSettings 1 1 1 1 Counter Game Decrementar Tempo Diagrama de Seqüência : Game : Counter decTimer( ) : GameSettings setTime(int) setTime(int) Counter irá chamar dectTimer() a cada 1s até que timer chegue a 0 ou acabe a fase. paint(Graphics) : GameScreen Finalizar Jogo Diagrama de Classes 1..1 GameScreen 1..1 GameSettings Finalizar Jogo Diagrama de Seqüência Jogador : usuário : GameScreen : GameSettings commandAction(Command, Displayable) endGame( ) write(Vector) save( ) Adicionar Recorde Diagrama de Classes 1..1 1..n 0..n GameScreen 1 Game Record 1 RecordCollection Adicionar Record gameScreen : GameScreen game : Game Jogador : usuário winGame( ) win game: boolean [win game: boolean] winner() getScore( ) score : int getRecord( ) records : RecordRepository getIniciais() iniciais Record(String, int) addRecord(String, int) record : Record : RecordCollection Adicionar Recorde ao Ranking Diagrama de Classes Diagrama de Pacotes Diagrama de Pacotes Arquitetura J2ME Interface MiDLet Menu Canvas Telas Jogo Negócio Lógica Cadastro de Recordes Dados Controle de Configuração Classes Básicas Repositório de Recordes Interface de Dados Arquivo Recordes File Configuração Mapeamento Análise em Projeto Classes de Análise Elementos de Projeto Game Counter GameScreen Game Counter GameScreen LabyrinthMenu RecordsScreen LabyritnthMenu RecordsScreen Record RecordCollection Record RecordRegistry RecordRepository GameSettings GameSettings Labyrinth Labyrinth File FileInterface SendRecordProtocol Connection GameProtocol CounterProtocol MenuSelectionProtocol Diagrama com Cápsula Referências Labyrinth adelmario.googlepages.com Análise e Projeto de Sistemas www.cin.ufpe.br/~if718 Dúvidas