terça-feira, 27 de novembro de 2018

Criando seu Aplicativo de HQ/Mangá

Já tratamos no blog sobre como construir uma HQ/Mangá no post Criação de uma HQ Matemática: https://vemfazermatematicaegames.blogspot.com/2018/03/criacao-de-uma-hq-matematica.html. Hoje iremos aperfeiçoar esse projeto transformando o HQ/Mangá em um aplicativo (pode ser lido no celular e construído no AppInventor 2), no qual essas imagens são colocadas como planos de fundo nas telas do aplicativo construído:

Por fator estético, optou-se em colocar um quadrinho a cada tela para não ficar poluído demais e quando o quadro for maior coloca-se no formato de Paisagem na opção Orientação da Tela (destacado em vermelho e para os demais fixou-se em Retrato). Do ponto de vista de disposição de botões, para não desorganizar quando a tela do celular for maior ou menor, utilizou-se a opção Organização e Organização em Tabela (em roxo) com a opção de duas coluna e uma linha para abrigar os botões de Próximo e Anterior (cada botão com altura de 23% e largura de 50%), sendo que a organização da tela é de centralizar e base (embora você possa fazer sua própria organização).


Finalizando, usou-se a programação nos botões para avançar/voltar nas telas para dar continuidade ao HQ/Mangá, tomando o devido cuidado de nomear corretamente cada tela:
Gostou da atividade? Se quiser ver esse modelo pronto, acesse o projeto HQMaker: ai2.appinventor.mit.edu/?galleryId=5747611060535296. Deixe nos comentários suas impressões e se você conseguiu transformar seus HQ/Mangás em aplicativos e até a próxima!

segunda-feira, 26 de novembro de 2018

Scratch: Você decide!

Já vimos que no Scratch é possível criar histórias que sejam narrativas ou problemas matemáticos. Hoje vamos ver que é possível incluir escolhas nas rotas do enredo, como você pode observar no projeto Chapeuzinho Vermelho - Gamificada (https://scratch.mit.edu/projects/218660299/), podendo inclusive gerar finais tristes, a exemplo, o que o lobo é o vencedor. Por três vezes você pode escolher qual vai ser o futuro da chapeuzinho vermelho, usando um número para decidir. Mas como funciona isso? 


Na programação destacada em vermelho temos a primeira opção de rota no enredo, onde com o comando “pergunte Então ela foi direto (1) ou foi na padaria (2)? e espere a resposta” (em azul) inicia o processo de pergunta de qual rota você quer seguir. Logo abaixo, tem os comando de lógica “se então” (que está na aba de Controle) que para o valor 1 fará uma série de ações e se for o valor 2 será outra, como podemos ver acima. Note que é necessário encaixar os bloco de programação “resposta” (aba sensores) e o “=” (aba Operadores) todos dentro do “se então” conforme a imagem acima, pois esse comando lógico “se então” precisa de algo (número ou texto) para verificar se é verdadeiro ou não. Outra observação é que esse formato não vai reconhecer se a pessoa digitar um número diferente dos que estão listados. Para se precaver disso é necessário implementar um loop de repetição “repita n vezes’’ (aba de controle).
Mas aonde está a Matemática em uma criação de histórias com diferentes finais?

Olhando a figura acima temos a representação de uma árvore de possibilidades, que pertence ao campo da análise combinatória (se quiser saber mais acesse: https://www.infoescola.com/matematica/analise-combinatoria/) e que pertence ao estudo da Matemática. Estabelecer diferentes possibilidades e programar de modo que o usuário assuma o poder de decisão é usar a Matemática de uma forma divertida. Gostou? Deixe nos comentários abaixo suas impressões e quem sabe suas histórias com diferentes decisões. Até a próxima.

terça-feira, 13 de novembro de 2018

A Matemática em uma batalha de RPG

No post de hoje iremos abordar sobre uma Matemática muito específica: a Matemática utilizada na batalha entre adversários em um RPG (lembrando que ela pode ser aplicada a qualquer tipo de game). Para você que não entende nada sobre o que é um RPG, ela é uma sigla em inglês para role-playing game, um gênero de jogo no qual os jogadores assumem o papel de personagens imaginários, em um mundo fictício. Um dos maiores exemplos de RPG é o Dungeons & Dragons (D&D) que deu origem ao famoso desenho animado Caverna do Dragão.


Realizada essa introdução, vamos pular alguns aspectos do RPG para irmos direto ao aspecto da batalha e a Matemática usada nela (demais aspectos serão trabalhados futuramente nesse blog). Resumindo, sempre que o seu personagem fictício que você está interpretando precisa fazer alguma decisão importante, é rolado um dado D20 (com 20 faces e valores) e quanto maior o valor, melhor será a escolha. Nesse caso específico, entram as batalhas contra um adversário da qual podemos assumir além da vida de cada um, também tipos de poderes que tornam cada um melhor contra um determinado adversário. Vamos ver um exemplo nas tabelas abaixo:
  • Vida dos aliados entre 45 e 55 e com máximo de 20 de poder:
Tipo de Poder Mago Guerreiro Bruxo
Poder Mágico
13
0
1
Poder Físico
2
15
0
Poder das Trevas
5
5
19
  • Vida dos oponentes igual a 100 e com máximo de 10-11 de poder:
Tipo de Poder Dragão Orc Morto Vivo
Poder Mágico
5
0
0
Poder Físico
5
9
5
Poder das Trevas
0
1
6

O cálculo efetivo para a batalha é comparando poder a poder (diferença) sobre a influência (multiplicação) do dado D20, aonde o valor menor que 10 te dá desvantagem (-0,05) e o acima de 10 te dá um bônus (0,05), lembrando que o princípio multiplicativo no dado foi estipulado em 0,05 para não gerar valores grandes demais e acabar com a batalha em uma jogada. Vamos ver um exemplo entre a batalha de um Mago contra um Dragão, sendo que o valor adquirido no dado foi o 2:

Tipo de Poder: (Poder do Aliado x (valor do dado x bônus)) - (Poder do Oponente x (valor do dado x bônus)) = Resultado:
Poder Mágico
((13 x (2 x (-0,05)) - (5 x (2 x (2 x 0,05)) = 
-1,8
Poder Físico
((2 x (2 x (-0,05)) - (5 x (2 x (2 x 0,05)) = 
-0,7
Poder das Trevas
((5 x (2 x (-0,05)) - (0 x (2 x (2 x 0,05)) = 
-0,5

Somando os resultados, obtemos -3 que deduzimos do poder do personagem aliado. Como podemos ver, temos um grande quantidade de cálculos para apenas uma única rodada da batalha, imagine para simular uma batalha inteira até zerar a vida, ou uma sequência de batalhas entre adversários. Para isso foi criado o aplicativo RPG Battle no AppInventor2 que está disponível em: ai2.appinventor.mit.edu/?galleryId=6073867429871616.


Com esse aplicativo você consegue realizar as batalhas de modo mais fluido do que se tivesse que calcular todas as vezes. Agora se você tiver mais personagens e oponentes com outros valores, vai ser necessário modificar esse projeto e é algo que iremos tratar num post futuro. Deixe nos comentários suas impressões sobre essa atividade e até a próxima!

quarta-feira, 7 de novembro de 2018

A garantia da resposta "certa"

No último post (https://vemfazermatematicaegames.blogspot.com/2018/11/jogo-das-equacoes.html) vimos a construção de um jogo de equações do 1º grau que são formadas de modo aleatório e o usuário pode testar seus conhecimentos. Se você verificou bem a programação deve ter notado que o nível 2 possui uma programação extra que usa o Mais Blocos Resposta Certa e que ele é utilizado em função do problema apresentado na figura abaixo:


Como podemos ver a resposta que o usuário deveria dar é a 0,666667 e qualquer valor diferente desse o sistema de validação consideraria errado, o que é péssimo, pois a maioria dos usuários escreve valores numéricos de até no máximo duas casas depois da virgula (ou ponto). Para isso, foi usado esse Mais Blocos Resposta Certa cujo objetivo é permitir uma variabilidade de respostas do usuário dentro de um limite superior e inferior máximo. Por exemplo, para o valor 0,666667, usamos o limite 0,05, ou seja, valores 0,05 a mais e a menos do que 0,666667, e obtemos o seguinte intervalo numérico:


Com isso, o valor normalmente digitado que é 0,66 (que na verdade é 0,6600000...) irá ser aceito como uma resposta válida. Mas como transpor isso para uma programação (se você quiser saber mais sobre isso, pesquise com a palavra-chave ponto flutuante)? Veja na figura abaixo, como foi construído o Mais Blocos Resposta Certa:


Como podemos ver acima, o Mais Blocos Resposta Certa pede três entradas numéricas, o valor da resposta calculada pelo sistema, o erro aceitável (que é o 0.05 definido acima e que pode ser mudado ao seu critério) e a resposta dada pelo usuário. É definida uma nova variável de resposta que será o certeza, que se passar no teste de validação de valores inferiores e superiores (resposta menor/maior do que valor +/- o erro) mantém o valor 1 como o correto e caso tenha qualquer valor divergente do aceitável, temos o 0 que seria a resposta não aceitável. Simples, certo? Que tal você dar uma replicada nessa estrutura e testar para outros valores? Deixe nos comentários suas experiências e até a próxima.

terça-feira, 6 de novembro de 2018

Jogo das equações

O foco da postagem de hoje é criar um algoritmo que gere equações de 1º grau aleatórias para que o usuário possa se divertir respondendo elas. Essa aplicação foi desenvolvida em Scratch e pode ser acessada em: https://scratch.mit.edu/projects/259718261/.


Como pode-se perceber, é possível organizar a programação por meio do Mais Blocos (em roxo), a exemplo, as falas explicativas do personagem foram colocadas em um bloco a parte denominado "Explicações". Além disso, esse exemplo tem níveis de dificuldade conforme a pontuação que você obtém. No caso de 0 a 4 pontos será um nível de equação a ser resolvida e de 5 a 9 pontos o segundo nível, que estão expostos nos intervalos na figura acima.
Vamos agora nos concentrar no algoritmo para gerar e resolver as equações aleatórias. Em primeiro lugar vamos considerar um formato padrão de equação (para o primeiro nível de dificuldade) do tipo:


aonde temos as três primeiras programações (figura abaixo) com valores de números aleatórios entre 1 e 5 (pode ser mais se você assim quiser). 


Em seguida, é necessário trabalhar com a aleatoriedade das operações e como elas serão executadas. Nesse caso em específico, foi simplificado para usar apenas as operações de adição e subtração, sendo possível implementar a multiplicação e divisão com as devidas adequações. Na primeira linha de programação temos um evento de aleatoriedade para definir 1 igual a adição e 2 igual a subtração. Logo abaixo temos dois "se então", que conforme o número sorteado irá executar os cálculos. 
Mas por que os cálculos devem ser executados? Simplesmente pelo fato que é necessário comparar a resposta calculada pelo sistema com resposta dada pelo usuário para poder pontuar e subir de nível.


Esse projeto é possível de ser estendido para outros conceitos matemáticos como inequações, equações do 2º grau, polinômios, dentre outros. Que tal você tentar fazer o seu? Deixe nos comentários os links das suas produções e mão na massa galera. Até a próxima!

Como não perder nenhum compromisso: Meu App Agenda

No nosso dia a dia a agenda é um instrumento de grande importância que as pessoas utilizam para fazer anotações de compromissos ou informaçõ...