Algoritmo, como todos os meus alunos de programação devem saber (deveriam) é uma sequência lógica de passos para a solução de um problema. M...
Algoritmo, como todos os meus alunos de programação devem saber (deveriam) é uma sequência lógica de passos para a solução de um problema. Mas às vezes isso se mostra meio intimidador para alguns (a começar por esse nome esquisito: algoritmo). Uma abordagem inicial mais lúdica poderia ajudar muito. E esse jogo em Flash pode ser a resposta.

Praticamente todos os jogos de raciocínio envolve alguma estratégia que inconscientemente ou não, todos os jogares devem traçar para chegar há algum objetivo.
Esses passos para lograrmos êxito em uma tarefa constituem o algoritmo de solução do problema a ser resolvido.
E se ao invés de resolvermos o problema tivéssemos que programar um robô para resolvê-lo por nós?
Essa é a proposta de Light Bot. Um jogo educativo que permite você instruir o seu robô oferecendo algumas poucas opções de instruções (fazendo o papel de comandos de uma linguagem de programação) como: andar para frente, girar para esquerda, girar para direita, pular, acender a luz etc.
E você não precisará digitar nada, basta arrastar os ícones das instruções até o seu programa. Bacana não é?
Mas não é só isso. O jogo se torna mais interessante à medida que você tenta "resolver" os problemas com o mínimo de comandos. E aí entra em cena o conceito de função (ou subrotinas).
O objetivo do jogo é acender o quadros azuis, tornando-os amarelos, através dos poucos comandos disponíveis.
Você pode "economizar" comandos chamando as funções do jogo (denominadas no jogo Funct. 1 e Funct. 2).
Por exemplo, imagine que você tenha que dar 10 passos para frente. Uma maneira intuitiva seria simplesmente colocar 10 comandos de andar para frente, totalizando 10 instruções.

Mas, você poderia colocar 5 comandos de andar para frente na função e chamá-la duas vezes. A cada chamada a execução do programa deixaria o programa principal e executaria a função, depois retornaria ao programa principal. Com isso você teria usado apenas 7 instruções (redução de 30% no seu programa).

Não é simples? Pode até ser, mas é um desafio incutir esses conceitos em uma turma de leigos. A idéia desse joguinho tem muito a contribuir com as aulas de programação.
Uma idéia interessante seria expandir o conceito, com a inclusão de laços (repetições de um trecho do programa), variáveis e decisões (a execução de um trecho do programa dependendo de certas condições).
Isso poderia representar níveis crescentes de dificuldades e desafios mais avançados.
Eu sei que o próximo passo seria incluir o conceito de classes, objetos, métodos e propriedades, mas aí é melhor partir para o Robocode ou para a programação profissional (programar não deixa de ser um jogo para gente grande). Mas vamos deixar essas idéias para um outro post. Por enquanto curta o Light Bot no original.

Praticamente todos os jogos de raciocínio envolve alguma estratégia que inconscientemente ou não, todos os jogares devem traçar para chegar há algum objetivo.
Esses passos para lograrmos êxito em uma tarefa constituem o algoritmo de solução do problema a ser resolvido.
E se ao invés de resolvermos o problema tivéssemos que programar um robô para resolvê-lo por nós?
Essa é a proposta de Light Bot. Um jogo educativo que permite você instruir o seu robô oferecendo algumas poucas opções de instruções (fazendo o papel de comandos de uma linguagem de programação) como: andar para frente, girar para esquerda, girar para direita, pular, acender a luz etc.
E você não precisará digitar nada, basta arrastar os ícones das instruções até o seu programa. Bacana não é?
Mas não é só isso. O jogo se torna mais interessante à medida que você tenta "resolver" os problemas com o mínimo de comandos. E aí entra em cena o conceito de função (ou subrotinas).
O objetivo do jogo é acender o quadros azuis, tornando-os amarelos, através dos poucos comandos disponíveis.
Você pode "economizar" comandos chamando as funções do jogo (denominadas no jogo Funct. 1 e Funct. 2).
Por exemplo, imagine que você tenha que dar 10 passos para frente. Uma maneira intuitiva seria simplesmente colocar 10 comandos de andar para frente, totalizando 10 instruções.

Mas, você poderia colocar 5 comandos de andar para frente na função e chamá-la duas vezes. A cada chamada a execução do programa deixaria o programa principal e executaria a função, depois retornaria ao programa principal. Com isso você teria usado apenas 7 instruções (redução de 30% no seu programa).

Não é simples? Pode até ser, mas é um desafio incutir esses conceitos em uma turma de leigos. A idéia desse joguinho tem muito a contribuir com as aulas de programação.
Uma idéia interessante seria expandir o conceito, com a inclusão de laços (repetições de um trecho do programa), variáveis e decisões (a execução de um trecho do programa dependendo de certas condições).
Isso poderia representar níveis crescentes de dificuldades e desafios mais avançados.
Eu sei que o próximo passo seria incluir o conceito de classes, objetos, métodos e propriedades, mas aí é melhor partir para o Robocode ou para a programação profissional (programar não deixa de ser um jogo para gente grande). Mas vamos deixar essas idéias para um outro post. Por enquanto curta o Light Bot no original.