Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE PRESBITERIANA MACKENZIE Curso de Engenharia de Produção Centro de Ciências e Tecnologia - CCT Gustavo Tremura Ferreira - 31902146 Pedro Henrique Couto Ferragut - 31901905 Renan Zanini Possobom - 31983881 Thalita de Faria Périco - 31902375 QUIZ DE QUÍMICA: REDOX CAMPINAS 2019 Gustavo Tremura Ferreira - 31902146 Pedro Henrique Couto Ferragut - 31901905 Renan Zanini Possobom - 31983881 Thalita de Faria Périco - 31902375 QUIZ DE QUÍMICA: REDOX Trabalho de desenvolvimento de jogo, Quiz de química: REDOX, apresentado ao Curso de Engenharia da Produção do Centro de Ciências e Tecnologia da Universidade Presbiteriana Mackenzie - Campus Campinas, orientado pelo professor Massaki de Oliveira Igarashi como parte da avaliação intermediária. CAMPINAS 2019 Resumo Com o objetivo de desenvolver o raciocínio lógico e aprimorar as habilidades com a linguagem de programação, foi passado este trabalho para que os alunos desenvolvessem um jogo ou algum outro método de programação capaz de ser utilizado no aprendizado de outras pessoas e assim treinar novas linguagens de programação e aprimorar a linguagem em C++. Para cumprir as informações ditas acima, esse trabalho é um quiz sobre química, mais precisamente, sobre reações de oxido redução (REDOX). Foi criado então um jogo interativo onde o jogador recebe perguntas com formulas ou teoria que cada uma tem 5 (cinco) alternativas para responder, para cada resposta certa, o mesmo ganha um ponto, se errar a resposta, tem a opção de ver a explicação de porque ele errou ou não ver e continuar o jogo. SUMÁRIO 1. INTRODUÇÃO 5 2. OBJETIVOS 6 2.1 GERAIS 6 2.2 ESPECÍFICOS 6 3. METODOLOGIA DE PESQUISA 7 3.1 PERGUNTAS 7 4. METODOLOGIA PRÁTICA 9 4.1 O SCRATCH 9 4.2 DESENVOLVIMENTO DE FUNDOS E PERSONAGEM 10 4.2.1 FUNDOS 11 4.2.2 PERSONAGEM 12 4.3 PROGRAMAÇÃO 12 4.4 FLUXOGRAMA 15 5. COMPARAÇÃO COM O C++ 16 6. CONCLUSÃO 21 7. LINK DO JOGO 21 8. REFERÊNCIAS 22 2 1. INTRODUÇÃO Para o desenvolvimento deste jogo foi usado a plataforma Scratch que é considerado a forma mais acessível de linguagem de programação, por se utilizar de uma interface gráfica que permite que programas sejam construídos com blocos encaixados. Por não exigir o conhecimento prévio de outras linguagens de programação, ele é ideal para pessoas que estão começando a programar e foi desenvolvida para ajudar pessoas acima de 8 anos no aprendizado de conceitos matemáticos e computacionais. Com ele é possível criar histórias animadas, jogos e outros programas interativos. O Scratch visa ir além dessa linguagem em três aspectos: torná-la mais suscetível à manipulação, mais social e mais significante. Assim a forma como os blocos podem ser manipulados lhe confere uma possibilidade de aprendizagem autogerida através da prática de manipulação e teste dos projetos. Como foi dito anteriormente a programação é feita através de encaixe de blocos e cada bloco da linguagem contém um comando em separado, que podem ser agrupados livremente caso se encaixem. O Scratch também é muito usado nas instituições escolares, de diversos níveis (desde a escola primária à universidade), em variadas disciplinas (como Matemática, Biologia, História, Idiomas, entre outros). Baseando-se nisso foi desenvolvido um jogo da matéria de química que visa uma nova forma de aprendizado, através das tecnologias disponíveis hoje em dia. O jogo tem como tema principal reações de oxido redução (REDOX), para o maior aprendizado as questões presentes no jogo foram todas tiradas de vestibulares reconhecidos nacionalmente e logo após cada pergunta, existe uma tela de explicação sobre ela. O jogo foi desenvolvido para que os jogadores dele possam interagir com a personagem, que é uma professora de química que ao longo do jogo faz as perguntas, respostas e ajuda os jogares com suas dúvidas. 2. OBJETIVOS 2.1 GERAIS Este trabalho tem o objetivo de comparar um algoritmo desenvolvido em scratch com o conteúdo do curso de linguagem de programação C++, destacando as semelhanças e diferenças, além das telas do jogo, personagem e a forma em que foi desenvolvido o trabalho. 2.2 ESPECÍFICOS O jogo tem o objetivo de desenvolver conhecimento lógico sobre a matéria apresentada no mesmo, aprender de uma maneira mais divertida e mais fácil de fixar o conteúdo apresentado, relacionar o aprendizado em C++, com outras plataformas de programação e aprender outras plataformas de programação como Scratch, Appinventor2, Arduino e etc. 3. METODOLOGIA DE PESQUISA Para o desenvolvimento do jogo foi preciso fazer algumas pesquisas. Primeiramente foi preciso aprender a mexer e programar em uma nova linguagem que é o scratch, foi preciso também fazer uma pesquisa e uma seleção de algumas perguntas de vestibular para serem usadas no jogo e por último, foi preciso aprender a configurar e editar os fundos e a personagem. 3.1 PERGUNTAS O jogo contém 5 (cinco) perguntas de múltipla escolha, que serão apresentadas abaixo: 1- (UFMG-MG) Considere as seguintes equações, I. HCl + NaOH ---> NaCl + H2O II. H2 + 0,5 O2 ---> H2O III. SO3+ H2O ---> H2SO4 Ocorre oxirredução apenas em: A) I B) II C) III D) I e III E) II e III 2- (Cesgranrio-RS) Observe a reação, podemos afirmar corretamente que: SnCl2 + 2 HCl + H2O2 → SnCl4 + 2 H2O. A) o Sn e o Cl sofrem oxidação. B) o Sn sofre oxidação, e o O, redução. C) o Sn sofre oxidação, e HCl, redução. D) a H2O2 sofre redução, e o Cl, oxidação. E) a H2O2 sofre oxidação, e o Sn, redução. 3 - Considere a seguinte equação que representa uma equação de oxirredução: 2 H2O + 2F2 → 4 HF + O2 Determine respectivamente a substância oxidada e a reduzida: A) F2 e H2O. C) H2O e HF. E) H2O e F2. B) F2 e HF. D) F2 e O2. 4- (PUC-RS) Em relação à equação de oxidação (redução não balanceada) pode-se afirmar que o: Fe0 + CuSO4 → Fe2(SO4)3 + Cu0 a) número de oxidação do cobre no sulfato cúprico é +1. b) átomo de ferro perde 2 elétrons. c) cobre sofre oxidação. d) ferro é agente oxidante. e) ferro sofre oxidação. 5 - (UFRGS) - A partir da sequência de reações representadas a seguir: I. N2 + O2 ---> 2 NO II. 2 NO + O2 ---> 2 NO2 III. NO2 + O2 ---> NO + O3 pode-se afirmar que ocorre oxidação do nitrogênio: A) I. B) II C) I e II D) I e III E) I, II e II 4. METODOLOGIA PRÁTICA O jogo foi desenvolvido em uma plataforma do MIT, o Scratch. Neste tópico vamos falar um pouco sobre a plataforma e explicar como funciona, vamos mostrar a programação, como foi o desenvolvimento dos fundos e da personagem e mostrar o começo do nosso projeto e o nosso guia durante todo ele que é o fluxograma. 4.1 O SCRATCH Imagem 1: Tela principal de desenvolvimento do scratch. Fonte: Próprio autor Acima podemos observar a tela de desenvolvimento do scratch e nela vamos ressaltar algumas coisas importantes para todo o desenvolvimento de jogos. No canto inferior esquerdo da foto temos a biblioteca de fundo e personagens presentes no jogo, toda a parte de programação no jogo fica é feita com a personagem, ou seja, toda a parte da direita da foto onde está a programação está “dentro” da personagem e o fundo é apenas um cenário. Já no canto superior esquerdo temos a tela de visualização do jogo, onde podemos ver a posição do personagem, o fundo em ralação a ele, os escritos na lousa, onde podemos ter a noção de profundidade, é a tela do seu jogo. Apertando na bandeira verde o jogo se inicia e ele vai se passar todo nessa tela. Temos que destacar também a parte central da foto, onde está presente os bloquinhos/comandos da programação que será montada na tela da direita, ali temos diversas opções de programação da personagem, como: movimento, aparência, som, caneta, variáveis, eventos, controles, sensores, operadores e mais blocos. 4.2 DESENVOLVIMENTO DE FUNDOS E PERSONAGEM Imagem 2: Tela de desenvolvimento de fundos e personagens Fonte: Próprio autor Acima podemos observar a tela de desenvolvimento de fundos e personagens do scratch e nela vamosressaltar algumas coisas importantes para todo o desenvolvimento de fundos. Temos quatro partes importantes para ressaltar: No canto superior direito e na parte inferior da imagem podemos temos a parte de edição do fundo, nela podemos adicionar uma caixa de texto (foi bastante usado nesse jogo), escrever com caneta ou carca texto, adicionar formas (quadrado, circulo), pintar o fundo de uma cor solida, desenhar linhas e ainda recortar a imagem, fazer montagem entre outras coisa. No canto esquerdo, podemos ver todos os fundos presentes no jogo, na parte superior esquerdo, temos a opção de usar fundos do próprio programa, ou importar fundos da internet/computador, tirar todos com webcam ou desenhar o fundo. Na parte central da imagem temos a tela de desenvolvimento, onde todas as ações citadas acima acontecem, onde a imagem é adicionada, onde a imagem é editada e nomeada, tudo acontece na parte central da imagem. 4.2.1 FUNDOS Imagem 3: Tela de perguntas Está imagem foi usada como base para o desenvolvimento dos fundos das perguntas e respostas do jogo, a partir dela e com o auxílio das ferramentas de edição do Scratch, essa imagem gerou outros cinco fundos. Fonte: Google imagens Imagem 4: Tela de introduções Está imagem foi usada como base para o desenvolvimento dos fundos de introdução das perguntas, para a capa do jogo e a tela final dele, a partir dela e com o auxílio das ferramentas de edição do Scratch. Fonte: Google imagens Imagem 5: Tela de explicação Está imagem foi usada como base para o desenvolvimento dos fundos de explicação que ficam após cada pergunta, a partir dela e com o auxílio das ferramentas de edição do Scratch, essa imagem gerou outros cinco fundos. Fonte: Google imagens Todas as imagens apresentadas acima, foram tiradas da internet e editadas para poder se transformar no fundo do jogo. 4.2.2 PERSONAGEM Imagem 6: Personagem Estas é uma imagem em formato .png que foi tirada do Google imagens, ela não tem fundo e coube perfeitamente nos fundos do jogo. Com o auxílio das ferramentas de edição do Scratch foi possível adaptar o seu tamanho e posição conforme a mudança de fundo. Fonte: Google imagens 4.3 PROGRAMAÇÃO O jogo é composto basicamente de 3 “blocos” de programação, que são: a parte inicial, a programação das perguntas, respostas e fundo de explicação e a parte final. Abaixo vamos apresentar algumas fotos das programações e explicá-las detalhadamente. Programação inicial: Imagem 7: Programação inicial Fonte: próprio autor Na imagem acima podemos ver algumas partes destacada, na parte destacada em verde, é a forma de informar ao programa com qual fundo vai começar o jogo. Na parte destacada em preto, temos algumas configurações básicas, primeiro temos o “mostre”, que está ali para a personagem aparecer assim que o jogador clicar na bandeira verde, depois temos “mostra variável”, para mostrar a barra de pontos, temos aposição em que a personagem deve estar naquele fundo apresentado anteriormente e por último ele zera variável pontos, para no começo do jogo o jogador esteja com 0 pontos. Na parte destacada em vermelho, temos a apresentação da personagem, essa apresentação seria as falas da personagem que na tela do jogo vão aparecer em um balão de fala. Programação das perguntas: Imagem 8: Programação das perguntas Fonte: próprio autor Na imagem acima podemos ver algumas partes destacada, na parte destacada em verde, temos a mudança de fundo , para o fundo de introdução, temos a fala da personagem informando qual vai ser a próxima pergunta e temos a mudança de fundo de novo, mas dessa vez para o fundo onde será feita a pergunta. Na parte destacada em vermelho, temos as falas da personagem, que na verdade são as perguntas, temos a mudança de fundo, para o fundo onde está escrito as alternativas e por ultimo temos o final da pergunta e a espera pela resposta (com esse bloco azul claro, a personagem fala, aprece uma barra para resposta na parte inferior da tela e essa barra só some depois da resposta do jogador). Na parte destacada em preto, temos toda a parte de condição da pergunta a programação da resposta, onde se o jogador acertar, a personagem fala que ele acertou e ele ganhará um ponto e logo após é adicionado um ponto a variável e se o jogador errar, a personagem fala que ele errou e pergunta se ele quer ver a resposta com uma explicação, se ele responder “sim”, muda de dela e vai para a tela da explicação daquela pergunta, essa tela tem duração de 8 segundos, após esses 8 segundos, todo o processo citado acima repete na próxima pergunta. Programação final: Imagem 9: Programação final Fonte: próprio autor Na imagem acima podemos ver algumas partes destacada, na parte destacada em vermelho, temos uma fala da personagem, onde ela mostra o total de pontos feito no decorrer do jogo, essa fala está diretamente ligada com a variável. Na parte destacada em preto, temos toda a parte de condição do total de pontos, então se o jogador ficar com os pontos entre 0 e 3, a personagem vai falar que ele foi mal e vai sugerir para ele jogar de novo, se o jogador fizer 3 pontos, vai dizer que ele foi na média e se o jogador fizer mais que 3 pontos, a personagem vai falar que ele foi muito bem. Na parte destacada em verde, temos a mudança de tela que sucede qualquer uma das três condições citadas acima, essa mudança de tela, leva o jogo pata a última tela que estará escrito “FIM” na lousa, e logo após a mudança de tela, tem a posição onde a personagem deve estar. 4.4 FLUXOGRAMA 5. COMPARAÇÃO COM O C++ Neste tópico vamos mostrar as semelhanças e mostrar adaptadamente como seria este jogo em C++. Programação inicial: Em Scratch: Imagem 10: Programação inicial Fonte: próprio autor Em C++: #include <iostream> #include <cstdlib> using namespace std; void fundo1 () { int x, y, pontos, tempo, nome; cout << "Personagem 1" << endl; cout << "Pontos" << endl; cout << "Va para:" << endl; x = -134; Y = 59; pontos == 0; tempo == 2; cout << "Olá, meu nome é Maria Thereza e hoje vamos aprender sobre REDOX!" << endl; cout << "Neste jogo, vamos te fazer perguntas sobre redox." << endl; cout << "Para cada resposta certa, você ganhará 1 ponto" << endl; cout << "Qual o seu nome ?"; cin >> nome; cout << "Vamos começar, " >> nome >> "?" >> endl; tempo = 2; cout << "Va para:" << endl; x = -69; Y = 52; return fundo1()} int main() {cout << "Prog. Inicial" << endl; return fundo1();} Acima podemos ver a comparação da parte inicial entre Scratch e C++, temos algumas partes destacadas na programação que condizem as partes que estão dentro dos retângulos marcados na imagem, (cada um com uma cor diferente). Na parte em verde, podemos observar a troca de fundo em Scratch, que em C++ cada fundo seria uma função, e para cada troca de fundo, seria uma nova chamada de função. Na parte em azul, podemos observar que em Scratch os blocos tem cada um uma função e esses blocos tem a função de mostrar a personagem, a variável pontos, definir a posição da personagem e zerar os pontos, em C++ usamos o “cout” para exibi a personagem e pontos, definimos o valor da variável “x” e “y” e o valor pontos igual a 0. Na parte em vermelho, podemos observar a fala da personagem, que em C++ é usado o “cout” para a exibir na tela. Programação das perguntas: Em Scratch: Imagem 11: Programação das perguntas Fonte: próprio autor Em C++: #include <iostream> #include <cstdlib> using namespace std; void fundo1 () { int x, y; cout << "Va para:" << endl; x = -134; Y = 59; cout << "Vamos para a pergunta 2!" << endl; cout << "Va para:" << endl; x = -69; Y = 52; return fundo1()} void fundo11 () { cout << "2 - (Cesgranrio-RS) Observe a reação:" << endl; cout << "A partir dela, podemos afirmar corretamente que:"<< endl;} void fundo31 () { int tempo; tempo = 8; return tempo;} void fundo3 () { int resp2, pontos, resp0; cout << "SnCl2 + 2 HCl + H2O2 → SnCl4 + 2 H2O"; cin >> resp2; if (resp2 == b || RESP2 == b) cout << "Parabéns, resposta certa!!" << endl; cout << "Você ganhou um ponto" << endl; pontos += 1; else cout << "Você errou!!"; cout << "Vamos ver o resultado ? Sim ou não"; cin >> resp0; if (resp0 == sim) fundo31()} int main() {cout << "Prog. Perguntas" << endl; int x, y, pontos, tempo, nome; cout << "Personagem 1" << endl; cout << "Pontos" << endl; fundo1() fundo11() fundo3() return 0;} Acima podemos ver a comparação da parte inicial entre Scratch e C++, temos algumas partes destacadas na programação que condizem as partes que estão dentro dos retângulos marcados na imagem, (cada um com uma cor diferente). Na parte em verde, podemos observar a troca de fundo em Scratch, que em C++ cada fundo seria uma função, e para cada troca de fundo, seria uma nova chamada de função, dentro dessa função temos a definição das variáveis “x” e “y que é local onde a personagem vai ficar. Na parte em vermelho, podemos observar a mudança de fundo novamente, ou seja, outra função, dentro dessa função temos a fala da personagem que em C++ usou-se o “cout”, onde ela faz a pergunta. Na parte em azul, podemos observar a fala da personagem (final da pergunta) utilizando o “cout” logo em seguida já temos a resposta da pergunta que em C++ usou-se o “cin”. Para a validação das respostas, usamos o “if” e o “else”, como condições para validar se a resposta está correta ou não. Programação final: Em Scratch: Imagem 12: Programação final Fonte: próprio autor Em C++: #include <iostream> #include <cstdlib> using namespace std; void fundo1 () { int x, y, pontos, tempo; cout << "Va para:" << endl; x = -134; Y = 59; cout << "Voce fez" << pontos << "ponto(os)" << endl; if (pontos == 0 || pontos < 3) cout << "Você errou muito, Tente novamente!!" << endl; else if (pontos == 3) cout << "Você ficou na média!!" << endl; else if (pontos > 3) cout << "Parabens, Você foi muito bem!!" << endl; tempos = 2; ultimofundo() } void ultimofundo () { int x, y; cout << "Va para:" << endl; x = -134; Y = 59; } int main() { cout << "Prog final" << endl; cout << "Personagem 1" << endl; cout << "Pontos" << endl; fundo1() return 0;} Acima podemos ver a comparação da parte inicial entre Scratch e C++, temos algumas partes destacadas na programação que condizem as partes que estão dentro dos retângulos marcados na imagem, (cada um com uma cor diferente). Na parte em vermelho, podemos observar a troca de fundo em Scratch, que em C++ cada fundo seria uma função, e para cada troca de fundo, seria uma nova chamada de função, dentro dessa função temos a definição das variáveis “x” e “y que é local onde a personagem vai ficar e temos também a fala da personagem onde mostra a pontuação total do jogador, que em C++, usou-se o “cout” com a variável “pontos” no meio da frase. Na parte em azul, podemos observar o uso das condições para falar como foi o desempenho do jogador naquela rodada, e em C++ usamos o “if” e o “else”, como condições para validar se a quantidade de pontos e conforme a quantidade de pontos, a personagem diz uma frase. 6. CONCLUSÃO No início do desenvolvimento do trabalho todo o grupo teve muita dificuldade em alguns pontos, com: aprender a mexer com uma nova linguagem de programação que é o scratch, entender a logica do scratch, fazer os fundos e ter a criatividade para poder criar um jogo. Porem ao longo do desenvolvimento percebemos que o Scratch é muito mais fácil de programar que a linguagem C++, isso porque ele é muito intuitivo, a forma de programação dele é muito mais fácil, pois se o bloquinho não encaixa é porque a programação vai dar errado. Já na programação em C++ qualquer errinho ou até mesmo esquecer uma virgula já faz o programa falhar. Então a o Scratch foi uma linguagem muito boa para desenvolver esse jogo pelo fato de ser fácil, prático e ele sempre mostra onde está seu erro. Agora, ao final de toda a programação do jogo e depois de fazer toda a comparação entre o Scratch e o C++, podemos perceber que a lógica por trás dos dois é a mesma, as condições são as mesmas, mas o Scratch é muito mais visual. 7. LINK DO JOGO https://scratch.mit.edu/projects/312961381 8. REFERÊNCIAS https://pt.wikipedia.org/wiki/Scratch#Descri%C3%A7%C3%A3o http://www.scratchbrasil.net.br/index.php/sobre-o-scratch/73-conhece-scratch.html https://moodle.mackenzie.br/moodle/course/view.php?id=4764§ion=3 https://exercicios.brasilescola.uol.com.br/exercicios-quimica/exercicios-sobre-reacoes-oxirreducao.htm https://www.todamateria.com.br/reacoes-de-oxirreducao/ https://descomplica.com.br/blog/exercicios-resolvidos/questoes-comentadas-o-que-sao-nox-e-reacoes-redox/ 2 2
Compartilhar