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.
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: