Pedro A. (discussão | contribs)
Pedro A. (discussão | contribs)
Linha 104: Linha 104:
**Gatilho                         O jogador escolhe uma opção do menu
**Gatilho                         O jogador escolhe uma opção do menu
**Casos Incluídos Desenha na Tela, Lê entradas de Menu, Inicializa o jogo
**Casos Incluídos Desenha na Tela, Lê entradas de Menu, Inicializa o jogo
**Fluxo principal 1 Desenha na tela (Includes "Desenha na Tela")
**Fluxo principal
** 2 Checa Input (Includes "Lê entradas de Menu")
*** 1 Desenha na tela (Includes "Desenha na Tela")
** 3 O jogador escolhe uma opção do menu
*** 2 Checa Input (Includes "Lê entradas de Menu")
** 4 O jogador escolhe a opção de jogar
*** 3 O jogador escolhe uma opção do menu
** 5 Inicializa as variáveis do jogo (Includes "Inicializa o jogo")
*** 4 O jogador escolhe a opção de jogar
** 6 O jogo começa (Extends "Loop Principal do Jogo")
*** 5 Inicializa as variáveis do jogo (Includes "Inicializa o jogo")
*** 6 O jogo começa (Extends "Loop Principal do Jogo")
**Exceções
**Exceções
** 2.1.1 O jogador escolhe a opção de Highscores
*** 2.1.1 O jogador escolhe a opção de Highscores
** 2.1.2 Mostra as pontuações (Extends "Highscores")
*** 2.1.2 Mostra as pontuações (Extends "Highscores")
** 2.2.1 O jogador escolhe a opção de Sair do Jogo
*** 2.2.1 O jogador escolhe a opção de Sair do Jogo
** 2.2.2 Sai do Jogo
*** 2.2.2 Sai do Jogo




Linha 127: Linha 128:
**Gatilho                         A função é Chamada
**Gatilho                         A função é Chamada
**Casos Incluídos N/A
**Casos Incluídos N/A
**Fluxo principal 1. Desenha o Menu na Tela
**Fluxo principal
** 2. Desenha o Realçe da Opção Selecionada
*** 1. Desenha o Menu na Tela
*** 2. Desenha o Realce da Opção Selecionada
**Exceções
**Exceções
** N/A
*** N/A




Linha 143: Linha 145:
**Gatilho                         A função é Chamada
**Gatilho                         A função é Chamada
**Casos Incluídos N/A
**Casos Incluídos N/A
**Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
**Fluxo principal
** 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
*** 1. Espera o Jogador Apertar algum botão que é aceito
*** 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
**Exceções
**Exceções
** N/A
*** N/A




Linha 159: Linha 162:
**Gatilho                         A Condição de Saída do Jogo é Verdadeira
**Gatilho                         A Condição de Saída do Jogo é Verdadeira
**Casos Incluídos N/A
**Casos Incluídos N/A
**Fluxo principal 1. Fecha e finaliza o Programa
**Fluxo principal
*** 1. Fecha e finaliza o Programa
**Exceções
**Exceções
** N/A
*** N/A




Linha 174: Linha 178:
**Gatilho                         O jogador selecionar a opção de jogar do menu principal
**Gatilho                         O jogador selecionar a opção de jogar do menu principal
**Casos Incluídos N/A
**Casos Incluídos N/A
**Fluxo principal 1. Inicializa a classe do jogador
**Fluxo principal
** 2. Inicializa as listas de balas e inimigos
*** 1. Inicializa a classe do jogador
*** 2. Inicializa as listas de balas e inimigos
**Exceções
**Exceções
** N/A
*** N/A




Linha 189: Linha 194:
**Gatilho                         O jogador inciar um jogo ou despausar um já inicializado
**Gatilho                         O jogador inciar um jogo ou despausar um já inicializado
**Casos Incluídos Desenha na Tela, Lê Entradas de Jogo, Checa Impacto, Atualiza Estados, Reproduz Sons
**Casos Incluídos Desenha na Tela, Lê Entradas de Jogo, Checa Impacto, Atualiza Estados, Reproduz Sons
**Fluxo principal 1 Desenha na tela (Includes "Desenha na Tela")
**Fluxo principal
** 2 Checa Input (Includes "Lê entradas de Jogo")
*** 1 Desenha na tela (Includes "Desenha na Tela")
** 3 Checa Impacto (Includes "Checa Impacto")
*** 2 Checa Input (Includes "Lê entradas de Jogo")
** 4 Atualiza os estados do Jogo (Includes "Atualiza Estados")
*** 3 Checa Impacto (Includes "Checa Impacto")
** 5 Reproduz Sons (Includes "Reproduz Sons")
*** 4 Atualiza os estados do Jogo (Includes "Atualiza Estados")
** 1.
*** 5 Reproduz Sons (Includes "Reproduz Sons")
*** 1.
**Exceções
**Exceções
** 2.1 O jogo foi pausado (Extends "Pausar")
*** 2.1 O jogo foi pausado (Extends "Pausar")
** 4.1 O jogador está sem vidas (Extends "Game Over")
*** 4.1 O jogador está sem vidas (Extends "Game Over")




Linha 211: Linha 217:
**Gatilho                         A função é Chamada
**Gatilho                         A função é Chamada
**Casos Incluídos N/A
**Casos Incluídos N/A
**Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
**Fluxo principal
** 2. Altera os estados do Jogador de Acordo com o Botão que foi apertado
*** 1. Espera o Jogador Apertar algum botão que é aceito
*** 2. Altera os estados do Jogador de Acordo com o Botão que foi apertado
**Exceções
**Exceções
** N/A
*** N/A




Linha 227: Linha 234:
**Gatilho                         A função é chamada
**Gatilho                         A função é chamada
**Casos Incluídos
**Casos Incluídos
**Fluxo principal 1. Checa se algum dos inimigos da lista de inimigos colide com o jogador
**Fluxo principal
** 2. Checa se algum dos inimigos da lista de inimigos colide com alguma bala da lista de balas
*** 1. Checa se algum dos inimigos da lista de inimigos colide com o jogador
*** 2. Checa se algum dos inimigos da lista de inimigos colide com alguma bala da lista de balas
**Exceções
**Exceções
** 1.1 Algum inimigo Colide com o jogador
*** 1.1 Algum inimigo Colide com o jogador
** 1.2 O jogador perde uma vida, dá ao jogador um tempo de imunidade
*** 1.2 O jogador perde uma vida, dá ao jogador um tempo de imunidade
** 1.3 -> 1.
*** 1.3 -> 1.
** 2.1 Algum inimigo Colide com alguma bala
*** 2.1 Algum inimigo Colide com alguma bala
** 2.2 Destrói a bala e o inimigo, aumenta a pontuação do jogador
*** 2.2 Destrói a bala e o inimigo, aumenta a pontuação do jogador
** 2.3 -> 2.
*** 2.3 -> 2.






Nome do caso de uso Atualiza Estados
*Nome do caso de uso Atualiza Estados
Alvo no contexto O jogo atualiza os demais estados envolvidos no jogo
**Alvo no contexto O jogo atualiza os demais estados envolvidos no jogo
Precondições Estar no Jogo
**Precondições Estar no Jogo
Condição de sucesso Os estados são atualizados
**Condição de sucesso Os estados são atualizados
Condição de falha Os estados não são atualizados
**Condição de falha Os estados não são atualizados
Ator primário N/A
**Ator primário N/A
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         A função é chamada
**Gatilho                         A função é chamada
Casos Incluídos
**Casos Incluídos
Fluxo principal 1. Atualiza as posições das balas da lista de balas
**Fluxo principal
2. Atualiza as posições dos inimigos da lista de inimigos
*** 1. Atualiza as posições das balas da lista de balas
3. Verifica os estados do jogador
*** 2. Atualiza as posições dos inimigos da lista de inimigos
Exceções
*** 3. Verifica os estados do jogador
N/A
**Exceções
*** N/A






Nome do caso de uso Desenha na Tela (Jogo)
*Nome do caso de uso Desenha na Tela (Jogo)
Alvo no contexto Desenha o Jogo na Tela
**Alvo no contexto Desenha o Jogo na Tela
Precondições Estar no Jogo
**Precondições Estar no Jogo
Condição de sucesso O Jogo é desenhado
**Condição de sucesso O Jogo é desenhado
Condição de falha O Jogo não é desenhado
**Condição de falha O Jogo não é desenhado
Ator primário N/A
**Ator primário N/A
Ator secundário         Jogador, Balas, Inimigos
**Ator secundário         Jogador, Balas, Inimigos
Gatilho                         A função é Chamada
**Gatilho                         A função é Chamada
Casos Incluídos N/A
**Casos Incluídos N/A
Fluxo principal 1. Desenha o jogador, a pontuação e vidas do mesmo
**Fluxo principal 1. Desenha o jogador, a pontuação e vidas do mesmo
2. Desenha as balas da lista de balas
** 2. Desenha as balas da lista de balas
3. Desenha os inimigos da lista de inimigos
** 3. Desenha os inimigos da lista de inimigos
Exceções
**Exceções
N/A
** N/A






Nome do caso de uso Reproduz Sons
*Nome do caso de uso Reproduz Sons
Alvo no contexto Reproduz a música de fundo e os sons do jogo
**Alvo no contexto Reproduz a música de fundo e os sons do jogo
Precondições Estar no Jogo, Ter tido alguma colisão ou alguma bala ser disparada
**Precondições Estar no Jogo, Ter tido alguma colisão ou alguma bala ser disparada
Condição de sucesso Os sons são reproduzidos
**Condição de sucesso Os sons são reproduzidos
Condição de falha N/A
**Condição de falha N/A
Ator primário N/A
**Ator primário N/A
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         A função ser chamada OU houve alguma colisão OU houve algum disparo
**Gatilho                         A função ser chamada OU houve alguma colisão OU houve algum disparo
Casos Incluídos
**Casos Incluídos
Fluxo principal 1. Houver alguma colisão?
**Fluxo principal 1. Houver alguma colisão?
2. Houve algum disparo?
** 2. Houve algum disparo?
3. Reproduz Música de fundo.
** 3. Reproduz Música de fundo.
Exceções
**Exceções
1.1 Houve, reproduz som da colisão
** 1.1 Houve, reproduz som da colisão
2.1 Houve, reproduz som do disparo
** 2.1 Houve, reproduz som do disparo




Nome do caso de uso Pausar
*Nome do caso de uso Pausar
Alvo no contexto O jogador selecionou a opção de jogar do menu ou despausou o jogo
**Alvo no contexto O jogador selecionou a opção de jogar do menu ou despausou o jogo
Precondições O jogador ter inicializado o jogo
**Precondições O jogador ter inicializado o jogo
Condição de sucesso O jogador Volta ao jogo
**Condição de sucesso O jogador Volta ao jogo
Condição de falha O jogador Sai do jogo
**Condição de falha O jogador Sai do jogo
Ator primário O jogador
**Ator primário O jogador
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         O jogador pausa o jogo
**Gatilho                         O jogador pausa o jogo
Casos Incluídos Desenha na Tela, Lê entradas de Pause Game
**Casos Incluídos Desenha na Tela, Lê entradas de Pause Game
Fluxo principal 1 Desenha na tela (Includes "Desenha na Tela")
**Fluxo principal 1 Desenha na tela (Includes "Desenha na Tela")
2 Checa Input (Includes "Lê entradas de Pause Game")
** 2 Checa Input (Includes "Lê entradas de Pause Game")
3 O jogador escolhe uma opção do menu
** 3 O jogador escolhe uma opção do menu
4 O jogador escolhe a opção de voltar ao jogo
** 4 O jogador escolhe a opção de voltar ao jogo
5 O jogo recomeça (Extends "Loop Principal do Jogo")
** 5 O jogo recomeça (Extends "Loop Principal do Jogo")
Exceções
**Exceções
2.1.1 O jogador escolhe a opção de sair do jogo
** 2.1.1 O jogador escolhe a opção de sair do jogo
2.1.2 Volta ao menu (Extends "Menu Principal")
** 2.1.2 Volta ao menu (Extends "Menu Principal")






Nome do caso de uso Lê entradas de Pause
*Nome do caso de uso Lê entradas de Pause
Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Pausa
**Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Pausa
Precondições O Jogo estar Pausado
**Precondições O Jogo estar Pausado
Condição de sucesso O Jogador pressiona alguma entrada que é aceita
**Condição de sucesso O Jogador pressiona alguma entrada que é aceita
Condição de falha N/A
**Condição de falha N/A
Ator primário Jogador
**Ator primário Jogador
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         A função é Chamada
**Gatilho                         A função é Chamada
Casos Incluídos N/A
**Casos Incluídos N/A
Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
**Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
2. Altera o estado do Menu de Acordo com o Botão que foi apertado
** 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
Exceções
**Exceções
N/A
** N/A






Nome do caso de uso Desenha na Tela (Pausar)
*Nome do caso de uso Desenha na Tela (Pausar)
Alvo no contexto Desenha o Jogo na Tela
**Alvo no contexto Desenha o Jogo na Tela
Precondições O Jogo estar Pausado
**Precondições O Jogo estar Pausado
Condição de sucesso O Jogo e o menu de pause são desenhados
**Condição de sucesso O Jogo e o menu de pause são desenhados
Condição de falha O Jogo e o menu de pause não são é desenhado
**Condição de falha O Jogo e o menu de pause não são é desenhado
Ator primário N/A
**Ator primário N/A
Ator secundário         Jogador, Balas, Inimigos
**Ator secundário         Jogador, Balas, Inimigos
Gatilho                         A função é Chamada
**Gatilho                         A função é Chamada
Casos Incluídos N/A
**Casos Incluídos N/A
Fluxo principal 1. Desenha o jogador, a pontuação e vidas do mesmo
**Fluxo principal 1. Desenha o jogador, a pontuação e vidas do mesmo
2. Desenha as balas da lista de balas
** 2. Desenha as balas da lista de balas
3. Desenha os inimigos da lista de inimigos
** 3. Desenha os inimigos da lista de inimigos
4. Desenha o Menu de pause
** 4. Desenha o Menu de pause
5. Desenha o realçe da opção selecionada
** 5. Desenha o realçe da opção selecionada
Exceções
**Exceções
N/A
** N/A




Nome do caso de uso Retorna ao Jogo
*Nome do caso de uso Retorna ao Jogo
Alvo no contexto O Jogador está despausando o jogo
**Alvo no contexto O Jogador está despausando o jogo
Precondições O Jogador Estar no menu de jogo pausado
**Precondições O Jogador Estar no menu de jogo pausado
Condição de sucesso O jogo continua
**Condição de sucesso O jogo continua
Condição de falha N/A
**Condição de falha N/A
Ator primário N/A
**Ator primário N/A
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         A Condição de pausa é falsa
**Gatilho                         A Condição de pausa é falsa
Casos Incluídos N/A
**Casos Incluídos N/A
Fluxo principal 1. Retorna ao jogo
**Fluxo principal 1. Retorna ao jogo
Exceções
**Exceções
N/A
** N/A






Nome do caso de uso Voltar ao Menu Principal
*Nome do caso de uso Voltar ao Menu Principal
Alvo no contexto O Jogador está saindo do jogo e indo para o menu principal
**Alvo no contexto O Jogador está saindo do jogo e indo para o menu principal
Precondições O Jogador Estar no menu de jogo pausado
**Precondições O Jogador Estar no menu de jogo pausado
Condição de sucesso O jogo cessa e abre-se o menu principal
**Condição de sucesso O jogo cessa e abre-se o menu principal
Condição de falha N/A
**Condição de falha N/A
Ator primário N/A
**Ator primário N/A
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         A Condição de voltar ao menu é verdadeira
**Gatilho                         A Condição de voltar ao menu é verdadeira
Casos Incluídos N/A
**Casos Incluídos N/A
Fluxo principal 1. Retorna ao menu principal
**Fluxo principal 1. Retorna ao menu principal
Exceções
**Exceções
N/A
** N/A






Nome do caso de uso Game Over
*Nome do caso de uso Game Over
Alvo no contexto O Jogador Morreu no Jogo
**Alvo no contexto O Jogador Morreu no Jogo
Precondições O jogador deveria estar jogando e perdeu todas suas vidas
**Precondições O jogador deveria estar jogando e perdeu todas suas vidas
Condição de sucesso O Jogador Tem sua pontuação salva
**Condição de sucesso O Jogador Tem sua pontuação salva
Condição de falha N/A
**Condição de falha N/A
Ator primário Jogador
**Ator primário Jogador
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         O Jogador Morre
**Gatilho                         O Jogador Morre
Casos Incluídos Desenha na Tela, Lê Entradas de Game Over, Carregar Jogos Salvos, Calcular Onde a Nova Pontuação Entra, Salvar
**Casos Incluídos Desenha na Tela, Lê Entradas de Game Over, Carregar Jogos Salvos, Calcular Onde a Nova Pontuação Entra, Salvar
Fluxo principal 1. Desenha na Tela (Includes "Desenha na Tela")
**Fluxo principal 1. Desenha na Tela (Includes "Desenha na Tela")
2. Lê Entradas de Game Over (Includes "Lê Entradas de Game Over")
** 2. Lê Entradas de Game Over (Includes "Lê Entradas de Game Over")
1.  
** 1.  
Exceções
**Exceções
2.1 O Jogador Entrou com o nome dele na tela e Confirmou o nome
** 2.1 O Jogador Entrou com o nome dele na tela e Confirmou o nome
2.2 Carrega as pontuações antigas (Includes "Carregar Jogos Salvos")
** 2.2 Carrega as pontuações antigas (Includes "Carregar Jogos Salvos")
2.3 Calcula onde a nova pontuação entra (Includes "Calcular Onde a Nova Pontuação Entra")
** 2.3 Calcula onde a nova pontuação entra (Includes "Calcular Onde a Nova Pontuação Entra")
2.4 Salva a nova Highscore (Includes "Salvar")
** 2.4 Salva a nova Highscore (Includes "Salvar")
2.5 Volta ao menu (Extends "Menu Principal")
** 2.5 Volta ao menu (Extends "Menu Principal")






Nome do caso de uso Desenha na Tela (Game Over)
*Nome do caso de uso Desenha na Tela (Game Over)
Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Game Over
**Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Game Over
Precondições O Jogo estar nol menu de fim de jogo
**Precondições O Jogo estar nol menu de fim de jogo
Condição de sucesso O Jogador pressiona alguma entrada que é aceita
**Condição de sucesso O Jogador pressiona alguma entrada que é aceita
Condição de falha N/A
**Condição de falha N/A
Ator primário Jogador
**Ator primário Jogador
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         A função é Chamada
**Gatilho                         A função é Chamada
Casos Incluídos N/A
**Casos Incluídos N/A
Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
**Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
2. Altera o estado do Menu de Acordo com o Botão que foi apertado
** 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
Exceções
**Exceções
N/A
** N/A






Nome do caso de uso Lê Entradas de Game Over
*Nome do caso de uso Lê Entradas de Game Over
Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de game over
**Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de game over
Precondições Ter morrido no jogo, estar no menu de game over
**Precondições Ter morrido no jogo, estar no menu de game over
Condição de sucesso O Jogador pressiona alguma entrada que é aceita
**Condição de sucesso O Jogador pressiona alguma entrada que é aceita
Condição de falha N/A
**Condição de falha N/A
Ator primário Jogador
**Ator primário Jogador
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         A função é Chamada
**Gatilho                         A função é Chamada
Casos Incluídos N/A
**Casos Incluídos N/A
Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
**Fluxo principal
2. Altera o estado do Menu de Acordo com o Botão que foi apertado
*** 1. Espera o Jogador Apertar algum botão que é aceito
Exceções
*** 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
N/A
**Exceções
*** N/A






Nome do caso de uso Carregar Jogos Salvos
*Nome do caso de uso Carregar Jogos Salvos
Alvo no contexto As pontuações salvas estão sendo buscadas, lidas e armazenadas temporáriamente em uma variável
**Alvo no contexto As pontuações salvas estão sendo buscadas, lidas e armazenadas temporáriamente em uma variável
Precondições A função ser chamada, O arquivo existir
**Precondições A função ser chamada, O arquivo existir
Condição de sucesso As pontuações são lidas com sucesso
**Condição de sucesso As pontuações são lidas com sucesso
Condição de falha As pontuações não são lidas com sucesso
**Condição de falha As pontuações não são lidas com sucesso
Ator primário N/A
**Ator primário N/A
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         A função é chamada
**Gatilho                         A função é chamada
Casos Incluídos N/A
**Casos Incluídos N/A
Fluxo principal 1. Verifica se existe o arquivo
**Fluxo principal
2. O arquivo existe, Lê o arquivo e guarda os valores em uma variável
*** 1. Verifica se existe o arquivo
Exceções
*** 2. O arquivo existe, Lê o arquivo e guarda os valores em uma variável
1.1 O Arquivo não existe
**Exceções
1.2 Um arquivo é criado com todas as posições do highscore com nome AAA e pontuação zero.
*** 1.1 O Arquivo não existe
1.3 -> 2.
*** 1.2 Um arquivo é criado com todas as posições do highscore com nome AAA e pontuação zero.
*** 1.3 -> 2.






Nome do caso de uso Calcular Onde a nova pontuação entra
*Nome do caso de uso Calcular Onde a nova pontuação entra
Alvo no contexto Uma nova pontuação será salva no highscores
**Alvo no contexto Uma nova pontuação será salva no highscores
Precondições A função ser chamada
**Precondições A função ser chamada
Condição de sucesso A nova pontuação entra no highscore
**Condição de sucesso A nova pontuação entra no highscore
Condição de falha A nova pontuação é pequena demais para entrar no highscore
**Condição de falha A nova pontuação é pequena demais para entrar no highscore
Ator primário N/A
**Ator primário N/A
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         A função é chamada
**Gatilho                         A função é chamada
Casos Incluídos N/A
**Casos Incluídos N/A
Fluxo principal 1. Verifica se a nova pontuação é maior que alguma das já existentes
**Fluxo principal
2. A nova pontuação é maior que alguma já existente
*** 1. Verifica se a nova pontuação é maior que alguma das já existentes
3. Move todas as pontuações abaixo desta, inclusive a mesma, uma posição abaixo do vetor, descartando a ultima
*** 2. A nova pontuação é maior que alguma já existente
4. Salva a nova pontuação na posição da antiga
*** 3. Move todas as pontuações abaixo desta, inclusive a mesma, uma posição abaixo do vetor, descartando a ultima
Exceções
*** 4. Salva a nova pontuação na posição da antiga
1.1 A nova pontuação não é maior que nenhuma das já existentes.
**Exceções
1.2 A nova pontuação é descartada
*** 1.1 A nova pontuação não é maior que nenhuma das já existentes.
*** 1.2 A nova pontuação é descartada






Nome do caso de uso Salvar
*Nome do caso de uso Salvar
Alvo no contexto As pontuações serão salvas em um arquivo
**Alvo no contexto As pontuações serão salvas em um arquivo
Precondições As pontuações estão armazenadas temporáriamente em alguma variável
**Precondições As pontuações estão armazenadas temporáriamente em alguma variável
Condição de sucesso Salva as pontuações armazenadas nessa variável no arquivo
**Condição de sucesso Salva as pontuações armazenadas nessa variável no arquivo
Condição de falha N/A
**Condição de falha N/A
Ator primário N/A
**Ator primário N/A
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         A função é chamada
**Gatilho                         A função é chamada
Casos Incluídos N/A
**Casos Incluídos N/A
Fluxo principal 1. Salva/Sobrescreve os valores da variável em um arquivo de dados
**Fluxo principal
Exceções
*** 1. Salva/Sobrescreve os valores da variável em um arquivo de dados
N/A
**Exceções
*** N/A






Nome do caso de uso Highscores
*Nome do caso de uso Highscores
Alvo no contexto O jogador acesssou as pontuações do menu
**Alvo no contexto O jogador acesssou as pontuações do menu
Precondições O jogador deve ter selecionado no menu a opção de mostrar a pontuação
**Precondições O jogador deve ter selecionado no menu a opção de mostrar a pontuação
Condição de sucesso O jogador sai da tela de pontuações
**Condição de sucesso O jogador sai da tela de pontuações
Condição de falha N/A
**Condição de falha N/A
Ator primário Jogador
**Ator primário Jogador
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         O jogador acessou a opção de mostrar pontuações através do menu
**Gatilho                         O jogador acessou a opção de mostrar pontuações através do menu
Casos Incluídos Desenha na Tela, Lê Entradas de Highscore, Carregar Jogos Salvos
**Casos Incluídos Desenha na Tela, Lê Entradas de Highscore, Carregar Jogos Salvos
Fluxo principal 1. Carrega as pontuações já salvas (Includes "Carregar Jogos Salvos")
**Fluxo principal
2. Desenha na Tela (Includes "Desenha na Tela")
*** 1. Carrega as pontuações já salvas (Includes "Carregar Jogos Salvos")
3. Lê Entradas de Game Over (Includes "Lê Entradas de Game Over")
*** 2. Desenha na Tela (Includes "Desenha na Tela")
2.
*** 3. Lê Entradas de Game Over (Includes "Lê Entradas de Game Over")
Exceções
*** 2.
3.1 O Jogador apertou o botão para sair dessa tela
**Exceções
3.2 Volta ao menu (Extends "Menu Principal")
*** 3.1 O Jogador apertou o botão para sair dessa tela
*** 3.2 Volta ao menu (Extends "Menu Principal")






Nome do caso de uso Desenha na Tela (Highscores)
*Nome do caso de uso Desenha na Tela (Highscores)
Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Highscores
**Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Highscores
Precondições O Jogo estar no menu de highscores
**Precondições O Jogo estar no menu de highscores
Condição de sucesso O Jogador pressiona alguma entrada que é aceita
**Condição de sucesso O Jogador pressiona alguma entrada que é aceita
Condição de falha N/A
**Condição de falha N/A
Ator primário Jogador
**Ator primário Jogador
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         A função é Chamada
**Gatilho                         A função é Chamada
Casos Incluídos N/A
**Casos Incluídos N/A
Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
**Fluxo principal
2. Altera o estado do Menu de Acordo com o Botão que foi apertado
*** 1. Espera o Jogador Apertar algum botão que é aceito
Exceções
*** 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
N/A
**Exceções
*** N/A






Nome do caso de uso Lê entradas de Highscore
*Nome do caso de uso Lê entradas de Highscore
Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu
**Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu
Precondições Estar no Menu de Highscores
**Precondições Estar no Menu de Highscores
Condição de sucesso O Jogador pressiona alguma entrada que é aceita
**Condição de sucesso O Jogador pressiona alguma entrada que é aceita
Condição de falha N/A
**Condição de falha N/A
Ator primário Jogador
**Ator primário Jogador
Ator secundário         N/A
**Ator secundário         N/A
Gatilho                         A função é Chamada
**Gatilho                         A função é Chamada
Casos Incluídos N/A
**Casos Incluídos N/A
Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
**Fluxo principal
2. Volta ao menu principal
*** 1. Espera o Jogador Apertar algum botão que é aceito
Exceções
*** 2. Volta ao menu principal
N/A
**Exceções
*** N/A

Edição das 15h43min de 4 de setembro de 2013

Escopo


  • O projeto visa o desenvolvimento de um jogo eletrônico 2D, com um sistema de pontuação e armazenamento de recordes. Esse projeto deverá, provavelmente, ser desenvolvido em Allegro, com a linguagem de desenvolvimento sendo a c++.
  • Links para algumas definições:


5W2H

  • What?
  • Why?
  • Where?
  • When?
  • Who?
  • How Much?
  • How?


What

  1. Qual o nome do seu projeto? CATUS
  2. Qual o objetivo deste projeto? Criar um jogo eletrônico de plataforma 2d
  3. Quais os maiores desafios, na sua opinião, para se realizar este trabalho? A realização de uma detecção de colisão satisfatória assim como um sistema de física igualmente bom.
  4. Quais os conhecimentos básicos que devemos ter para se implementar este projeto? Conhecimentos de programação intermediária para avançada, dependendo da ferramenta utilizada.
  5. Quais soluções similares existem no mercado? Várias. Ex. jogos da franquia "Mario", "Sonic" dentre vários outros.


Why

  1. Porque é interessante desenvolver este projeto? Pois é um projeto que irá melhorar os conhecimentos de programação de quem o fizer, e também pois abrirá portas para conseguir desenvolver jogos de dificuldade maior.
  2. Porque deve usar a tecnologia escolhida? Porquê é uma ferramenta que permite a criação de diversos tipos de aplicações diferentes, assim como permite o desenvolvimento para plataformas diferentes, e também é considerada uma ferramenta de fácil uso adequada para projetos de pequeno porte.


Who

  1. Quem pode se beneficiar deste projeto? Qualquer pessoa com um computador pessoal e com "Unity3d" instalado.
  2. Quem poderá operar o sistema? Qualquer pessoa com dedos nas mãos e olhos.
  3. Quem deverá participar do desenvolvimento do sistema? Qualquer pessoa interessada.


Where

  1. Onde os dados serão inseridos? No teclado de um computador.
  2. Onde os dados serão externalizados, publicados? A localização do personagem, assim como dos outros objetos do jogo, a pontuação do jogador, sua vida e em qual nível ele está.
  3. Onde esta aplicação poderá ser usada? Qualque computador pessoal com "Unity3d" instalado.
  4. Onde as informações serão armazenadas? Em um arquivo .txt ou de alguma outra extensão que armazene dados.
  5. Onde o software deverá ser hospedado? Em algum site de armazenamento de projetos, por exemplo o SourceForge, ou algum site qualquer que ofereça hospedagem de arquivos


When

  1. Em quanto tempo pretende desenvolver o sistema? De 3 a 4 meses.
  2. Quais serão as fases e em quanto tempo cada uma? As fases serão: Criação do sistema inicial do jogo [2 Meses], Criação da interface do menu [Menos de 1 mês] e criação dos níveis para o jogo [1 a 2 Meses].


How

  1. Como será dividido o desenvolvimento do sistema? Utilizando a linguagem C# para programar na plataforma unity3d, juntamente com algumas ferramentas gratuítas de edição de imagens
  2. Como será feita a entrada de dados? Pelo Teclado
  3. Como será feita a saída de dados? Pela tela e pelos alto-falantes do computador


How much

  1. Quanto deverá custar o sistema? O software poderá ser desenvolvido sem custo algum.
  2. Quantas pessoas deverão ser usadas? Um time de até 5 pessoas já será mais do que o necessário. O projeto poderá inclusive ser realizado por uma só pessoa.
  3. Qual deverá ser o preço de aquisição do seu software para o usuário final? O software poderá ser distribuído gratuitamente.


DFD

DER

Diagrama de Classes

Diagrama de Caso de Uso

Detalhamento dos Casos de Uso

  • Nome do caso de uso Menu Principal
    • Alvo no contexto O jogador abriu o executável ou saiu do jogo nesse momento
    • Precondições Nenhuma
    • Condição de sucesso O jogador começa a jogar ou abre as pontuações
    • Condição de falha O jogador sai do programa
    • Ator primário Jogador
    • Ator secundário N/A
    • Gatilho O jogador escolhe uma opção do menu
    • Casos Incluídos Desenha na Tela, Lê entradas de Menu, Inicializa o jogo
    • Fluxo principal
      • 1 Desenha na tela (Includes "Desenha na Tela")
      • 2 Checa Input (Includes "Lê entradas de Menu")
      • 3 O jogador escolhe uma opção do menu
      • 4 O jogador escolhe a opção de jogar
      • 5 Inicializa as variáveis do jogo (Includes "Inicializa o jogo")
      • 6 O jogo começa (Extends "Loop Principal do Jogo")
    • Exceções
      • 2.1.1 O jogador escolhe a opção de Highscores
      • 2.1.2 Mostra as pontuações (Extends "Highscores")
      • 2.2.1 O jogador escolhe a opção de Sair do Jogo
      • 2.2.2 Sai do Jogo


  • Nome do caso de uso Desenha na Tela (Menu)
    • Alvo no contexto Desenha o Menu Principal na Tela
    • Precondições Estar no Menu Principal
    • Condição de sucesso O Menu é desenhado
    • Condição de falha O Menu não é desenhado
    • Ator primário N/A
    • Ator secundário N/A
    • Gatilho A função é Chamada
    • Casos Incluídos N/A
    • Fluxo principal
      • 1. Desenha o Menu na Tela
      • 2. Desenha o Realce da Opção Selecionada
    • Exceções
      • N/A


  • Nome do caso de uso Lê Entradas de Menu
    • Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu
    • Precondições Estar no Menu Principal
    • Condição de sucesso O Jogador pressiona alguma entrada que é aceita
    • Condição de falha N/A
    • Ator primário Jogador
    • Ator secundário N/A
    • Gatilho A função é Chamada
    • Casos Incluídos N/A
    • Fluxo principal
      • 1. Espera o Jogador Apertar algum botão que é aceito
      • 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
    • Exceções
      • N/A


  • Nome do caso de uso Fim do Programa
    • Alvo no contexto O Jogador Está Saindo do Jogo
    • Precondições O Jogador Estar no Menu
    • Condição de sucesso O Jogador Sai da aplicação
    • Condição de falha N/A
    • Ator primário N/A
    • Ator secundário N/A
    • Gatilho A Condição de Saída do Jogo é Verdadeira
    • Casos Incluídos N/A
    • Fluxo principal
      • 1. Fecha e finaliza o Programa
    • Exceções
      • N/A


  • Nome do caso de uso Inicializa o Jogo
    • Alvo no contexto O Jogador está começando um novo jogo
    • Precondições O jogador ter selecionado "Jogar" do menu principal
    • Condição de sucesso As variaveis do jogo são Inicializadas
    • Condição de falha N/A
    • Ator primário N/A
    • Ator secundário N/A
    • Gatilho O jogador selecionar a opção de jogar do menu principal
    • Casos Incluídos N/A
    • Fluxo principal
      • 1. Inicializa a classe do jogador
      • 2. Inicializa as listas de balas e inimigos
    • Exceções
      • N/A


  • Nome do caso de uso Loop Principal do Jogo
    • Alvo no contexto O jogador selecionou a opção de jogar do menu ou despausou o jogo
    • Precondições O jogador ter inicializado o jogo
    • Condição de sucesso O jogador Morre
    • Condição de falha O jogador Pausa
    • Ator primário O jogador
    • Ator secundário N/A
    • Gatilho O jogador inciar um jogo ou despausar um já inicializado
    • Casos Incluídos Desenha na Tela, Lê Entradas de Jogo, Checa Impacto, Atualiza Estados, Reproduz Sons
    • Fluxo principal
      • 1 Desenha na tela (Includes "Desenha na Tela")
      • 2 Checa Input (Includes "Lê entradas de Jogo")
      • 3 Checa Impacto (Includes "Checa Impacto")
      • 4 Atualiza os estados do Jogo (Includes "Atualiza Estados")
      • 5 Reproduz Sons (Includes "Reproduz Sons")
      • 1.
    • Exceções
      • 2.1 O jogo foi pausado (Extends "Pausar")
      • 4.1 O jogador está sem vidas (Extends "Game Over")



  • Nome do caso de uso Lê Entradas de Jogo
    • Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu
    • Precondições Estar no Jogo
    • Condição de sucesso O Jogador pressiona alguma entrada que é aceita
    • Condição de falha N/A
    • Ator primário Jogador
    • Ator secundário N/A
    • Gatilho A função é Chamada
    • Casos Incluídos N/A
    • Fluxo principal
      • 1. Espera o Jogador Apertar algum botão que é aceito
      • 2. Altera os estados do Jogador de Acordo com o Botão que foi apertado
    • Exceções
      • N/A


  • Nome do caso de uso Checa Impacto
    • Alvo no contexto O jogo checa se há colisão entre algum dos objetos colidíveis
    • Precondições Estar no Jogo
    • Condição de sucesso É verificado se há algum impacto
    • Condição de falha Não é verificado impacto algum
    • Ator primário Jogador, Balas
    • Ator secundário Inimigos, Balas, jogador
    • Gatilho A função é chamada
    • Casos Incluídos
    • Fluxo principal
      • 1. Checa se algum dos inimigos da lista de inimigos colide com o jogador
      • 2. Checa se algum dos inimigos da lista de inimigos colide com alguma bala da lista de balas
    • Exceções
      • 1.1 Algum inimigo Colide com o jogador
      • 1.2 O jogador perde uma vida, dá ao jogador um tempo de imunidade
      • 1.3 -> 1.
      • 2.1 Algum inimigo Colide com alguma bala
      • 2.2 Destrói a bala e o inimigo, aumenta a pontuação do jogador
      • 2.3 -> 2.


  • Nome do caso de uso Atualiza Estados
    • Alvo no contexto O jogo atualiza os demais estados envolvidos no jogo
    • Precondições Estar no Jogo
    • Condição de sucesso Os estados são atualizados
    • Condição de falha Os estados não são atualizados
    • Ator primário N/A
    • Ator secundário N/A
    • Gatilho A função é chamada
    • Casos Incluídos
    • Fluxo principal
      • 1. Atualiza as posições das balas da lista de balas
      • 2. Atualiza as posições dos inimigos da lista de inimigos
      • 3. Verifica os estados do jogador
    • Exceções
      • N/A


  • Nome do caso de uso Desenha na Tela (Jogo)
    • Alvo no contexto Desenha o Jogo na Tela
    • Precondições Estar no Jogo
    • Condição de sucesso O Jogo é desenhado
    • Condição de falha O Jogo não é desenhado
    • Ator primário N/A
    • Ator secundário Jogador, Balas, Inimigos
    • Gatilho A função é Chamada
    • Casos Incluídos N/A
    • Fluxo principal 1. Desenha o jogador, a pontuação e vidas do mesmo
    • 2. Desenha as balas da lista de balas
    • 3. Desenha os inimigos da lista de inimigos
    • Exceções
    • N/A


  • Nome do caso de uso Reproduz Sons
    • Alvo no contexto Reproduz a música de fundo e os sons do jogo
    • Precondições Estar no Jogo, Ter tido alguma colisão ou alguma bala ser disparada
    • Condição de sucesso Os sons são reproduzidos
    • Condição de falha N/A
    • Ator primário N/A
    • Ator secundário N/A
    • Gatilho A função ser chamada OU houve alguma colisão OU houve algum disparo
    • Casos Incluídos
    • Fluxo principal 1. Houver alguma colisão?
    • 2. Houve algum disparo?
    • 3. Reproduz Música de fundo.
    • Exceções
    • 1.1 Houve, reproduz som da colisão
    • 2.1 Houve, reproduz som do disparo


  • Nome do caso de uso Pausar
    • Alvo no contexto O jogador selecionou a opção de jogar do menu ou despausou o jogo
    • Precondições O jogador ter inicializado o jogo
    • Condição de sucesso O jogador Volta ao jogo
    • Condição de falha O jogador Sai do jogo
    • Ator primário O jogador
    • Ator secundário N/A
    • Gatilho O jogador pausa o jogo
    • Casos Incluídos Desenha na Tela, Lê entradas de Pause Game
    • Fluxo principal 1 Desenha na tela (Includes "Desenha na Tela")
    • 2 Checa Input (Includes "Lê entradas de Pause Game")
    • 3 O jogador escolhe uma opção do menu
    • 4 O jogador escolhe a opção de voltar ao jogo
    • 5 O jogo recomeça (Extends "Loop Principal do Jogo")
    • Exceções
    • 2.1.1 O jogador escolhe a opção de sair do jogo
    • 2.1.2 Volta ao menu (Extends "Menu Principal")


  • Nome do caso de uso Lê entradas de Pause
    • Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Pausa
    • Precondições O Jogo estar Pausado
    • Condição de sucesso O Jogador pressiona alguma entrada que é aceita
    • Condição de falha N/A
    • Ator primário Jogador
    • Ator secundário N/A
    • Gatilho A função é Chamada
    • Casos Incluídos N/A
    • Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
    • 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
    • Exceções
    • N/A


  • Nome do caso de uso Desenha na Tela (Pausar)
    • Alvo no contexto Desenha o Jogo na Tela
    • Precondições O Jogo estar Pausado
    • Condição de sucesso O Jogo e o menu de pause são desenhados
    • Condição de falha O Jogo e o menu de pause não são é desenhado
    • Ator primário N/A
    • Ator secundário Jogador, Balas, Inimigos
    • Gatilho A função é Chamada
    • Casos Incluídos N/A
    • Fluxo principal 1. Desenha o jogador, a pontuação e vidas do mesmo
    • 2. Desenha as balas da lista de balas
    • 3. Desenha os inimigos da lista de inimigos
    • 4. Desenha o Menu de pause
    • 5. Desenha o realçe da opção selecionada
    • Exceções
    • N/A


  • Nome do caso de uso Retorna ao Jogo
    • Alvo no contexto O Jogador está despausando o jogo
    • Precondições O Jogador Estar no menu de jogo pausado
    • Condição de sucesso O jogo continua
    • Condição de falha N/A
    • Ator primário N/A
    • Ator secundário N/A
    • Gatilho A Condição de pausa é falsa
    • Casos Incluídos N/A
    • Fluxo principal 1. Retorna ao jogo
    • Exceções
    • N/A


  • Nome do caso de uso Voltar ao Menu Principal
    • Alvo no contexto O Jogador está saindo do jogo e indo para o menu principal
    • Precondições O Jogador Estar no menu de jogo pausado
    • Condição de sucesso O jogo cessa e abre-se o menu principal
    • Condição de falha N/A
    • Ator primário N/A
    • Ator secundário N/A
    • Gatilho A Condição de voltar ao menu é verdadeira
    • Casos Incluídos N/A
    • Fluxo principal 1. Retorna ao menu principal
    • Exceções
    • N/A


  • Nome do caso de uso Game Over
    • Alvo no contexto O Jogador Morreu no Jogo
    • Precondições O jogador deveria estar jogando e perdeu todas suas vidas
    • Condição de sucesso O Jogador Tem sua pontuação salva
    • Condição de falha N/A
    • Ator primário Jogador
    • Ator secundário N/A
    • Gatilho O Jogador Morre
    • Casos Incluídos Desenha na Tela, Lê Entradas de Game Over, Carregar Jogos Salvos, Calcular Onde a Nova Pontuação Entra, Salvar
    • Fluxo principal 1. Desenha na Tela (Includes "Desenha na Tela")
    • 2. Lê Entradas de Game Over (Includes "Lê Entradas de Game Over")
    • 1.
    • Exceções
    • 2.1 O Jogador Entrou com o nome dele na tela e Confirmou o nome
    • 2.2 Carrega as pontuações antigas (Includes "Carregar Jogos Salvos")
    • 2.3 Calcula onde a nova pontuação entra (Includes "Calcular Onde a Nova Pontuação Entra")
    • 2.4 Salva a nova Highscore (Includes "Salvar")
    • 2.5 Volta ao menu (Extends "Menu Principal")


  • Nome do caso de uso Desenha na Tela (Game Over)
    • Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Game Over
    • Precondições O Jogo estar nol menu de fim de jogo
    • Condição de sucesso O Jogador pressiona alguma entrada que é aceita
    • Condição de falha N/A
    • Ator primário Jogador
    • Ator secundário N/A
    • Gatilho A função é Chamada
    • Casos Incluídos N/A
    • Fluxo principal 1. Espera o Jogador Apertar algum botão que é aceito
    • 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
    • Exceções
    • N/A


  • Nome do caso de uso Lê Entradas de Game Over
    • Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de game over
    • Precondições Ter morrido no jogo, estar no menu de game over
    • Condição de sucesso O Jogador pressiona alguma entrada que é aceita
    • Condição de falha N/A
    • Ator primário Jogador
    • Ator secundário N/A
    • Gatilho A função é Chamada
    • Casos Incluídos N/A
    • Fluxo principal
      • 1. Espera o Jogador Apertar algum botão que é aceito
      • 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
    • Exceções
      • N/A


  • Nome do caso de uso Carregar Jogos Salvos
    • Alvo no contexto As pontuações salvas estão sendo buscadas, lidas e armazenadas temporáriamente em uma variável
    • Precondições A função ser chamada, O arquivo existir
    • Condição de sucesso As pontuações são lidas com sucesso
    • Condição de falha As pontuações não são lidas com sucesso
    • Ator primário N/A
    • Ator secundário N/A
    • Gatilho A função é chamada
    • Casos Incluídos N/A
    • Fluxo principal
      • 1. Verifica se existe o arquivo
      • 2. O arquivo existe, Lê o arquivo e guarda os valores em uma variável
    • Exceções
      • 1.1 O Arquivo não existe
      • 1.2 Um arquivo é criado com todas as posições do highscore com nome AAA e pontuação zero.
      • 1.3 -> 2.


  • Nome do caso de uso Calcular Onde a nova pontuação entra
    • Alvo no contexto Uma nova pontuação será salva no highscores
    • Precondições A função ser chamada
    • Condição de sucesso A nova pontuação entra no highscore
    • Condição de falha A nova pontuação é pequena demais para entrar no highscore
    • Ator primário N/A
    • Ator secundário N/A
    • Gatilho A função é chamada
    • Casos Incluídos N/A
    • Fluxo principal
      • 1. Verifica se a nova pontuação é maior que alguma das já existentes
      • 2. A nova pontuação é maior que alguma já existente
      • 3. Move todas as pontuações abaixo desta, inclusive a mesma, uma posição abaixo do vetor, descartando a ultima
      • 4. Salva a nova pontuação na posição da antiga
    • Exceções
      • 1.1 A nova pontuação não é maior que nenhuma das já existentes.
      • 1.2 A nova pontuação é descartada


  • Nome do caso de uso Salvar
    • Alvo no contexto As pontuações serão salvas em um arquivo
    • Precondições As pontuações estão armazenadas temporáriamente em alguma variável
    • Condição de sucesso Salva as pontuações armazenadas nessa variável no arquivo
    • Condição de falha N/A
    • Ator primário N/A
    • Ator secundário N/A
    • Gatilho A função é chamada
    • Casos Incluídos N/A
    • Fluxo principal
      • 1. Salva/Sobrescreve os valores da variável em um arquivo de dados
    • Exceções
      • N/A


  • Nome do caso de uso Highscores
    • Alvo no contexto O jogador acesssou as pontuações do menu
    • Precondições O jogador deve ter selecionado no menu a opção de mostrar a pontuação
    • Condição de sucesso O jogador sai da tela de pontuações
    • Condição de falha N/A
    • Ator primário Jogador
    • Ator secundário N/A
    • Gatilho O jogador acessou a opção de mostrar pontuações através do menu
    • Casos Incluídos Desenha na Tela, Lê Entradas de Highscore, Carregar Jogos Salvos
    • Fluxo principal
      • 1. Carrega as pontuações já salvas (Includes "Carregar Jogos Salvos")
      • 2. Desenha na Tela (Includes "Desenha na Tela")
      • 3. Lê Entradas de Game Over (Includes "Lê Entradas de Game Over")
      • 2.
    • Exceções
      • 3.1 O Jogador apertou o botão para sair dessa tela
      • 3.2 Volta ao menu (Extends "Menu Principal")


  • Nome do caso de uso Desenha na Tela (Highscores)
    • Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu de Highscores
    • Precondições O Jogo estar no menu de highscores
    • Condição de sucesso O Jogador pressiona alguma entrada que é aceita
    • Condição de falha N/A
    • Ator primário Jogador
    • Ator secundário N/A
    • Gatilho A função é Chamada
    • Casos Incluídos N/A
    • Fluxo principal
      • 1. Espera o Jogador Apertar algum botão que é aceito
      • 2. Altera o estado do Menu de Acordo com o Botão que foi apertado
    • Exceções
      • N/A


  • Nome do caso de uso Lê entradas de Highscore
    • Alvo no contexto Lê alguma entrada do jogador para alterar o estado do menu
    • Precondições Estar no Menu de Highscores
    • Condição de sucesso O Jogador pressiona alguma entrada que é aceita
    • Condição de falha N/A
    • Ator primário Jogador
    • Ator secundário N/A
    • Gatilho A função é Chamada
    • Casos Incluídos N/A
    • Fluxo principal
      • 1. Espera o Jogador Apertar algum botão que é aceito
      • 2. Volta ao menu principal
    • Exceções
      • N/A