Variáveis em C#: como guardar vida, munição e nome do personagem
- Gerar link
- X
- Outros aplicativos

Resumo rápido
- Variável é um espaço com nome onde o programa guarda um valor.
- Em C# toda variável tem um tipo:
int,double,bool,string,char... - O tipo vem antes do nome:
int vida = 100;. - O valor pode mudar; o tipo, não.
vardeixa o compilador descobrir o tipo pelo valor.constcria um valor que nunca muda.
Todo jogo de sobrevivência precisa lembrar das coisas: quanto de vida sobrou, quantas balas tem no pente, o nome do personagem, se a lanterna está ligada. No código, quem guarda essas informações são as variáveis.
Neste post você vai criar as variáveis do seu personagem, conhecer os tipos mais usados do C# e ver os erros que mais aparecem no começo.
O que é uma variável
Pense numa variável como um compartimento da mochila com uma etiqueta. A etiqueta é o nome, o que está dentro é o valor e o formato do compartimento é o tipo: num compartimento de balas não cabe um mapa.
Para criar uma variável em C#, você escreve o tipo, o nome e, se quiser, o valor inicial:

C#
int vida = 100;
int municao = 12;
string nome = "Leon";
bool lanternaLigada = true;
Console.WriteLine($"{nome} tem {vida} de vida e {municao} balas.");
Console.WriteLine($"Lanterna ligada? {lanternaLigada}");
Saída esperada
Leon tem 100 de vida e 12 balas.
Lanterna ligada? True
O $ antes das aspas permite colocar variáveis dentro do texto usando { }. Isso se chama interpolação e você vai usar o tempo todo.
Os tipos mais usados
Cada tipo guarda um tipo de informação. Estes são os que você mais vai ver:
| Tipo | Guarda | Exemplo no jogo |
|---|---|---|
int | número inteiro | int municao = 12; |
double | número com casas decimais | double peso = 3.5; |
float | decimal mais leve (usa f no fim) | float velocidade = 4.2f; |
decimal | decimal exato, bom para dinheiro | decimal moedas = 19.90m; |
bool | verdadeiro ou falso | bool temChave = false; |
char | um único caractere (aspas simples) | char rank = 'S'; |
string | texto (aspas duplas) | string arma = "Pistola"; |

Repare que o C# usa ponto como separador decimal no código: 3.5, nunca 3,5. Na hora de mostrar na tela, ele usa o formato do seu computador.
C#
double pesoMochila = 7.5;
char rank = 'A';
decimal moedas = 120.50m;
Console.WriteLine("Peso da mochila: " + pesoMochila + " kg");
Console.WriteLine("Rank: " + rank);
Console.WriteLine("Moedas: " + (moedas * 2));
Saída esperada
Peso da mochila: 7.5 kg
Rank: A
Moedas: 241.00
💡 Por que a saída pode mostrar vírgula
Se o Windows estiver em português, o mesmo código pode mostrar 7,5 e 241,00. O valor é o mesmo; só muda a forma de exibir.
Mudando o valor
Depois de criada, a variável pode receber outro valor quantas vezes for preciso. É só usar o = de novo, sem repetir o tipo:
C#
int vida = 100;
Console.WriteLine($"Começo: {vida}");
vida = 70; // levou um ataque
Console.WriteLine($"Depois do ataque: {vida}");
vida = vida + 20; // usou uma erva
Console.WriteLine($"Depois da erva: {vida}");
Saída esperada
Começo: 100
Depois do ataque: 70
Depois da erva: 90
Leia o = como "recebe": vida = vida + 20 quer dizer "vida recebe o valor atual de vida mais 20".
var: deixando o C# descobrir o tipo
Quando o valor deixa o tipo óbvio, você pode trocar o tipo por var. O compilador olha o valor e decide sozinho:
C#
var inimigos = 5; // int
var arma = "Espingarda"; // string
var alerta = false; // bool
Console.WriteLine(inimigos.GetType().Name);
Console.WriteLine(arma.GetType().Name);
Console.WriteLine(alerta.GetType().Name);
Saída esperada
Int32
String
Boolean
var não é uma variável "sem tipo". O tipo existe e fica fixo: uma variável criada como int continua sendo int. Int32 e Boolean são os nomes completos de int e bool dentro do .NET.
Constantes: o que nunca muda
Algumas informações não devem mudar durante o jogo, como a vida máxima ou o tamanho do pente. Para isso existe o const:
C#
const int VidaMaxima = 100;
const int TamanhoDoPente = 15;
int vida = 40;
int falta = VidaMaxima - vida;
Console.WriteLine($"Faltam {falta} pontos para encher a vida.");
Console.WriteLine($"Um pente cheio tem {TamanhoDoPente} balas.");
Saída esperada
Faltam 60 pontos para encher a vida.
Um pente cheio tem 15 balas.
Se alguém tentar escrever VidaMaxima = 200;, o código nem compila. A constante protege o valor contra mudanças por engano.
Como dar nomes às variáveis
| Regra | Certo | Errado |
|---|---|---|
| Começa com letra ou _ | vida2 | 2vida |
| Sem espaços | municaoExtra | municao extra |
| Não pode ser palavra reservada | classe | class |
| Maiúsculas fazem diferença | vida e Vida são duas variáveis | — |
O costume no C# é o camelCase para variáveis: primeira palavra minúscula e as próximas começando com maiúscula, como balasNoPente e temChaveDaPorta. Constantes costumam usar PascalCase, como VidaMaxima. Prefira nomes que dizem o que a variável guarda: x não diz nada, balasNoPente diz tudo.
Erros comuns

1. Guardar valor do tipo errado. Texto não cabe num int:
C#
int municao = "doze"; // erro: não dá para converter string em int
2. Usar a variável antes de dar um valor. O C# não deixa ler uma variável local vazia:
C#
int vida;
Console.WriteLine(vida); // erro: variável local não atribuída
3. Criar duas variáveis com o mesmo nome. No mesmo bloco, cada nome só pode existir uma vez. Para mudar o valor, não repita o tipo:
C#
int vida = 100;
int vida = 50; // erro: 'vida' já foi declarada
vida = 50; // certo: só muda o valor
4. Esquecer o f ou o m. Um número com ponto é double por padrão. Para float use 4.2f e para decimal use 19.90m.
DESAFIO
Tente resolver antes de abrir a resposta. Sobreviveu? Vá para o próximo.
Crie as variáveis de um personagem com nome "Jill", 80 de vida, 3 ervas e a lanterna desligada. Use o tipo certo para cada uma.
Ver resposta
string nome = "Jill";,int vida = 80;,int ervas = 3;ebool lanternaLigada = false;.Qual é o tipo de
var peso = 2.5;?Ver resposta
double. Número com ponto e sem sufixo édouble.O que aparece na tela?
int balas = 10; balas = balas - 4; Console.WriteLine(balas);Ver resposta
6. A variável começa com 10 e recebe 10 - 4.Por que
const int VidaMaxima = 100; VidaMaxima = 120;não compila?Ver resposta
Porque uma constante não pode receber outro valor depois de criada.
Conclusão
Agora o seu personagem já tem memória: vida, munição, nome e tudo o que o jogo precisa lembrar. Escolher o tipo certo e um nome claro evita a maioria dos erros de quem está começando.
O próximo passo é conversar com o jogador: mostrar informações na tela e ler o que ele digita.
📖 Continue a série: Console.WriteLine e Console.ReadLine em C#.
Comentários
Postar um comentário