Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Decomposição | Funções
Ninja do JavaScript

book
Decomposição

Neste capítulo, exploraremos o conceito de decomposição na programação. Decomposição é o processo de dividir um problema complexo em partes menores e mais gerenciáveis. Essa abordagem não só facilita a resolução de problemas, mas também ajuda a organizar o código de uma maneira mais legível e fácil de manter.

No contexto do nosso Jogo Ninja, a decomposição nos permite criar funções que podem ser reutilizadas e combinadas para realizar tarefas mais complexas. Ao chamar funções dentro de outras funções, podemos construir uma hierarquia de operações que simplifica a tarefa geral.

Vamos ver um exemplo para entender como a decomposição funciona:

js

ninja.js

copy
function ninjaController(ninja) {
lootTunnel(ninja);
lootTunnel(ninja);
lootTunnel(ninja);
}

function lootTunnel(ninja) {
// in
ninja.goRight();
ninja.goRight();
ninja.goRight();
ninja.goDown();
ninja.pickSushi();

// out
ninja.goUp();
ninja.goLeft();
ninja.goLeft();
ninja.goLeft();

moveToNextTunnel(ninja);
}

function moveToNextTunnel(ninja){
ninja.goDown();
ninja.goDown();
ninja.goDown();
}

No exemplo acima, temos uma função ninjaController que chama outra função lootTunnel três vezes. A função lootTunnel em si executa uma série de ações para coletar sushi de um túnel e, em seguida, chama moveToNextTunnel para posicionar o ninja para o próximo túnel. Essa abordagem em camadas torna o código mais fácil de entender e modificar.

Agora, é sua vez de praticar a decomposição completando a seguinte tarefa.

Tarefa

Swipe to start coding

Solução

function ninjaController(ninja) {
collectRow(ninja)
collectRow(ninja)
collectRow(ninja)
}

function collectRow(ninja) {
ninja.goRight();
ninja.pickSushi();
ninja.goRight();
ninja.pickSushi();
moveToNextRow(ninja);
}

function moveToNextRow(ninja) {
ninja.goLeft();
ninja.goLeft();
ninja.goDown();
}
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 5
js

ninja.js

function ninjaController(ninja) {
// Write your code below
}

function collectRow(ninja) {
// Write your code below
}

function moveToNextRow(ninja) {
// Write your code below
}

Pergunte à IA

expand
ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

We use cookies to make your experience better!
some-alt