Jogo da forca Excel – Jogo Excel

Jogo da forca criado com Excel e VBA com código aberto e grátis.

Nesta planilha você tem um jogo da forca completo com as 1000 palavras mais pronunciadas do inglês e você pode inclusive mudar as palavras caso queira adequar a sua necessidade.

O jogo da forca em Excel foi adaptado para uma missão espacial, aonde o jogador tem que salvar a terra descobrindo a palavra-chave.

Como funciona o jogo da forca no Excel

O jogo da forca foi criado por volta de 1894 na Inglaterra Victoriana e o primeiro registro do jogo foi feito no Livro “Traditional Games” publicado também em 1894.

O jogo da forca consiste em uma palavra-chave que precisa ser descoberta.

O jogo inicia com o mestre do jogo escolhendo uma palavra secreta e então o jogador deve tentar letras que ele imagina que possam estar na palavra.

Caso a letra esteja então o mestre coloca a letra na posição da letra na palavra.

E se o jogador errar o boneco da forca é desenhado com a cabeça, tronco, pernas e braços, totalizando até 5 erros, caso erre a 6.ª vez o jogador perde, e caso descubra a palavra antes da última tentativa ele vence.

Na nossa planilha de jogo da forca em Excel você pode inclusive substituir as imagens dos aliens invadindo a terra pelo tradicional boneco da forca, no vídeo ao topo do artigo explico como fazer esta substituição.

Inclusive a planilha é totalmente desbloqueada, caso queira, pode fazer um jogo da forca temático conforme a sua necessidade.

Planilha com 1000 Palavras mais Pronunciadas do Inglês

No jogo você tem uma lista com as 1000 palavras mais pronunciadas do inglês.

E não só isso, a lista conta também com a pronúncia correta e a tradução das 1000 palavras em inglês para português.

Esta lista pode ser alterada conforme a sua necessidade, incluindo palavras ou substituindo a lista toda com palavras que desejar e inclusive colocando dicas no lugar da tradução.

A planilha com as palavras está em Plan2 e como ela é desbloqueada pode alterar como desejar.

Código VBA do Jogo Excel

O código fonte VBA do jogo da forca Excel segue abaixo.

Nele temos a escolha aleatória da palavra-chave, distribuição das letras da palavra-chave e também o controle dos acertos e exibição das partes do boneco da forca ou aliens.

Dim lPalavra    As Variant
Dim lTamPalavra As Integer
Dim lsRange     As Range
Dim lPartes     As Integer
Dim lSituacao   As Integer
Dim lPalavraAdv As String
Dim lPortugues  As String
Dim lPronuncia  As String


Private Sub lfSepararLetras(ByVal vPalavra As String, ByRef vsPalavra As Variant)
    Dim iLetra      As Integer
    Dim iQtdeLetras As Integer
    ReDim vsPalavra(1 To Len(vPalavra))
    
    iQtdeLetras = Len(vPalavra)
    
    Do While iLetra < iQtdeLetras
        iLetra = iLetra + 1
        
        vsPalavra(iLetra) = Mid(vPalavra, iLetra, 1)
    Loop
    
End Sub

Public Sub lsNovoJogo()
   
    lTamPalavra = Len(Range("Plan2!A" & Range("Plan2!E1").Value).Value)
    lfSepararLetras Range("Plan2!A" & Range("Plan2!E1").Value).Value, lPalavra
    lPronuncia = Range("Plan2!B" & Range("Plan2!E1").Value).Value
    lPortugues = Range("Plan2!C" & Range("Plan2!E1").Value).Value
    
    lPartes = 1
    lSituacao = 0
    
    Set lsRange = Range("Plan1!E12")
    
    lPalavraAdv = Range("Plan2!A" & Range("Plan2!E1").Value).Value
    
    For i = 1 To 6
        ActiveSheet.Shapes("imag" & i).Visible = False
        ActiveSheet.Shapes("venceu").Visible = False
        ActiveSheet.Shapes("perdeu").Visible = False
        ActiveSheet.Shapes("perdeu2").Visible = False
        Plan1.Range("W7").Value = ""
    Next
    
    Range("Plan1!E13:AE13").Value = ""
    Plan1.Range("w4:w5").Value = ""
    
    For i = 1 To lTamPalavra
        lsRange.Offset(1, i - 1) = i
    Next
    
    Range("Plan1!E12:AE12").Value = ""
    
    Range("W3").Value = CStr(lTamPalavra) & " letras."
    
End Sub

Public Sub lsSugerirLetra()
    Dim lLetra    As String
    Dim lQtde     As Integer
    Dim lsPalavra As String
    
    If lSituacao <> 0 Then
        MsgBox "Jogo Encerrado!"
        GoTo Sair
    End If
    
    lLetra = InputBox("Digite uma letra:", "Sugestão", ActName)
    
    If Len(lLetra) <> 1 Then
        MsgBox "Você deixou em branco ou digitou mais de uma letra!"
        GoTo Sair
    End If
    
    lLetra = UCase(lLetra)
    
    For i = 1 To lTamPalavra
        If lPalavra(i) = lLetra Then
            lsRange.Offset(0, i - 1).Value = lLetra
            lQtde = lQtde + 1
        End If
    Next
    
    If lQtde = 0 Then
       ActiveSheet.Shapes("imag" & lPartes).Visible = True
       lPartes = lPartes + 1
    End If
    
    If lPartes = 6 Then
        Plan1.Range("W4").Value = lPortugues
    End If
    
    If lPartes = 7 Then
        lSituacao = 1
        
        If Rnd() * 100 Mod 2 = 0 Then
            ActiveSheet.Shapes("perdeu").Visible = True
        Else
            ActiveSheet.Shapes("perdeu2").Visible = True
        End If
        
        Plan1.Range("W7").Value = "A MISSÃO FRACASSOU!!!!"
        
        MsgBox "Você Perdeu!"
        Plan1.Range("W5").Value = lPronuncia
        
        For i = 1 To lTamPalavra
            lsRange.Offset(0, i - 1).Value = lPalavra(i)
        Next
    End If
    
    lQtde = 0
    
    For i = 1 To lTamPalavra
        If lsRange.Offset(0, i - 1).Value <> "" Then
            lQtde = lQtde + 1
        End If
    Next
    
    If lQtde = lTamPalavra And lPartes < 7 Then
        lSituacao = 2
        ActiveSheet.Shapes("venceu").Visible = True
        Plan1.Range("W7").Value = "MISSÃO CUMPRIDA! PARABÉNS!"
        
        MsgBox "Você venceu!", , "Parabéns"
    End If
    
Sair:
    Exit Sub
End Sub

Public Sub lsSugerirPalavra()
    Dim lSugestao As String

    If lSituacao = 0 Then
        lSugestao = InputBox("Digite a palavra:", "Sugestão", ActName)
        
        If UCase(lSugestao) <> UCase(lPalavraAdv) Then
            lSituacao = 1
            If Rnd() * 100 Mod 2 = 0 Then
                ActiveSheet.Shapes("perdeu").Visible = True
            Else
                ActiveSheet.Shapes("perdeu2").Visible = True
            End If
            Plan1.Range("W7").Value = "A MISSÃO FRACASSOU!!!!"
            
            MsgBox "Você Perdeu!"
        Else
            lSituacao = 2
            ActiveSheet.Shapes("venceu").Visible = True
            Plan1.Range("W7").Value = "MISSÃO CUMPRIDA! PARABÉNS!"
            
            MsgBox "Você venceu!", , "Parabéns"
        End If
    Else
        MsgBox "Jogo Encerrado!"
    End If
    
    For i = 1 To lTamPalavra
        lsRange.Offset(0, i - 1).Value = lPalavra(i)
    Next
End Sub

No código da planilha temos os seguintes procedimentos e funções:

  • lfSepararLetras(ByVal vPalavra As String, ByRef vsPalavra As Variant): Esta função recebe a palavra chave e retorna um vetor (vslpalavra), aonde temos então a palavra separada com todos os seus caracteres para que possa ser feito loop para comparar cada uma das letras.
  • lsNovoJogo(): Neste procedimento é criado um novo jogo aonde é limpa a tela e também é escolhida a palavra chave de forma aleatória e separada. Os dados são colocados então em variáveis globais que são utilizadas ao longo de todos os códigos.
  • lsSugerirLetra(): Este procedimento é chamado pelo botão Sugerir Letra, nele é solicitado que o jogador digite uma letra, e ao receber esta letra é então pesquisado no vetor da palavra sorteada se a letra existe. Se houver é marcada, senão aparece a próxima imagem da forca.
  • lsSugerirPalavra(): O procedimento é chamado no Sugerir Palavra, através do qual é solicitada a palavra completa, caso se saiba a palavra completa e acerte o jogo termina e o jogador ganha a partida, senão ele é encerrado.

Download Planilha de Jogo da Forca

Realize o download da planilha de Jogo da Forca em Excel no link abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.

Baixe a planilha

Curso Excel Completo – Do Básico ao VBA

Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo:


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel