Jogo da Forca em C#
Giovanna Marques
1/2/20244 min read
Segue desenvolvimento do jogo da forca na linguagem C# (Csharp) no console usando o Visual Studio Community.
O jogo na verdade funciona com o comando de entrada de uma letra por vez até completar a palavra escondida pelo criador.
Quem completar a palavra ganha, caso não acerte perde.
—
Dessa vez vou passar em tópicos para melhor entendimento de como realizar um código de forma mais efetiva possível.
—
Aprenda mais sobre o fluxo
1. Defina a estrutura do programa:
- Crie um novo projeto no Visual Studio Community e escolha o tipo de aplicativo "Console Application".
2. Implemente a lógica do jogo:
- Crie uma função `EscolherPalavra()` para escolher aleatoriamente uma palavra da lista de palavras possíveis.
- Crie uma função `AtualizarPalavraSecreta()` para verificar se a letra fornecida pelo jogador está na palavra secreta e atualizar a exibição da palavra conforme as letras corretas são descobertas.
- Implemente a lógica principal do jogo em um loop, onde o jogador tenta adivinhar as letras até que todas sejam descobertas ou ele use todas as tentativas permitidas.
3. Interaja com o jogador:
- Use as funções `Console.WriteLine()` e `Console.ReadLine()` para exibir mensagens para o jogador e capturar suas entradas.
- Informe ao jogador sobre o número de tentativas restantes e a palavra atualizada após cada palpite.
4. Finalize o jogo:
- Determine as condições de vitória e derrota do jogo e encerre o loop principal quando uma dessas condições for atendida.
- Ao finalizar o jogo, agradeça ao jogador por participar e encerre o programa.
5. Teste e refine:
- Execute o jogo várias vezes para verificar se tudo está funcionando conforme o esperado.
- Faça ajustes conforme necessário para melhorar a experiência do jogador ou corrigir quaisquer erros que encontrar.
6. Personalize e expanda:
- Personalize o jogo adicionando suas próprias palavras ou ajustando as regras conforme desejado.
- Se sentir confiança, considere expandir o jogo com recursos adicionais, como gráficos ou uma interface mais elaborada.
Lembre-se de que este é apenas um exemplo simples para começar. Você pode modificar e expandir este jogo conforme sua criatividade e habilidades de programação. Divirta-se criando seu próprio jogo de Forca em C#!
Se o usuário coloca letra errada -> O computador não identificou, tentar novamente.
Se o usuário coloca letra errada nas últimas tentativas -> O computador não identificou, reinicie o jogo com outra palavra.
Se o usuário coloca letra certa-> O computador identificou, tentar novamente até completar.
Se o usuário completa a palavra -> O computador identificou, ganhou!
—
O código então precisando seguir as regras fica da seguinte forma:
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Bem-vindo ao Jogo da Forca!");
string palavraSecreta = EscolherPalavra();
char[] letrasDescobertas = new char[palavraSecreta.Length];
// Inicializa o array de letras descobertas com underscores
for (int i = 0; i < letrasDescobertas.Length; i++)
{
letrasDescobertas[i] = '_';
}
int tentativasRestantes = 6;
bool jogoAcabou = false;
while (!jogoAcabou)
{
Console.WriteLine("nPalavra: " + string.Join(" ", letrasDescobertas));
Console.WriteLine("Tentativas Restantes: " + tentativasRestantes);
Console.WriteLine("Digite uma letra:");
char palpite = Console.ReadLine()[0];
bool letraCorreta = AtualizarPalavraSecreta(palavraSecreta, letrasDescobertas, palpite);
if (!letraCorreta)
{
tentativasRestantes--;
Console.WriteLine("Letra incorreta! Você perdeu uma tentativa.");
}
if (tentativasRestantes == 0)
{
Console.WriteLine("nVocê perdeu! A palavra secreta era: " + palavraSecreta);
jogoAcabou = true;
}
if (Array.IndexOf(letrasDescobertas, '_') == -1)
{
Console.WriteLine("nParabéns! Você ganhou! A palavra secreta era: " + palavraSecreta);
jogoAcabou = true;
}
}
Console.WriteLine("nO jogo terminou. Obrigado por jogar!");
}
static string EscolherPalavra()
{
string[] palavras = { "banana", "abacaxi", "morango", "laranja", "uva", "limao" };
Random rand = new Random();
return palavras[rand.Next(palavras.Length)];
}
static bool AtualizarPalavraSecreta(string palavraSecreta, char[] letrasDescobertas, char palpite)
{
bool letraCorreta = false;
for (int i = 0; i < palavraSecreta.Length; i++)
{
if (palavraSecreta[i] == palpite)
{
letrasDescobertas[i] = palpite;
letraCorreta = true;
}
}
return letraCorreta;
}
}
Radom
Random representa um gerador de número pseudoaleatório, que é um algoritmo que produz uma sequência de números que atendem a certos requisitos estatísticos de aleatoriedade. Ele gera uma sequência de números aleatórios cuja distribuição difere da distribuição uniforme gerada pelo Sample método da classe base. Ele substitui o Sample método para fornecer a distribuição de números aleatórios e substitui o Random.Next método para usar séries de números aleatórios.
A instrução if
Uma if instrução pode ser qualquer uma das duas formas a seguir:
Uma if instrução com else uma parte seleciona uma das duas instruções a executar com base no valor de uma expressão booliana
Aprenda mais sobre aqui no site da Microsoft
— -
Esse foi um dos códigos realizados no começo do meu desenvolvimento.
Muito usado em entrevistas de emprego pra vagas júnior.
Obrigada pela leitura 🔍🌱
bool
Um tipo de dado que representa valores booleanos: verdadeiro (true) ou falso (false).
Utilizado em instruções condicionais para controlar o fluxo do programa.
while
Estrutura de controle de fluxo que repete um bloco de código enquanto uma condição especificada é verdadeira.
A condição é verificada antes da execução do bloco de código.
for
Estrutura de controle de fluxo que executa um bloco de código repetidamente por um número específico de vezes.
Inclui três partes: inicialização, condição e iteração, que são executadas antes de cada iteração do bloco de código.
Essas são estruturas fundamentais para controlar o fluxo de execução em programas e são amplamente utilizadas em muitas linguagens de programação, incluindo C#.