Capítulo 08: Funções (Métodos) 🪓❄️

Neste capítulo, vamos aprender a dividir nosso código em blocos menores e reutilizáveis chamados Funções (ou Métodos) no C#, com o tema God of War!


📖 O que são Funções?

Funções são blocos de código que realizam uma tarefa específica. Elas ajudam a não repetir código e a deixar o programa mais organizado.

No C# moderno, podemos criar funções diretamente no arquivo principal (funções locais)!


📖 Exemplo Guiado: Ataque do Kratos

Vamos criar uma função que calcula o dano de um ataque baseado na força e se foi um ataque crítico.

  1. Crie o arquivo ataque_kratos.cs na pasta src/:
using System;
 
// Criando a função (método local)
int CalcularDano(int forca, bool critico) {
    if (critico) {
        return forca * 2;
    }
    return forca;
}
 
int forcaBase = 50;
 
// Chamando a função
int danoNormal = CalcularDano(forcaBase, false);
Console.WriteLine($"Ataque normal causou: {danoNormal} de dano.");
 
int danoCritico = CalcularDano(forcaBase, true);
Console.WriteLine($"Ataque com furia causou: {danoCritico} de dano.");

🕹️ Como Executar e Testar no VS Code

  1. Execute o projeto usando dotnet run.

Resultado Esperado:

Ataque normal causou: 50 de dano.
Ataque com furia causou: 100 de dano.

📊 Ilustração Visual: Fluxo da Função

Veja como os dados entram e saem da função:

graph TD
    A[main] -->|"Passa Força e Crítico"| B["Função: CalcularDano"]
    B -->|"Retorna o Dano Calculado"| A

🛠️ Prática Obrigatória 1: Barra de Vida

Crie uma função chamada ExibirVida(int vida) que não retorna nada (void) e apenas exibe uma barra visual de vida usando colchetes (ex: se a vida for 50, exibe [|||||]). Use um laço dentro da função para desenhar a barra (uma barra | para cada 10 pontos de vida)!


🔑 Gabarito de Código

Prática 1: barra_vida.cs

using System;
 
void ExibirVida(int vida) {
    Console.Write("Vida: [");
    int barras = vida / 10;
    for (int i = 0; i < barras; i++) {
        Console.Write("|");
    }
    Console.WriteLine($"] {vida}%");
}
 
int vidaKratos = 80;
ExibirVida(vidaKratos);

Capitulo Anterior | Proximo Capitulo