Capítulo 06: Matrizes (Arrays Bidimensionais) 🔴⚪

Neste capítulo, vamos aprender a armazenar dados em formato de grade (tabela) usando as Matrizes em C#, com o tema Pokémon!


📖 O que são Matrizes?

Uma matriz é um array de duas dimensões: linhas e colunas. No C#, usamos a vírgula dentro dos colchetes [,] para declarar uma matriz retangular.


📖 Exemplo Guiado: Mapa de Grama Alta

Vamos criar uma matriz 3x3 que representa um pequeno mapa de grama alta. Onde tiver o número 1, significa que há um Pokémon selvagem escondido!

  1. Crie o arquivo mapa_pokemon.cs na pasta src/:
using System;
 
// Criando uma matriz 3x3 de inteiros
int[,] mapa = {
    { 0, 1, 0 },
    { 0, 0, 1 },
    { 1, 0, 0 }
};
 
Console.WriteLine("--- Mapa de Grama Alta ---");
 
// Percorrendo a matriz com laços for
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        if (mapa[i, j] == 1) {
            Console.Write("[P] "); // P de Pokémon
        } else {
            Console.Write("[ ] "); // Grama vazia
        }
    }
    Console.WriteLine(); // Quebra de linha
}

🕹️ Como Executar e Testar no VS Code

  1. Execute o projeto usando dotnet run.

Resultado Esperado:

--- Mapa de Grama Alta ---
[ ] [P] [ ] 
[ ] [ ] [P] 
[P] [ ] [ ] 

📊 Ilustração Visual: Grade da Matriz

Veja como os índices de linha e coluna localizam os elementos:

graph TD
    subgraph "Matriz 3x3"
    A["[0,0]"] --- B["[0,1] (P)"] --- C["[0,2]"]
    D["[1,0]"] --- E["[1,1]"] --- F["[1,2] (P)"]
    G["[2,0] (P)"] --- H["[2,1]"] --- I["[2,2]"]
    end

🛠️ Prática Obrigatória 1: Batalha Naval Pokémon

Crie um programa chamado batalha_pokedex.cs que tenha a mesma matriz do exemplo. O programa deve usar variáveis fixas para linha e coluna e dizer se encontrou um Pokémon ou não naquela posição.


🔑 Gabarito de Código

Prática 1: batalha_pokedex.cs

using System;
 
int[,] mapa = {
    { 0, 1, 0 },
    { 0, 0, 1 },
    { 1, 0, 0 }
};
 
int linha = 1;
int coluna = 2;
 
Console.WriteLine("Consultando posicao [" + linha + ", " + coluna + "]...");
 
if (mapa[linha, coluna] == 1) {
    Console.WriteLine("Incrivel! Voce encontrou um Pokemon selvagem!");
} else {
    Console.WriteLine("Nada por aqui... Continue procurando.");
}

Capitulo Anterior | Proximo Capitulo