Professional Documents
Culture Documents
Cincias da Computao
So Paulo, SP
2017
p. 1
APS Jogo Ambiental
So Paulo
2017
p. 2
Sumrio
1. Introduo......................................................................................................4
1.1. Contextualizao.....................................................................................5
1.2. Problema.................................................................................................6
1.3. Objetivo...................................................................................................7
1.4. Motivao................................................................................................8
1.5. Organizao do Relatrio.......................................................................9
2. Fundamentao Terica..............................................................................10
3. Trabalhos relacionados................................................................................11
4. Projeto Jogo.................................................................................................12
5. Concluses..................................................................................................36
6. Bibliografia...................................................................................................37
p. 3
Introduo
No trabalho possvel ver a ideia do desenvolvimento sustentvel, que
tem a capacidade de satisfazer as necessidades presentes sem comprometer a
capacidade das geraes futuras de suprir suas prprias necessidades.
Criamos um jogo de perguntas que tem o intuito de abordar de uma
forma diferente assuntos que diz respeito ao meio ambiente, e assim
transmitindo conhecimento sobre o assunto aos usurios do jogo.
possvel criar algo nos dias de hoje sem comprometer o meio
ambiente no futuro? Podemos ver que muitas empresas criam algo pensando
apenas nos dias atuais.
p. 4
Contextualizao
Este trabalho tem como assunto o desenvolvimento sustentvel e se prope a
discutir fundamentos tericos e metodolgicos das pesquisas de Educao
Ambiental que se centralizam nele.
O tema do trabalho em si se baseia em uma pergunta que foi feita no
vestibular na UPE (Universidade de Pernambuco).
aquele que satisfaz as necessidades presentes sem comprometer a
capacidade das geraes futuras de suprir suas prprias necessidades.
Trata-se da definio CORRETA de:
1. Crescimento neomalthusiano ambiental.
2. Desenvolvimento sustentvel.
3. Eco desenvolvimento neoliberal.
4. Desenvolvimento ambiental.
5. Eco desenvolvimento darwinista.
Como olhar o futuro sem ter ao menos um conhecimento bsico de
educao ambiental que se entendem pelos processos por meio dos quais o
indivduo e a coletividade constroem valores sociais, conhecimentos,
habilidades, atitudes e competncias voltadas para a conservao do meio
ambiente, bem de uso comum do povo, essencial sadia qualidade de vida e
sua sustentabilidade.
p. 5
Problema
Por ser um jogo com temtica Ambiental, com finalidade educativa, a
preocupao obviamente est relacionada em promover o desenvolvimento de
conhecimentos nas questes ambientais, ao mesmo tempo divertindo o
usurio, tornando a aprendizagem mais prazerosa.
O reflexo desse trabalho educacional ultrapassa os muros escolares,
atingindo circunvizinhanas e, sucessivamente passando de pessoa a pessoa.
p. 6
Objetivo
O objetivo geral da pesquisa confeccionar um jogo de cunho
ambiental, na linguagem de programao Java. Dissertando apenas sobre as
tcnicas usadas e no programa do jogo, como funciona, entre outros.
A principal finalidade deste trabalho explicar a fundamentao e
funcionalidade de cada parte do cdigo, utilizando os recursos de linguagem
orientada a objetos.
p. 7
Motivao
A motivao para o trabalho resultante de um assunto intrnseco na
sociedade em geral, que passa despercebido para a maioria das pessoas, em
sua maioria so estudantes.
Conscientizar e desenvolver o costume, nos usurios, de sempre buscar
mais conhecimento de cunho ambiental e usar isso em prol de nosso prprio
planeta.
p. 8
Organizao do Relatrio
O trabalho foi organizado separando o contedo por tpicos e respeitando as
regras do trabalho.
O primeiro tpico mostra uma prvia do trabalho que possu mais cinco
subtpicos informando o:
p. 9
Fundamentao Terica
Para confeco do jogo foram utilizados o padro de projetos Model-
View-Controller (MVC), ou seja, quebrar uma aplicao, ou at mesmo um
pedao da interface de uma aplicao, em trs partes: o modelo, a viso e o
controlador.
Cada um dos objetos do padro MVC tem uma funo especifica e
complementares entre si. O controlador (Controller) que interpreta as entradas
do mouse ou do teclado enviado pelo usurio e mapeia tais aes em
comandos que so enviados para o modelo (Model) e/ou para a janela de
visualizao (View) para efetuar a alterao apropriada. Por sua vez o modelo
(Model) gerencia um ou mais elementos de dados, responde a perguntas sobre
o seu estado e responde a instrues para mudar de estado. O modelo sabe o
que o aplicativo quer fazer e a principal estrutura computacional da
arquitetura, pois ele quem modela o problema que est se tentando resolver.
Por fim, a viso (View) gerencia a rea retangular do display e responsvel
por apresentar as informaes para o usurio atravs de uma combinao de
grficos e textos. A viso no sabe nada sobre o que a aplicao est
atualmente fazendo, tudo que ela realmente faz receber instrues do
controle e informaes do modelo e ento exibir elas. A viso tambm se
comunica de volta com o modelo e com o controlador para reportar o seu
estado.
Portanto, a principal ideia do padro MVC a separao dos conceitos -
e dos cdigos. O MVC assim como a programao orientada a objetos, cria
objetos que escondem as suas informaes e como elas so manipuladas e
ento apresentar apenas uma simples interface para o mundo. Essas
caractersticas principais tornam este padro reutilizvel e de fcil manuteno,
qualidades das quais so de extrema relevncia para softwares de orientao a
objetos. Mesmo com grandes vantagens ainda existem difceis
responsabilidades com o MVC, como uma complexidade alta em solues de
problemas de qualquer na natureza do software e em frequentes atualizaes
da parte da viso (View), sendo assim, passando a necessidades de
atualizaes para o resto dos objetos do padro MVC.
p. 10
Trabalhos Relacionados
Jogo dos 7 erros: Que tem a capacidade de auxiliar no desenvolvimento
das crianas e que tambm pode abordar diversos temas inclusive o tema
abordado no trabalho.
Jogo da forca: Tem o intuito de abordar diversos temas e estimular a
ateno e a inteligncia.
Pesque e salve: Um jogo bem divertido que faz com que o jogador
pesque as sujeiras do mar, assim ajudando no combate contra a poluio.
p. 11
Projeto Jogo
Diagrama de classes
p. 12
Mtodos do programa
p. 13
3.1. Sistem.exit(0): encerra a aplicao Java.
Execuo do Programa
Interface grfica do jogo:
Boto Regras:
p. 14
Responder as questes:
p. 15
Boto verificar pontos: mostra sua pontuao atual independente de
quantas questes foram respondidas.
p. 16
Boto finalizar nvel 1, 2 ou 3: No caso de a pontuao ser mnima for
alcanada ou ultrapassada os botes das perguntas do nvel seguinte
so desbloqueados, iniciando a pontuao do nvel em questo.
p. 17
Cdigo Fonte
Classe Pontuaes (pacote controller)
package controller;
import javax.swing.JOptionPane;
p. 18
Classe Perguntas (pacote model)
package model;
import javax.swing.JOptionPane;
private int n1p1, n1p2, n1p3, n1p4, n1p5, n1p6, n1p7, n1p8, n1p9, n1p10;
private int n1pontos;
private int n2p1, n2p2, n2p3, n2p4, n2p5, n2p6, n2p7, n2p8, n2p9,
n2p10;
private int n2pontos;
private int n3p1, n3p2, n3p3, n3p4, n3p5, n3p6, n3p7, n3p8, n3p9,
n3p10;
private int n3pontos;
p. 19
public int pergunta1(){
n1p1 = Integer.parseInt(JOptionPane.showInputDialog("01)
Considerando a riquezas dos recursos "
+ " hdricos brasileiros, "
+ " uma grave crise de gua em nosso pas poderia
ser motivada pela:"
+ " \n 1 - Reduzida rea de solos agricultveis."
+ " \n 2 - Ausncia de reservas de guas
subterrneas. "
+ " \n 3 - Escassez de rios e de grandes bacias
hidrogrficas."
+ " \n 4 - Degradao dos mananciais e desperdcio
no consumo. "
+ " \n 5 - Transposio do rio So Francisco."));
if(n1p1 == 4){
n1pontos++;
JOptionPane.showMessageDialog(null, " Alternatinativa
correta!");
} else {
JOptionPane.showMessageDialog(null, " Alternatinativa
incorreta!");
}
return getN1pontos();
}
...
p. 20
+ " \n Em relao energia eltrica, em Santa
Catarina, correto afirmar. "
+ " \n 1 - O Gasoduto Brasil-Bolvia uma conquista
para a indstria catarinense, que agora poder contar com uma fonte de
energia totalmente limpa, "
+ " \n s que muito mais cara que a energia
produzida a carvo."
+ " \n 2 - A Celesc, para atender crescente
demanda de energia, foi privatizada, quando a Tractebel Sul S.A. adquiriu o
controle acionrio e iniciou a "
+ " \n ampliao da rede de distribuio de energia."
+ " \n 3 - A usina termoeltrica responsvel por
produzir energia eltrica no Estado a Jorge Lacerda, e est localizada em
Capivari de Baixo. "
+ " \n 4 - O Complexo Termeltrico Angra III, em
Tubaro, iniciou a produo de energia eltrica, base da fuso do tomo."
+ " \n 5 - O carvo uma fonte de energia que
dever crescer, e muito, na dcada que se inicia, pois algumas indstrias
carbonferas j assinaram convnio para comprar "
+ " \n carvo americano e queim-lo nas
termoeltricas de Cricima e Urussanga."));
if(n3p10 == 3){
n3pontos++;
JOptionPane.showMessageDialog(null, " Alternatinativa
correta!");
}else {
JOptionPane.showMessageDialog(null, " Alternatinativa
incorreta!");
}
return getN3pontos();
}
p. 21
return n1pontos;
}
p. 22
Classe Interface (pacote view)
package view;
import java.awt.Color;
EventQueue.invokeLater(new Runnable() {
try {
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
});
p. 23
public Interface() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setContentPane(contentPane);
label.setAlignment(Label.CENTER);
panel_1.setBorder(new
TitledBorder(UIManager.getBorder("TitledBorder.border"),
panel_1.setToolTipText("Nivel 1");
p. 24
JPanel panel_2 = new JPanel();
panel_2.setLayout(null);
panel_2.setToolTipText("Nivel 1");
panel_2.setBorder(new
TitledBorder(UIManager.getBorder("TitledBorder.border"),
panel_3.setLayout(null);
panel_3.setToolTipText("Nivel 1");
panel_3.setBorder(new
TitledBorder(UIManager.getBorder("TitledBorder.border"),
panel_1.setLayout(null);
contentPane.setLayout(null);
contentPane.add(label);
contentPane.add(panel_1);
btn1p1.addActionListener(new ActionListener() {
p. 25
b.pergunta1();
btn1p1.setEnabled(false);
});
panel_1.add(btn1p1);
btn1p2.addActionListener(new ActionListener() {
b.pergunta2();
btn1p2.setEnabled(false);
});
p. 26
});
btnSair.setFont(new Font("Tahoma", Font.PLAIN, 18));
btnSair.setBounds(348, 524, 127, 44);
contentPane.add(btnSair);
JOptionPane.showMessageDialog(null, "total de
pontos no nivel 3:\t" + b.getN3pontos());
if(b.getN3pontos() >= 5){
btnTotalPontos.setEnabled(true);
} else {
JOptionPane.showMessageDialog(null, "sua
pontuao de " + b.getN3pontos() + " foi inferior ao limite para liberar o proximo
nivel!"
+ "\nSua pontuaao foi zerada,
atinja o os pontos necessarios para liberar o nivel 3!");
b.setN3pontos(0);
p. 27
btn3p1.setEnabled(true);
btn3p2.setEnabled(true);
btn3p3.setEnabled(true);
btn3p4.setEnabled(true);
btn3p5.setEnabled(true);
btn3p6.setEnabled(true);
btn3p7.setEnabled(true);
btn3p8.setEnabled(true);
btn3p9.setEnabled(true);
btn3p10.setEnabled(true);
btnPontosn3.setEnabled(true);
}
}
});
btnPontosn3.setEnabled(false);
btnPontosn3.setBounds(337, 490, 128, 23);
contentPane.add(btnPontosn3);
p. 28
btnPontosn3.setEnabled(true);
} else {
JOptionPane.showMessageDialog(null, "sua
pontuao de " + b.getN2pontos() + " foi inferior ao limite para liberar o proximo
nivel!"
+ "\nSua pontuaao foi zerada,
atinja o os pontos necessarios para liberar o nivel 2!");
b.setN2pontos(0);
btn2p1.setEnabled(true);
btn2p2.setEnabled(true);
btn2p3.setEnabled(true);
btn2p4.setEnabled(true);
btn2p5.setEnabled(true);
btn2p6.setEnabled(true);
btn2p7.setEnabled(true);
btn2p8.setEnabled(true);
btn2p9.setEnabled(true);
btn2p10.setEnabled(true);
btnPontosn2.setEnabled(true);
btnPontosn3.setEnabled(true);
}
}
});
btnPontosn2.setEnabled(false);
btnPontosn2.setBounds(181, 490, 126, 23);
contentPane.add(btnPontosn2);
p. 29
if(b.getN1pontos() >= 5){
btn2p1.setEnabled(true);
btn2p2.setEnabled(true);
btn2p3.setEnabled(true);
btn2p4.setEnabled(true);
btn2p5.setEnabled(true);
btn2p6.setEnabled(true);
btn2p7.setEnabled(true);
btn2p8.setEnabled(true);
btn2p9.setEnabled(true);
btn2p10.setEnabled(true);
btnPontosn2.setEnabled(true);
btnPontosn3.setEnabled(true);
} else {
JOptionPane.showMessageDialog(null, "sua
pontuao de " + b.getN1pontos() + " foi inferior ao limite para liberar o proximo
nivel!"
+ "\nSua pontuaao foi zerada,
atinja o os pontos necessarios para liberar o nivel 2!");
b.setN1pontos(0);
btn1p1.setEnabled(true);
btn1p2.setEnabled(true);
btn1p3.setEnabled(true);
btn1p4.setEnabled(true);
btn1p5.setEnabled(true);
btn1p6.setEnabled(true);
btn1p7.setEnabled(true);
btn1p8.setEnabled(true);
btn1p9.setEnabled(true);
btn1p10.setEnabled(true);
}
}
});
btnPontosn1.setBounds(20, 490, 136, 23);
p. 30
contentPane.add(btnPontosn1);
btn1p1.setEnabled(true);
btn1p2.setEnabled(true);
btn1p3.setEnabled(true);
btn1p4.setEnabled(true);
btn1p5.setEnabled(true);
btn1p6.setEnabled(true);
btn1p7.setEnabled(true);
btn1p8.setEnabled(true);
btn1p9.setEnabled(true);
btn1p10.setEnabled(true);
btn2p1.setEnabled(false);
btn2p2.setEnabled(false);
btn2p3.setEnabled(false);
btn2p4.setEnabled(false);
btn2p5.setEnabled(false);
p. 31
btn2p6.setEnabled(false);
btn2p7.setEnabled(false);
btn2p8.setEnabled(false);
btn2p9.setEnabled(false);
btn2p10.setEnabled(false);
btnPontosn2.setEnabled(false);
btnTotalPontos.setEnabled(false);
btn3p1.setEnabled(false);
btn3p2.setEnabled(false);
btn3p3.setEnabled(false);
btn3p4.setEnabled(false);
btn3p5.setEnabled(false);
btn3p6.setEnabled(false);
btn3p7.setEnabled(false);
btn3p8.setEnabled(false);
btn3p9.setEnabled(false);
btn3p10.setEnabled(false);
btnPontosn3.setEnabled(false);
}
});
btnLimparDados.setFont(new Font("Tahoma", Font.PLAIN, 18));
btnLimparDados.setBounds(10, 524, 146, 44);
contentPane.add(btnLimparDados);
}
}
package teste;
p. 32
import org.junit.Test;
import controller.Pontuaoes;
import model.Perguntas;;
@Test
b.pergunta1();
b.pergunta1n2();
b.pergunta3n3();
int n1 = 1;
int n2 = 2;
int n3 = 3;
p. 33
Concluso
O desenvolvimento do software possibilitou uma anlise de como o jogo
pode ser importante para os usurios, pois os ajudam a intender o tema
debatido no trabalho. Tendo como pblico alvo os estudantes com um pouco
de conhecimento em informtica e tratando-se tambm de um tema livre.
De um modo geral os estudantes que buscam conhecimento por meio
da informtica, pode se divertir em quanto aprende. O software fornece aos
estudantes um ambiente enriquecedor e motivador que alm de divertir, passou
a ser visto como um promotor de aprendizagem, permitindo os alunos entender
melhor alguns conceitos que antes no foram assimilados.
p. 34
Bibliografia
Model-View-Controller. Em: < https://msdn.microsoft.com/en-
us/library/ff649643.aspx >.
p. 35