desenvolvimento de jogos de memÓria utilizando java swing

9
DESENVOLVIMENTO DE JOGOS DE MEMÓRIA UTILIZANDO JAVA SWING Cleyton Vanut Cordeiro de Magalhães , Ronnie Edson de Souza Santos, Richarlyson A. D’Emery Universidade Federal Rural de Pernambuco (UFRPE) Unidade Acadêmica de Serra Talhada (UAST) Serra Talhada - Brasil {cleyton.vanut, ronnie.gd, ricodemery}@gmail.com.br RESUMO As atividades lúdicas são atividades cujo objetivo é produzir prazer para os participantes quando é executada. Os jogos são exemplos deste tipo de atividade possuindo grande influência no processo de desenvolvimento das crianças. A popularização do computador nas últimas décadas coloca no cotidiano da sociedade um novo ambiente de aprendizagem e relacionamento a partir de um espaço conhecido como virtual. O desenvolvimento de jogos virtuais deve conter o máximo de requisitos do projeto de interface gráfica para que possa viabilizar a construção do melhor ambiente lúdico quanto for possível. Este trabalho relata a utilização do Java Swing, pacote que contém diversos componentes que permitem a criação de ambientes gráficos, no desenvolvimento do Jogo da Memória. PALAVRAS-CHAVE Ambiente Virtual Lúdico, Jogos Infantis, Java Swing. 1. INTRODUÇÃO A importância do processo de desenvolvimento e consolidação da identidade do ser humano é uma questão de conhecimento geral da sociedade. A capacidade de aprendizagem colaborativa e a utilização de meios diversos para obtenção de conhecimento começa na fase inicial da vida, no período conhecido como infância (OLIVEIRA, 2006). É neste momento que as brincadeiras fornecem oportunidades de desenvolvimento, onde através de atividades recreativas a criança experimenta, descobre, inventa, aprende e desenvolve habilidades. Além do mais, as brincadeiras têm contribuição no estímulo da curiosidade, a autoconfiança e a autonomia, proporcionando o desenvolvimento da linguagem, do pensamento e da concentração.

Upload: ronnie

Post on 12-Jun-2015

4.068 views

Category:

Documents


0 download

DESCRIPTION

Artigo Científico apresentado nos anais do 1º Encontro Regional de Tecnologia e Negócios promovido pelos cursos de Bacharelado em Sistemas de Informação e de Administração da UAST/UFRPE (Universidade Federal Rural de Pernambuco - Unidade Acadêmica de Serra Talhada).

TRANSCRIPT

Page 1: DESENVOLVIMENTO DE JOGOS DE MEMÓRIA UTILIZANDO JAVA SWING

DESENVOLVIMENTO DE JOGOS DE MEMÓRIA UTILIZANDO JAVA SWING

Cleyton Vanut Cordeiro de Magalhães, Ronnie Edson de Souza Santos, Richarlyson A. D’EmeryUniversidade Federal Rural de Pernambuco (UFRPE)

Unidade Acadêmica de Serra Talhada (UAST)

Serra Talhada - Brasil {cleyton.vanut, ronnie.gd, ricodemery}@gmail.com.br

RESUMO

As atividades lúdicas são atividades cujo objetivo é produzir prazer para os participantes quando é executada. Os jogos são exemplos deste tipo de atividade possuindo grande influência no processo de desenvolvimento das crianças. A popularização do computador nas últimas décadas coloca no cotidiano da sociedade um novo ambiente de aprendizagem e relacionamento a partir de um espaço conhecido como virtual. O desenvolvimento de jogos virtuais deve conter o máximo de requisitos do projeto de interface gráfica para que possa viabilizar a construção do melhor ambiente lúdico quanto for possível. Este trabalho relata a utilização do Java Swing, pacote que contém diversos componentes que permitem a criação de ambientes gráficos, no desenvolvimento do Jogo da Memória.

PALAVRAS-CHAVE

Ambiente Virtual Lúdico, Jogos Infantis, Java Swing.

1. INTRODUÇÃO

A importância do processo de desenvolvimento e consolidação da identidade do ser humano é uma questão de conhecimento geral da sociedade. A capacidade de aprendizagem colaborativa e a utilização de meios diversos para obtenção de conhecimento começa na fase inicial da vida, no período conhecido como infância (OLIVEIRA, 2006). É neste momento que as brincadeiras fornecem oportunidades de desenvolvimento, onde através de atividades recreativas a criança experimenta, descobre, inventa, aprende e desenvolve habilidades. Além do mais, as brincadeiras têm contribuição no estímulo da curiosidade, a autoconfiança e a autonomia, proporcionando o desenvolvimento da linguagem, do pensamento e da concentração.

O processo de formação de identidade do ser humano sofre influências diretas do meio em que o indivíduo vive. A popularização do computador nas últimas décadas coloca no cotidiano da sociedade um novo ambiente de aprendizagem e relacionamento a partir de um espaço conhecido como virtual. O computador está presente na vida das crianças nos tempos atuais e tem grande participação no processo de formação da personalidade, sendo um dos instrumentos mais eficientes na construção de ambientes interativos para o aprendizado e a diversão.

As atividades lúdicas são atividades cujo objetivo é produzir prazer para os participantes quando é executada. Para Piaget (1976) estas não são apenas uma forma de desafogo ou entretenimento para gastar energia das crianças, mas meios que contribuem e enriquecem o desenvolvimento intelectual. Por meio do computador é possível elaborar diversos maneiras de se trabalhar com o lúdico através dos jogos virtuais, que podem simular diversos tipos de brincadeiras conhecidas, além de poder criar diversas outras.

Os jogos virtuais são muito importantes porque, segundo STAHL (1990): identificam a relação causa-efeito entre as respostas e as conseqüências no jogo; atraem e mantém o interesse e o entusiasmo;

Page 2: DESENVOLVIMENTO DE JOGOS DE MEMÓRIA UTILIZANDO JAVA SWING

o ambiente pode variar em função do jogo e dos níveis de dificuldade; exploram efeitos auditivos e visuais; exploram a fantasia; o computador possui a capacidade de proporcionar um adversário "inteligente"; oferecem sensibilidade, ou seja, pode-se mudar os parâmetros do jogo e assim variar o ambiente,

enfrentando objetivos diferentes de cada vez.

Além disto, o jogo é reconhecido como elemento que favorece a criança um ambiente agradável, motivador, planejado e enriquecido, que possibilita a aprendizagem de várias habilidades (ANTUNES, 2000). Por isto, o desenvolvimento de um jogo deve conter o máximo de requisitos do projeto de interface gráfica do usuário para que possa viabilizar a construção do melhor ambiente lúdico quanto for possível.

Uma GUI (Graphical user interface) dá ao aplicativo aparência e comportamento favorável para que o processo de interação do usuário com o sistema ocorra da forma mais eficiente possível. Por fim uma interface deve permitir ao usuário uma familiarização com o sistema, para utilizá-lo com mais produtividade. Porém, construir interfaces gráficas não significa apenas saber como criar interações, ou seja, os primeiros passos são meramente técnicos, trata-se de conhecer uma linguagem de construção de interfaces. Java é uma linguagem de programação utilizada para desenvolver aplicativos corporativos de grande porte, aprimorar funcionalidades de servidores web, fornecer aplicativos para dispositivos usados para o uso popular, como celulares, e para muitos outros propósitos (DEITEL e DEITEL, 2005).

A API (Application Programming Interface) Java possui duas bibliotecas contendo diversos componentes que permitem a criação de ambientes gráficos, o AWT (Abstract Window Toolkit), e o Swing (SUN MICROSYSTENS, 2009). A programação de interfaces gráficas com o usuário utilizando Java inicio-use com a utilização do AWT. Posteriormente foi criado o pacote Swing, que é completamente escrito em Java e substitui, em parte, o AWT, fornecendo uma gama nova de componentes, ou JComponents sendo considerado mais poderoso e portável. A diferença principal entre eles é que aplicativos implementados utilizando Swing possuem a mesma aparência quando executado sobre diferentes plataformas, o que não acontece ao utilizar o AWT, sendo que este utiliza a aparência do sistema operacional em que a aplicação é executada.

Como o pacote Swing estende do AWT, existe uma grande semelhança entre os nomes de seus componentes bastando apenas adicionar a letra "J" como prefixo ao nome do componente AWT para obter o nome da classe correspondente em Swing. Por exemplo, as classe Button e Frame de AWT correspondem respectivamente às classes JButton e JFrame em Swing.

O Java Swing é utilizado principalmente para a construção de aplicativos para desktop, mas os seus componentes permitem ainda a elaboração de jogos que simulam brincadeiras bastante conhecidas e divertidas no ponto de vista das crianças. Alguns podem ser bem simples, porém o Swing permite ainda a criação de ambientes de animação em duas dimensões, ou seja, 2D.

Este trabalho relata a utilização do Java Swing no desenvolvimento de um jogo simples, o Jogo da Memória. Este é um dos jogos mais conhecidos, sendo bastante eficiente para aumentar o esforço, o raciocínio e a observação dos jogadores.

2. MATERIAL E MÉTODOS

O processo de desenvolvimento do Jogo da Memória ocorreu na disciplina Modelagem e Programação Orientada a Objetos, no curso de Bacharelado em Sistemas de Informação na Unidade Acadêmica de Serra Talhada da Universidade Federal Rural de Pernambuco. Foi solicitada a criação de um jogo na linguagem Java, que fizesse utilização dos principais conteúdos ministrados na disciplina, dentre eles, a API Swing.

É importante saber que durante o processo de construção de um programa Java é necessário, primeiramente, importar os pacotes Java para tornar possível a execução do programa. Assim, as primeiras linhas do código geralmente serão como esta: import javax.swing.*;

Page 3: DESENVOLVIMENTO DE JOGOS DE MEMÓRIA UTILIZANDO JAVA SWING

Como qualquer aplicação que possua uma interface gráfica, o desenvolvimento do primeiro nível do jogo foi iniciado com a criação de um JFrame, o qual se trata de uma janela sem conteúdo em seu interior. Após a configuração de seu tamanho, título e localização na tela utilizando os métodos setSize(), setTitle() e setLocation(), a estratégia comumente adotada é adicionar ao JFrame, no método construtor da classe, os componentes desejados. Neste caso, foram adicionados 20 JButtons, que são simplesmente botões, que ao serem clicados, disparam algum tipo de evento determinado pelo programador.

Os gerenciadores de layout são fornecidos a fim de organizar componentes GUI em um contêiner (Container). O FlowLayout é o gerenciador mais simples, ele organiza os componentes GUI da esquerda para a direita na ordem que são adicionados enquanto BorderLayout distribui os componentes em cinco regiões: norte, sul, leste, oeste e centro, que são definidas pelo programador. Para que os botões adicionados à janela estivessem organizados de forma uniforme o gerenciador utilizado no Jogo da Memória foi o Gridlayout, que divide o contêiner em forma de grade de forma que os componentes podem ser distribuídos em linhas e colunas e por parâmetros é possível passar o número de linhas e colunas, assim como a distância entre os componentes.

O próximo passo da implementação foi adicionar aos botões, as imagens a serem mostradas caso algum deles seja clicado. Vale ressaltar que, por se tratar de um jogo lúdico, as imagens devem ser apropriadas ao público alvo, nesse caso, crianças. Ao instanciar um objeto da classe ImageIcon é necessário passar por parâmetro qual o endereço em que está localizada a imagem, para que assim, o aplicativo possa encontrá-la e manipulá-la durante a execução do mesmo.

As imagens e os botões foram adicionados em vetores para que a manipulação destes seja mais prática. Com o intuito de que cada vez que o jogo for iniciado as imagens sejam misturadas, foi utilizado o método shuffle() da classe Collections, que mistura o conteúdo do vetor das imagens garantindo que o jogo não se torne monótono trazendo as mesmas imagens sempre nas mesmas posições.

Para obter um maior controle sobre a aplicação também foi criado um menu, utilizando os componentes JMenu, JMenuItem e JMenuBar. No menu estão as opções para iniciar uma nova partida, obter informações sobre o jogo, bem como uma opção para parar a execução da aplicação.

O passo seguinte é incorporar funcionalidades aos componentes adicionados, através dos Listeners que são normalmente interfaces que um objeto tem que implementar para poder receber determinado evento, ou seja, a ação gerada ao clicar sobre a imagem. A classe Listener para eventos relacionados a botões é a ActionListener que possui o método actionPerformed(), que atribui aos botões funcionalidades quando clicados.

Os outros níveis do jogo foram construídos seguindo a mesma metodologia do primeiro nível, desde a criação do JFrame até a implementação dos eventos. Vale ressaltar que a complexidade do jogo poderá ser aumentada, fazendo com que o número de imagens seja maior, o tempo de exibição para memorização seja menor, o número de tentativas seja menor, entre outros.

3. RESULTADOS E DISCUSSÃO

Os jogos da memória, além de muito divertidos, são passatempos ideais para o estímulo do raciocínio e do poder de observação das pessoas, pois trabalham principalmente com o estímulo à percepção visual.

“Memoranimal” foi o nome dado ao resultado da implementação do Jogo da Memória utilizando a API Swing, devido ao tema escolhido: animais. São as imagens que animam o jogo que chamam mais atenção, pois se tratam de uma mistura de bichos que se transformam em uma nova criatura bastante diferente. Isto torna o aplicativo muito mais divertido.

A interface foi projetada para ser intuitiva a fim de facilitar a comunicação com o usuário e o protótipo do jogo possui três níveis de dificuldade: fácil, médio e difícil. As figuras Fig. 1, Fig. 2, Fig. 3 e Fig. 4 apresentam o Memoranimal.

Page 4: DESENVOLVIMENTO DE JOGOS DE MEMÓRIA UTILIZANDO JAVA SWING

Figura 1. Nível fácil do jogo da memória Memoranimal com as imagens não visíveis.

Figura 2. Nível fácil do jogo da memória Memoranimal após solucionado.

No nível fácil (Fig. 2), ao iniciar partida, o jogador terá 5 segundos para memorizar 10 pares de figuras e tentar atingir o objetivo do jogo com o mínimo de erros possível. O número de jogadas erradas será contabilizado durante a partida, sendo constantemente atualizado em um JTextField no painel superior da tela. Ao finalizar o jogo, quando todas as imagens estiverem expostas, o aplicativo mostrará uma mensagem com o total de erros cometidos na partida.

O nível médio (Fig. 3) segue o mesmo esquema do anterior, porém com o número de figuras maior, 15 pares ao todo, e o tempo de memorização ao iniciar o jogo também será maior, correspondente a 8 segundos. Neste caso, a cada acerto serão creditados 10 pontos ao placar do jogador, enquanto isso cada erro

Page 5: DESENVOLVIMENTO DE JOGOS DE MEMÓRIA UTILIZANDO JAVA SWING

implicará no decréscimo de 5 pontos do placar. A pontuação também é atualizada no painel superior da janela. No final de cada partida, quando todos os pares forem encontrados, o aplicativo mostrará uma mensagem com o total de pontos acumulados pelo jogador.

Figura 3. Nível médio do jogo da memória Memoranimal após solucionado.

O nível difícil (Fig. 4) possui regras diferentes em relação aos outros níveis. Serão 15 segundos para memorizar 8 pares de imagens e quando a partida começar um único erro reiniciará o jogo. Neste nível não existe pontuação, o grande desafio é memorizar e descobrir todas as figuras sem cometer nenhum único erro. Isto ajuda a estimular ainda mais a atenção do jogador.

Figura 4. Nível difícil do jogo da memória Memoranimal após solucionado.

Page 6: DESENVOLVIMENTO DE JOGOS DE MEMÓRIA UTILIZANDO JAVA SWING

4. CONCLUSÃO

A interface gráfica fornece interação do usuário com o sistema. Quase todo sistema moderno tem alguma forma de interface, seja gráfica, dirigida por linha de comando, ou baseada em comando de voz (SINTES, 2002). No caso de jogos de computador, a interface deve ser apresentada com a maior quantidade de recursos visuais possíveis.

O projeto de interface de um jogo pode ser extravagante, atraente ou dinâmico, mas o que é realmente relevante é o conceito, o conteúdo e a consistência presente no aplicativo. Um jogo eletrônico só pode obter sucesso se as estratégias empregadas em seu projeto produzirem soluções apropriadas às ações esperadas pelo usuário, que não espera apenas pelo sistema em funcionamento, espera que o jogo carregue também substância, beleza e cumplicidade (MACEDO FILHO, 2007). Um bom jogo deve conter estas características para que forneça ao usuário funcionalidade com um suporte estável e um ambiente agradável capaz de ser sempre revisitado e reaproveitado.

Sendo um dos pacotes gráficos do Java, o Swing possui as mesmas vantagens associadas à linguagem, como portabilidade, robustez, segurança, dinamismo e alto desempenho. Além disso, outra grande vantagem do Swing, inclusive em relação ao AWT é que a interface gráfica não fica sujeito a bugs do sistema operacional já que possui componentes independentes de plataforma. O Swing é composto por componentes de mais alto nível e permite que as aplicações possuam diferentes tipos de visuais. Logo, mais uma das vantagens da utilização do Swing no desenvolvimento deste tipo de jogo é que ele possui uma grande quantidade de controles extras, como áreas de texto que podem mostrar conteúdo HTML, por exemplo.

A maior vantagem, no entanto, seria a disponibilidade dos botões com suportes a imagens, sliders e selecionadores de cores, sendo possível também alterar o tipo de borda na maior parte dos componentes tendo-se controle até mesmo de como serão desenhados os mínimos detalhes da apresentação da interface.

Pode-se concluir que o Java Swing é uma boa ferramenta para o desenvolvimento de jogos virtuais simples, uma vez que os componentes disponíveis dão suporte à construção de interfaces de diversos tipos e para diversas funcionalidades e situações.

5. REFERÊNCIAS

OLIVEIRA, E. S. G. 2006. Criança e Computador: Interação que impulsiona o desenvolvimento e a aprendizagem. Universidade do Estado do Rio de Janeiro, RJ, Brasil.

PIAGET, J. 1976. Psicologia e Pedagogia. Trad. Por Dirceu Accioly Lindoso e Rosa Maria Ribeiro da Silva. Rio de Janeiro, Forense Universitária.

STAHL, M. M. 1990. Software Educacional: Características dos Tipos Básicos. Simpósio Brasileiro de Informática na Educação, 1. Ed., RJ.

ANTUNES, C. 200. Jogos para a estimulação das múltiplas inteligências. 8ª ed. Petrópolis, R.J: Vozes.

DEITEL, H. M.; DEITEL, P. J. 2005. Java. Como Programar. 6ª ed. São Paulo: Pearson Education do Brasil.

Sun Microsystems. [Online] Sumário do pacote AWT. Disponível em <http://java.sun.com/j2se/1.4.2/docs/api/java/awt/package-summary.html>. Acesso em 04 jul 2009.

Sun Microsystems. Descrição do pacote Swing. Disponível em: <http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/package-summary.html#package_description>. Acesso em 04 jul 2009.

Page 7: DESENVOLVIMENTO DE JOGOS DE MEMÓRIA UTILIZANDO JAVA SWING

SINTES, A. 2002. Aprenda Programação Orientada a Objetos em 21 dias. Tradução João Eduardo Nóbrega Tortello. São Paulo: Pearson Education do Brasil.

MACEDO FILHO, M. D. 2007. A Relevância de Interface s Gráficas Amigáveis para Jogos Eletrônicos Funcionais. Disponível em: <http://www.comunidadesvirtuais.pro.br/novastrilhas/textos/ manoelfilho.pdf >. Acesso em 15 jul. 2009.