Guia de Engenharia de Prompt: Economize Tokens com Comandos Precisos

Imagem
Foto: Google DeepMind / Pexels Resumo rápido Entenda o que são tokens e por que cada fragmento de texto impacta o custo e o processamento. Aprenda o método dos 4 pilares para criar instruções técnicas diretas e sem redundâncias. Descubra como o uso de delimitadores substitui frases explicativas longas e economiza recursos. Veja exemplos práticos de como reduzir o tamanho de um prompt em mais de 50% mantendo a precisão. Se você já sentiu que está gastando "munição" à toa ao interagir com uma IA, este guia é para você. No nosso dia a dia de desenvolvimento, tratar o prompt como uma conversa de bar é um erro comum que consome recursos preciosos. Cada palavra que enviamos para o modelo é processada e cobrada, e entender essa mecânica é a diferença entre um sobrevivente eficiente e alguém que fica sem suprimentos no meio da missão. Neste artigo, vamos mergulhar na Engenharia de Prompt com foco total em eficiência. Vamos aprender a cortar o que é irrelevante, estruturar o que é v...

Variáveis em C#: como guardar vida, munição e nome do personagem

Mascote do Devs na Prática segurando a mochila ao lado do título Variáveis em C#

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.
  • var deixa o compilador descobrir o tipo pelo valor.
  • const cria 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:

Mascote explicando as variáveis vida, munição, nome e lanterna

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:

TipoGuardaExemplo no jogo
intnúmero inteiroint municao = 12;
doublenúmero com casas decimaisdouble peso = 3.5;
floatdecimal mais leve (usa f no fim)float velocidade = 4.2f;
decimaldecimal exato, bom para dinheirodecimal moedas = 19.90m;
boolverdadeiro ou falsobool temChave = false;
charum único caractere (aspas simples)char rank = 'S';
stringtexto (aspas duplas)string arma = "Pistola";
Mascote confiante ao lado da lista de tipos int, double, bool, char e string

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

RegraCertoErrado
Começa com letra ou _vida22vida
Sem espaçosmunicaoExtramunicao extra
Não pode ser palavra reservadaclasseclass
Maiúsculas fazem diferençavida 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

Mascote desconfiado diante do erro de colocar texto numa variável int

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.

  1. 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; e bool lanternaLigada = false;.

  2. Qual é o tipo de var peso = 2.5;?

    Ver resposta

    double. Número com ponto e sem sufixo é double.

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

  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

Postagens mais visitadas deste blog

Classes e objetos em C#: criando o seu personagem do jeito certo

Console.WriteLine e Console.ReadLine em C#: conversando com o jogador

Modificadores de acesso em C#: public, private, protected e internal