Skip to content

Latest commit

 

History

History
168 lines (135 loc) · 3.2 KB

Readme.md

File metadata and controls

168 lines (135 loc) · 3.2 KB

@pula-pula - Gerenciando entradas e saídas

Intro Draft Guide Shell

cover

Nosso objetivo no trabalho é modelar um gestor de pula pulas em um parquinho, controlando as pessoas que entram e saem do pula pula, além de coordenar as pessoas que estão na fila de espera.

Intro

  • Inserir crianças na fila de espera do pula pula
  • Mover a primeira criança da fila de espera do pula pula para dentro do pula pula.
  • Mover a primeira criança que entrou no pula pula para o final da fila de espera.

Draft

Guide

diagrama

class Kid {
  - age : int
  - name : string
  __
  + Kid(name : string, age : int)
  + toString() : string
  __
  + getAge()  : int
  + getName() : string
  + setAge(age : int)
  + setName(name : string)
}

class Trampoline {
  - playing : List<Kid>
  - waiting : List<Kid>
  __
  
  ' procura por uma criança na lista do parâmetro e se
  ' encontrar, remove a criança e a retorna
  - {static} removeFromList(name : string, list : List<Kid>) : Kid | null
  __
  + Trampoline()
  + toString() : string
  __
  
  ' insere na posição mais a esquerda da lista de espera
  + arrive(kid : Kid)
  
  ' se existir alguém na lista de espera
  ' remove o que estiver mais a direita e insere na posição mais 
  ' a esquerda da lista de playing
  + enter()
  
  ' se existir alguém em playing, remove o que estiver mais a direita
  ' e insere na posição mais a esquerda da lista de espera
  + leave()
  
  ' utilize o método estático removeFromList
  ' para tentar remover a criança das duas filas
  + removeKid(name : string) : Kid | null
}

Shell

#TEST_CASE unico
# $chegou _nome _idade
# insere uma criança na fila de entrada do brinquedo
$arrive mario 5
$arrive livia 4
$arrive luana 3

# show
# mostra a fila de entrada e o pula pula
$show
[luana:3, livia:4, mario:5] => []

#TEST_CASE entrando
# entrar
# tira a primeira criança da fila de entrada e insere no pula pula

$enter
$show
[luana:3, livia:4] => [mario:5]

#TEST_CASE segunda pessoa
$enter
$show
[luana:3] => [livia:4, mario:5]

#TEST_CASE saindo
$leave
$show
[mario:5, luana:3] => [livia:4]

#TEST_CASE remove
$remove luana

$show
[mario:5] => [livia:4]
$remove livia
$show
[mario:5] => []
$end

#TEST_CASE 2
$show
[] => []
$arrive mario 5
$show
[mario:5] => []
#TEST_CASE empty enter
$enter
$show
[] => [mario:5]
#TEST_CASE empty leave
$leave
$show
[mario:5] => []
$leave
$show
[mario:5] => []
#TEST_CASE remove from waiting
$remove mario
$show
[] => []
#TEST_CASE remove empty
$remove rebeca
$show
[] => []
$end