diff --git a/shiny/testHipFlipCoin/server.R b/shiny/testHipFlipCoin/server.R
index bbf142a8b74a4aaa77d0042d403a026c08017357..3198ab425c916ca72852e671eeab1f2c74e74224 100644
--- a/shiny/testHipFlipCoin/server.R
+++ b/shiny/testHipFlipCoin/server.R
@@ -13,7 +13,6 @@ moeda <- function(n){
 }
 
 ## Vetor vazio.
-x <- integer()
 N <- 1000
 
 shinyServer(
@@ -22,52 +21,57 @@ shinyServer(
         output$header <- renderPrint({
             template("TEMA")
         })
-        #         cara <- eventReactive(input$goCara, {
-        #             x <<- c(x, 1L)
-        #         })
-        #         coro <- eventReactive(input$goCoro, {
-        #             x <<- c(x, 0L)
-        #         })
-        #         output$nlanc <- renderText({
-        #             coro(); cara()
-        #             return(length(x))
-        #         })
-        cara <- reactive({
-            input$goCara
-            x <<- c(x, 1L)
+
+        ## Cria valores para reagirem à estímulos dos buttons
+        v <- reactiveValues(x = integer())
+        
+        ## Responde a estímulos no `input$goCara`.
+        observeEvent(input$goCara, {
+            v$x <- c(v$x, 1L)
         })
-        coro <- reactive({
-            input$goCoro
-            x <<- c(x, 0L)
+        
+        ## Responde a estímulos no `input$goCoro`.
+        observeEvent(input$goCoro, {
+                         v$x <- c(v$x, 0L)
+                     })
+
+        ## Responde a estímulos no `input$goCoro`.
+        observeEvent(input$clear, {
+            v$x <- integer()
         })
+        
         ## x começa com dois elementos. Descontá-los.
         output$nlanc <- renderText({
-            coro(); cara()
-            return(length(x)-2)
+            return(length(v$x))
         })
+        
         process <- eventReactive(input$goProcess, {
-            x <- x[-c(1:2)]
-            ## Número de lançamentos.
-            n <- length(x)
-            ## Número de caras.
-            k <- sum(x)
-            ## Número de trocas de face.
-            o <- sum(abs(diff(x)))
-            ## Faz várias execuções do experimento aleatório.
-            r <- replicate(N, moeda(n))
-            ## P-valor bilateral empírico.
-            p <- min(c(2*min(c(sum(r<=o), sum(r>=o)))/N, 1))
-            ## Lista com todos os elementos.
-            return(list(n=n, k=k, o=o, r=r, p=p, x=x))
+            with(reactiveValuesToList(v), {
+                x <- x
+                ## Número de lançamentos.
+                n <- length(x)
+                ## Número de caras.
+                k <- sum(x)
+                ## Número de trocas de face.
+                o <- sum(abs(diff(x)))
+                ## Faz várias execuções do experimento aleatório.
+                r <- replicate(N, moeda(n))
+                ## P-valor bilateral empírico.
+                p <- min(c(2*min(c(sum(r<=o), sum(r>=o)))/N, 1))
+                ## Lista com todos os elementos.
+                list(n=n, k=k, o=o, r=r, p=p, x=x)
+            })
         })
+        
         output$seqx <- renderText({
             s <- paste0(process()$x, collapse="")
             return(s)
         })
+        
         output$hist <- renderPlot({
             with(process(),{
-                if(n<=9){
-                    stop("Pro favor, lance no mínimo 30 vezes.")
+                if(n<=15){
+                    stop("Pro favor, lance no mínimo 15 vezes.")
                 }
                 par(mar=c(5,4,3,2), family="Palatino")
                 layout(matrix(c(1,2,1,3), 2, 2))
diff --git a/shiny/testHipFlipCoin/ui.R b/shiny/testHipFlipCoin/ui.R
index be8f9903b8c77fd55dc5ed2e4cdebb8384d4714e..2bb75159aed75f1e27c209750b928bff4be961d4 100644
--- a/shiny/testHipFlipCoin/ui.R
+++ b/shiny/testHipFlipCoin/ui.R
@@ -17,6 +17,7 @@ shinyUI(
         h4("Você consegue imitar uma moeda?"),
         p(txt),
         hr(),
+        
         sidebarPanel(
             helpText("Clique nos botões para declarar cara ou coroa."),
             actionButton("goCara", "Cara"),
@@ -24,10 +25,14 @@ shinyUI(
             h6("Número de lançamentos feitos:"),
             verbatimTextOutput("nlanc"),
             actionButton("goProcess", "Aplicar teste de hipótese!"),
+            actionButton("clear", "Recomeçar"),
             h6("Sequência das faces observadas (1=cara, 0=coroa):"),
             verbatimTextOutput("seqx"),
-            checkboxInput("teorico", "Valores teóricos: Binomial(n-1, p=0.5)")
+            checkboxInput(
+                "teorico", "Valores teóricos: Binomial(n-1, p=0.5)")
         ),
+
+        
         mainPanel(
             plotOutput("hist", width=500, height=500)
         )