Domine o uso de ref e out: Transforme seu código C#
Domine C# Criando um Divertido Jogo de Adivinhação
Imagine que você quer testar suas habilidades
🌐 LinkedIn para Devs .NET: Perfil que Atrai Recrutadores!Aprenda a otimizar seu perfil LinkedIn com dicas essenciais para devs .NET. Conquiste oportunidades e destaque suas habilidades! em C# criando algo divertido e interativo. Neste desafio, a ideia é construir um jogo de adivinhação de números que use arrays
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código. para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! armazenar informações e métodos
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. para organizar a lógica. Você vai praticar laços de repetição
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais!, condicionais e, claro, aprender a modularizar seu código em métodos bem definidos.
A proposta é simples: gerar números aleatórios e pedir ao usuário que tente adivinhá-los. Se acertar, maravilha! Se errar, ofereça pistas e continue o jogo até atingir o objetivo. Além disso, você poderá explorar a possibilidade de armazenar estatísticas de tentativas em um array para depois exibi-las, analisá-las ou até mesmo salvar o melhor desempenho
⏱️ Testes de Performance: Garanta Velocidade Além da Funcionalidade!Descubra como medir, diagnosticar e otimizar performance em aplicações .NET com dicas práticas e ferramentas essenciais para devs. do jogador.
Que tal aprender arrays
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código. e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. métodos
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. em C# criando algo divertido? Neste desafio, você vai construir um Jogo de Adivinhação onde o jogador precisa descobrir números secretos armazenados em arrays
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código.. É como um caça ao tesouro digital, mas com código! 🕵️♂️
Por que isso importa?
- Arrays
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código. são como caixas organizadoras para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! dados. - Métodos
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. ajudam a dividir tarefas complexas em partes gerenciáveis. - Você verá na prática como esses conceitos se conectam.
// Spoiler do que vamos criar:
int[] numerosSecretos = { 42, 15, 87, 33, 60 };
bool acertou = VerificarPalpite(32, numerosSecretos); // Retorna false
Tabela de Conteúdo 🔗
- Visão Geral do Desafio
- Como Organizar o Código com Métodos
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. - Criando e Gerenciando Arrays
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código. para o Jogo - Passo a Passo de Implementação
- Exemplo de Código Completo
- Conclusão e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. Próximos Passos - Preparando o Ambiente
- Arrays
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código.: Sua Caixa de Números Secretos - Métodos: Os Comandos
🔍 Comandos: Desacople Ações dos Botões!Aprenda a implementar comandos em C# para desacoplar lógica e interface usando MVVM, com exemplos práticos e dicas para melhor testabilidade e manutenção. do Jogo - Construindo o Jogo Passo a Passo
- Desafios Extras para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! Turbinar
Visão Geral do Desafio
A ideia principal é criar
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. um jogo no Console onde:
1. Um ou mais números são gerados aleatoriamente (e armazenados em um array
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código.).
2. O usuário tem um número limitado de tentativas
Timeout e Retries: Estratégias de Resiliência com Async/AwaitAprenda a usar Timeout e Retries com async/await em C# para garantir operações assíncronas robustas e melhorar a resiliência da sua aplicação. para adivinhar.
3. A cada tentativa, informe se o número digitado é maior, menor ou igual ao valor
🗂️ Dicionários: Acesse Dados por Chaves como um Mestre dos HashMaps!Aprenda a usar dicionários em C# de modo prático e eficiente. Nosso tutorial mostra criação, acesso e otimização para manipular dados com segurança. secreto.
4. Caso o jogador ultrapasse o número de tentativas
Timeout e Retries: Estratégias de Resiliência com Async/AwaitAprenda a usar Timeout e Retries com async/await em C# para garantir operações assíncronas robustas e melhorar a resiliência da sua aplicação., o jogo termina.
5. Guarde o histórico das tentativas
Timeout e Retries: Estratégias de Resiliência com Async/AwaitAprenda a usar Timeout e Retries com async/await em C# para garantir operações assíncronas robustas e melhorar a resiliência da sua aplicação. em um array para exibir no final (opcional).
A graça de usar arrays é justamente a capacidade de armazenar vários valores
🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara. sequencialmente e de forma simples, enquanto
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! os métodos vão te ajudar a separar as responsabilidades do código em blocos coerentes - facilitando a leitura, a manutenção e possíveis melhorias.
Como Organizar o Código com Métodos
Algumas funções (métodos
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência.) úteis que você pode criar para estruturar melhor o jogo:
1. GerarNumerosAleatorios: Responsável por criar um array de números aleatórios com as características que você deseja (por exemplo, intervalos, quantidade
🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. de números etc.).
2. SolicitarPalpiteDoUsuario: Responsável por exibir uma mensagem e pegar a entrada do usuário, convertendo-a para um tipo numérico
🔢 Operadores Aritméticos: Faça Cálculos como uma Calculadora Humana!Aprenda a dominar operadores aritméticos em C# com exemplos práticos, técnicas de cálculo e dicas para evitar erros e maximizar resultados..
3. VerificarPalpite: Recebe o palpite e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. o número secreto, retornando se o palpite é maior, menor ou igual.
4. ExibirResultado: Mostra ao jogador quantos acertos ele obteve e quantas tentativas
Timeout e Retries: Estratégias de Resiliência com Async/AwaitAprenda a usar Timeout e Retries com async/await em C# para garantir operações assíncronas robustas e melhorar a resiliência da sua aplicação. foram usadas. Você pode aproveitar para exibir o conteúdo de um array que guarda o histórico de chutes.
Essa organização torna o código mais modular e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. resiliente a mudanças, permitindo que você adicione ou remova partes com facilidade (por exemplo, adicionar
📦 List<T>: Dinamismo além dos Arrays!Descubra como utilizar List<T> em C# de forma eficiente. Aprenda a criar, manipular e otimizar listas para diferentes cenários com exemplos práticos. um sistema de pontuação no futuro).
Criando e Gerenciando Arrays para o Jogo
Para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! trabalhar com arrays
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código. nesse desafio, considere:
- Array
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código. para os números secretos: Mesmo que você gere apenas um número aleatório por partida, ainda é útil pensar em armazenar mais de um número, como em rodadas sucessivas. - Array para guardar tentativas
Timeout e Retries: Estratégias de Resiliência com Async/AwaitAprenda a usar Timeout e Retries com async/await em C# para garantir operações assíncronas robustas e melhorar a resiliência da sua aplicação.: Dessa forma, você pode mostrar as tentativas
Timeout e Retries: Estratégias de Resiliência com Async/AwaitAprenda a usar Timeout e Retries com async/await em C# para garantir operações assíncronas robustas e melhorar a resiliência da sua aplicação. antigas ao jogador ou analisar estatísticas ao término do jogo.
Por exemplo, você pode ter um array
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código. de inteiros int[] dadosDoJogo para armazenar quantos acertos e erros
🎲 Desafio: Crie um Sistema de Login com Tratamento de Erros Robusto!Aprenda a criar um sistema de login robusto em C#, com tratamento de erros adequado, validação e segurança para evitar vulnerabilidades. ocorreram em cada rodada. Ou, se quiser armazenar cada palpite do usuário, use algo como int[] palpitesDoUsuario e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. depois imprima todos eles.
Passo a Passo de Implementação
Abaixo, um roteiro de como você pode planejar o jogo:
1. Definir quantos números serão gerados: Pode ser apenas 1 ou vários. Um array de tamanho 1 ainda é um array
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código., lembre-se disso.
2. Definir o intervalo de valores
🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara. aleatórios: Por exemplo, de 1 a 100.
3. Gerar o(s) número(s) aleatório(s): Use a classe
🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara. Random do C# para preencher o array
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código. de números secretos.
4. Perguntar quantas tentativas
Timeout e Retries: Estratégias de Resiliência com Async/AwaitAprenda a usar Timeout e Retries com async/await em C# para garantir operações assíncronas robustas e melhorar a resiliência da sua aplicação. o jogador terá (ou definir um valor
🗂️ Dicionários: Acesse Dados por Chaves como um Mestre dos HashMaps!Aprenda a usar dicionários em C# de modo prático e eficiente. Nosso tutorial mostra criação, acesso e otimização para manipular dados com segurança. fixo).
5. Criar
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. um laço (loop) de adivinhação: Perguntar ao jogador (via Console) o palpite, comparar com o número secreto e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. dar feedback.
6. Armazenar cada chute: Assim, você pode exibir os palpites tentados no final.
- O jogador acertar.
- O jogador exceder o número de tentativas
Timeout e Retries: Estratégias de Resiliência com Async/AwaitAprenda a usar Timeout e Retries com async/await em C# para garantir operações assíncronas robustas e melhorar a resiliência da sua aplicação..
8. Exibir o resultado final: Dizer se o usuário ganhou ou perdeu, quantos chutes foram dados e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. (opcionalmente) quais foram.
Exemplo de Código Completo
A seguir, um exemplo simplificado em C#. Você pode personalizar conforme quiser:
using System;
class Program
{
static void Main()
{
// 1. Gerar um número secreto
int[] numerosSecretos = GerarNumerosAleatorios(1, 1, 100); // 1 número, intervalo 1-100
// 2. Número máximo de tentativas
int tentativasMaximas = 5;
// Array para armazenar palpites
int[] palpites = new int[tentativasMaximas];
int contadorPalpites = 0;
// 3. Loop de jogo
bool acertou = false;
for (int i = 0; i < tentativasMaximas; i++)
{
Console.Write($"Tentativa {i+1}/{tentativasMaximas}. Digite seu palpite: ");
int palpite = SolicitarPalpiteDoUsuario();
// Guarda o palpite no array
palpites[i] = palpite;
contadorPalpites++;
int resultado = VerificarPalpite(palpite, numerosSecretos[0]);
if (resultado == 0)
{
Console.WriteLine("Parabéns! Você acertou!");
acertou = true;
break;
}
else if (resultado < 0)
{
Console.WriteLine("Seu palpite é menor que o número secreto.");
}
else
{
Console.WriteLine("Seu palpite é maior que o número secreto.");
}
}
// 4. Exibir resultados
ExibirResultado(acertou, numerosSecretos[0], palpites, contadorPalpites);
}
static int[] GerarNumerosAleatorios(int quantidade, int minimo, int maximo)
{
Random rnd = new Random();
int[] numeros = new int[quantidade];
for (int i = 0; i < quantidade; i++)
{
numeros[i] = rnd.Next(minimo, maximo + 1);
}
return numeros;
}
static int SolicitarPalpiteDoUsuario()
{
// Tenta converter a entrada do console em inteiro
try
{
int palpite = int.Parse(Console.ReadLine());
return palpite;
}
catch (FormatException)
{
Console.WriteLine("Valor inválido! Usando 0 como palpite.");
return 0;
}
}
static int VerificarPalpite(int palpite, int numeroSecreto)
{
// Retorna 0 se igual, negativo se menor, positivo se maior
if (palpite == numeroSecreto) return 0;
return palpite - numeroSecreto;
}
static void ExibirResultado(bool acertou, int numeroSecreto, int[] palpites, int numTentativas)
{
if (acertou)
{
Console.WriteLine("Você venceu o jogo!");
}
else
{
Console.WriteLine($"Que pena, suas tentativas acabaram. O número secreto era {numeroSecreto}.");
}
Console.WriteLine("Seu histórico de palpites:");
for (int i = 0; i < numTentativas; i++)
{
Console.Write(palpites[i] + " ");
}
Console.WriteLine();
}
}
O que está acontecendo?
- Usamos
GerarNumerosAleatoriospara criar um array
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código. (mesmo que seja de tamanho 1). - Em seguida, no método
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. Main, definimos quantas tentativas
Timeout e Retries: Estratégias de Resiliência com Async/AwaitAprenda a usar Timeout e Retries com async/await em C# para garantir operações assíncronas robustas e melhorar a resiliência da sua aplicação. o jogador tem (tentativasMaximas) e criamos um array
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código. palpitespara
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! armazenar cada tentativa. - A cada loop
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais!, coletamos o palpite e usamos VerificarPalpitepara
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! ver se está certo, maior ou menor. - No final,
ExibirResultadomostra se o jogador ganhou ou perdeu e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. exibe todos os palpites.
Preparando o Ambiente
1. Abra o Visual Studio
🛠️ Instalação do Visual Studio: Prepare sua Nave para Decolar!Prepare seu ambiente de desenvolvimento com o Visual Studio em uma aventura C#. Este tutorial prático ensina a instalar, configurar e personalizar sua IDE. (já instalado? Se não, veja nosso guia.
2. Crie novo projeto
🤝 GitHub Básico: Versionamento para Iniciantes!Descubra como o GitHub facilita colaboração, versionamento e organização de código com este tutorial prático e essencial para desenvolvedores iniciantes. Console App (.NET Core).
3. Nomeie como JogoAdivinhacao.
4. Na pasta do projeto
🤝 GitHub Básico: Versionamento para Iniciantes!Descubra como o GitHub facilita colaboração, versionamento e organização de código com este tutorial prático e essencial para desenvolvedores iniciantes., adicione arquivo Program.cs.
using System;
namespace JogoAdivinhacao
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Bem-vindo ao Jogo de Adivinhação!");
}
}
}
Arrays: Sua Caixa de Números Secretos
Imagine uma prateleira com caixas numeradas. Cada caixa guarda um valor
🗂️ Dicionários: Acesse Dados por Chaves como um Mestre dos HashMaps!Aprenda a usar dicionários em C# de modo prático e eficiente. Nosso tutorial mostra criação, acesso e otimização para manipular dados com segurança., e você acessa pelo número da posição.
// Declaração e inicialização
int[] numerosMagicos = new int[5]; // Array vazio com 5 posições
int[] numerosSecretos = { 42, 15, 87, 33, 60 }; // Array inicializado
// Acesso por índice (começa em 0!)
Console.WriteLine(numerosSecretos[0]); // Exibe 42
Métodos: Os Comandos do Jogo
Métodos
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. são ações que seu programa pode executar
🔍 Comandos: Desacople Ações dos Botões!Aprenda a implementar comandos em C# para desacoplar lógica e interface usando MVVM, com exemplos práticos e dicas para melhor testabilidade e manutenção.. Vamos criar três essenciais:
// 1. Método para sortear números aleatórios
static int[] SortearNumeros(int quantidade)
{
Random random = new Random();
int[] numeros = new int[quantidade];
for (int i = 0; i < quantidade; i++)
{
numeros[i] = random.Next(1, 100);
}
return numeros;
}
// 2. Método para verificar palpite
static bool VerificarPalpite(int palpite, int[] numerosSecretos)
{
foreach (int numero in numerosSecretos)
{
if (numero == palpite) return true;
}
return false;
}
// 3. Método para exibir dicas
static void ExibirDicas(int palpite, int[] numerosSecretos)
{
foreach (int numero in numerosSecretos)
{
if (numero > palpite) Console.Write($"{numero} é maior | ");
}
}
Construindo o Jogo Passo a Passo
Passo 1: Configurar
Instalando e configurando o MongoDB no Windows e Linux para uso com C#Aprenda a instalar e configurar o MongoDB no Windows e Linux, integrando-o com projetos C# para ambientes de desenvolvimento eficientes. variáveis iniciais
static void Main(string[] args)
{
int[] numerosSecretos = SortearNumeros(5);
int tentativas = 0;
bool acertou = false;
Console.WriteLine("Encontre um dos 5 números secretos entre 1-100!");
}
Passo 2: Loop
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! principal do jogo
while (!acertou)
{
Console.Write("\nSeu palpite: ");
int palpite = int.Parse(Console.ReadLine());
tentativas++;
acertou = VerificarPalpite(palpite, numerosSecretos);
if (!acertou)
{
Console.WriteLine("Tente novamente! Dicas:");
ExibirDicas(palpite, numerosSecretos);
}
}
Passo 3: Finalização com pontuação
Console.WriteLine($"\n🎉 Acertou em {tentativas} tentativas!");
Console.WriteLine("Números secretos eram:");
foreach (int num in numerosSecretos) Console.Write(num + " ");
Desafios Extras para Turbinar
int maxTentativas = 7;
while (tentativas < maxTentativas && !acertou)
{
// Código do jogo
}
2. Dificuldade Progressiva:
Console.WriteLine("Escolha dificuldade: 1-Fácil (1-50) | 2-Difícil (1-100)");
int dificuldade = int.Parse(Console.ReadLine());
int maxNumero = dificuldade == 1 ? 50 : 100;
3. Sistema de Pontos:
int pontos = 1000;
// A cada tentativa errada:
pontos -= (palpite - numeroSecreto) / 2;
4. Modo Cooperativo:
Console.WriteLine("Quantos jogadores? (1-4)");
int jogadores = int.Parse(Console.ReadLine());
// Alternar entre jogadores usando % operador
Conclusão e Próximos Passos
Construir um jogo de adivinhação usando arrays
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código. e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. métodos
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. é uma ótima forma de praticar a lógica de programação e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. aprender a modularizar o código em C#. Depois de implementar o exemplo básico, você pode levar o desafio adiante, criando:
- Várias rodadas de adivinhação dentro de uma mesma execução (usando loops
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! externos). - Pontuações que calculam o desempenho
⏱️ Testes de Performance: Garanta Velocidade Além da Funcionalidade!Descubra como medir, diagnosticar e otimizar performance em aplicações .NET com dicas práticas e ferramentas essenciais para devs. a cada rodada e exibem um ranking. - Interface
📜 Interfaces: Contratos que Garantem a Ordem no Universo OOP!Descubra como as interfaces em C# funcionam como contratos que garantem implementações flexíveis e robustas, facilitando o design e testes de sistemas. gráfica simples (caso saia do modo Console) ou outras melhorias para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! o jogador.
O segredo
Gerenciando Secrets e Configs em Docker SwarmAprenda a proteger credenciais, chaves e tokens com Docker Swarm. Gerencie Secrets e Configs de forma segura, garantindo integridade dos dados críticos. para dominar a linguagem é, cada vez mais, experimentar novas ideias e refinar seu código - e este desafio é um passo divertido nessa direção. Boa sorte e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. divirta-se!
Você acabou de criar
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. um jogo funcional usando arrays
📦 Arrays: Armazene Dados como um Chef Organiza Panelas!Aprenda como arrays em C# organizam dados com a precisão de uma cozinha profissional. Descubra métodos, boas práticas e dicas essenciais para seu código. para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! armazenar os números secretos e métodos
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! organizar a lógica. Isso mostra como:
- Arrays permitem gerenciar múltiplos valores
🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara. eficientemente. - Métodos
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. ajudam a quebrar problemas complexos em partes menores. - A combinação dos dois cria estruturas de código limpas e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. reutilizáveis.
Próximo nível: Tente implementar os desafios extras ou modifique as regras para criar
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. sua própria versão! 🚀
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- .NET Documentation: learn.microsoft.com/pt-br/dotnet/
- Awesome .NET: github.com/quozd/awesome-dotnet
- C# Language Specification: learn.microsoft.com/pt-br/dotnet/csharp/language-reference/language-specification/
- GitHub: Microsoft/.NET: github.com/dotnet
- Microsoft Learn: C# e .NET: learn.microsoft.com/pt-br/dotnet/csharp/
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás