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!
- Crie o arquivo
mapa_pokemon.csna pastasrc/:
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
- 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.");
}