🚀 Capítulo 20: Projeto Final: O Grande Sistema (Tema: Caverna do Dragão)

NOTE

Este capítulo utiliza a temática de Caverna do Dragão para o Projeto Final. Você guiará os jovens heróis na escolha das estruturas de dados corretas para finalmente escaparem do Reino e voltarem para casa!


1. 🎯 Objetivo da Aula

Aplicar os conhecimentos adquiridos ao longo do curso para escolher as estruturas de dados e algoritmos adequados para resolver um problema complexo e integrado.

2. 🏢 O Cenário Prático (Seu Desafio)

Os jovens heróis (Hank, Sheila, Eric, Diana, Presto e Bobby) encontraram o portal final para voltar para casa! Mas o portal está trancado por um enigma do Mestre dos Magos. Para abrir o portal, eles precisam construir o Sistema de Fuga usando as estruturas de dados corretas.

O sistema precisa resolver 4 problemas:

  1. A Ordem de Travessia: Os heróis precisam atravessar uma ponte estreita um por um. Quem chega primeiro na ponte deve atravessar primeiro.
  2. O Histórico de Caminhos: Eles estão explorando um labirinto. Precisam de um sistema que guarde o caminho percorrido para que, se baterem numa parede, possam “desfazer” o último passo e voltar.
  3. O Livro de Feitiços: O Presto tem centenas de feitiços. Ele precisa digitar o nome do feitiço e encontrar a página instantaneamente, sem precisar folhear o livro todo.
  4. O Mapa do Reino: O grupo precisa mapear as cidades do reino e as estradas que as ligam para encontrar o caminho mais curto até o portal.

Seu desafio é indicar qual estrutura de dados ou algoritmo é o ideal para cada um dos 4 problemas!


3. 🧠 Fundamentos: O Grande Roteiro

Este projeto é a prova de que você domina a base de Estruturas de Dados. Você não precisa escrever o código completo, mas precisa demonstrar a Arquitetura da Solução, escolhendo a ferramenta certa para o trabalho certo.


4. 📖 Exemplo Guiado: Escolhendo a Estrutura

Se o Mestre dos Magos pedisse para guardar a lista de nomes dos heróis e acessar o terceiro nome sabendo que ele está na posição 2, nós usaríamos um Array. Porque o Array permite acesso direto por índice!


5. 🛠️ Prática Obrigatória 1: A Arquitetura da Fuga

Para cada um dos 4 problemas descritos no cenário prático, escreva qual estrutura de dados (Array, Pilha, Fila, Lista Ligada, Tabela Hash, Árvore ou Grafo) você escolheria e explique o porquê.

  • Problema 1 (Ordem de Travessia): Qual estrutura e por quê?
  • Problema 2 (Histórico de Caminhos): Qual estrutura e por quê?
  • Problema 3 (Livro de Feitiços): Qual estrutura e por quê?
  • Problema 4 (Mapa do Reino): Qual estrutura e por quê?

6. 🛠️ Prática Obrigatória 2: O Algoritmo de Busca

No Problema 4, depois de montar o mapa, qual algoritmo de caminhamento em grafos (que vimos no capítulo 15) você usaria para encontrar o caminho que passa por menos cidades até o portal?


7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Projeto Final Estruturas de Dados) e clique em Commit to main.
  2. Envie para a Nuvem (Push): Clique em Push origin.
  3. No Microsoft Teams: Envie o texto com as suas escolhas de estruturas de dados para o projeto.

8. 📂 Estrutura de Pastas

mod_09_estruturas_de_dados/
├── capitulos/
│   ├── capitulo_20_projeto.md
│   └── codigos/
│       └── cap20/
│           └── sistema_fuga.js

9. 💡 Checkpoint de Lógica

Parabéns! Você concluiu a jornada! Você agora sabe como os grandes softwares organizam os dados para serem rápidos e eficientes. Você não é mais apenas um digitador de código, você é um Arquiteto de Soluções!

10. 🔥 Desafio de Fixação

Tente desenhar o diagrama do Mapa do Reino (Problema 4) usando a sintaxe Mermaid que você aprendeu no capítulo 14.

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

  • Problema 1: Fila (Queue), pois segue o princípio FIFO (primeiro que chega é o primeiro que sai).
  • Problema 2: Pilha (Stack), pois segue o princípio LIFO (o último passo dado é o primeiro a ser desfeito).
  • Problema 3: Tabela Hash, pois permite busca instantânea por chave (nome do feitiço).
  • Problema 4: Grafo, pois modela redes de conexões entre pontos (cidades e estradas).

Gabarito da Prática 2:

  • Usaria o BFS (Busca em Largura), pois ele se espalha em níveis e é ótimo para encontrar o caminho mais curto em número de passos (arestas).

Capitulo Anterior