• Nenhum resultado encontrado

Desenvolvimento de um Jogo de Xadrez em Java

N/A
N/A
Protected

Academic year: 2021

Share "Desenvolvimento de um Jogo de Xadrez em Java"

Copied!
5
0
0

Texto

(1)

Desenvolvimento de um Jogo de Xadrez em Java

Bruno Fontana Canella1,

Fabricio Giordani2

1Acadêmico do curso de Ciência da Computação Unidade Acadêmica de Ciências,

Engenharias e Tecnologias - Universidade do Extremo Sul Catarinense (UNESC) Criciúma, SC - Brasil

2

Professor(a) do curso de Ciência da Computação - Unidade Acadêmica de Ciências, Engenharias e Tecnologias - Universidade do Extremo Sul Catarinense (UNESC)

Criciúma, SC - Brasil

brunocanella@yahoo.com.br, fgiordani@gmail

Resumo. Desenvolvido durante as aulas do curso de ciências da computação  da   UNESC,   e   aprimorado   durante   o   decorrer   do   ano,   este   artigo   irá   demonstrar alguma das características presentes no desenvolvimento de um   jogo   de   Xadrez.   Para   sua   codificação,   foi   utilizado   principalmente   a  linguagem de programação Java, em conjunto da linguagem Lua, a qual foi  utilizada para realizar os cálculos de movimentação das peças no tabuleiro. Palavras­chave: Programação; Java; Lua; Jogo; Xadrez. 1. Proposta do Trabalho Durante a disciplina de Tópicos Especiais I, até então presente na 5ª fase da grade do  curso de  ciências da computação da UNESC, foi sugerido o desenvolvimento de um  software simples, o qual deveria aproveitar o conhecimento adquirido até então durante  o curso, principalmente os da disciplina em questão. Este trabalho deveria fazer uso  intensivo dos componentes de interface “Swing”, bem como outros objetos presentes no  pacote de desenvolvimento distribuído na JDK. Este software também deveria ser capaz  de persistir informações que o usuário informaria, além de manipulação de arrays e  objetos personalizados. Sendo assim, foi discutido com o professor Fabrício Giordani a possibilidade na  confecção de um jogo de Xadrez, feito inteiramente em Java, que implementasse todos  os   quesitos   pré­estipulados.   Uma   vez   confirmado,   o   projeto   foi   levado   adiante   e  apresentado com sucesso no decorrer das aulas. Contudo, como forma de alcançar um  objetivo mais audacioso, o projeto do Jogo de Xadrez foi expandido, recebendo mais  algumas características para sua apresentação no Workshop de trabalhos da SulComp,  evento realizado anualmente na UNESC e que atualmente se encontra em sua quarta  edição.   Os  tópicos   que  seguem   apresentarão   algumas   das   principais  características  presentes no projeto do jogo.

(2)

2. Características Principais do Projeto

Originalmente, o jogo de xadrez desenvolvido em aula possuía uma interface gráfica, a  qual demonstrava opções como “controles do jogo”, para inicio de uma nova partida,  carregar uma partida salva e salvar uma partida em andamento, além do controle de  movimentação das peças pelo tabuleiro com o auxilio de um mouse, onde ao clicar em  uma peça, esta era transferida para o cursor do mouse, e ao clicar  novamente  no  tabuleiro a peça era devolvida novamente para o mesmo, sendo que se houvesse uma  peça ocupando a posição em que a peça em movimento foi designada, a peça que estava  na posição ocupada era eliminada e substituída pela peça em movimento. É importante  ressaltar que nesta etapa do projeto, não havia nenhum controle de regras do jogo, sendo  que era possível matar suas próprias peças, ou então jogar diversas vezes com as peças  de uma mesma cor. Na versão final do projeto, existe todo um controle das regras do jogo, sendo  que cada peça possui sua limitação baseada no tipo de peça que ela é, Ex: Peão, Cavalo.  Também não é mais possível matar peças de seu próprio time, nem jogar diversas vezes  as peças de mesma cor. A movimentação agora é alternada entre as peças de cor branca  e preta. Foi implementado também uma lista, demonstrando o histórico de jogadas da  partida, o qual foi adicionada a classe de persistência do jogo. Como forma de desafio, a parte de controle de movimentação das peças no  tabuleiro foi implementada com o uso da linguagem de programação Lua, desenvolvida  pela PUC do Rio de Janeiro. Está linguagem é muito utilizada em jogos para a criação  de scripts, permitindo assim que possam ser feitas alterações nas regras do jogo, mesmo  enquanto   este   se   encontra   em   execução,   evitando   assim   diversas   compilações   do  código­fonte do jogo para alterar o mesmo, seguindo os princípios dos motores de jogos  (Game Engine). 3. Detalhes do projeto Uma das requisições na construção da primeira fase do projeto, era de que o software  em questão deveria ser fortemente orientado a objetos. A figura que segue, assim como  os demais sub­tópicos, irão explicar em detalhes como ficou a estruturação do código:

(3)

Figure 1.  Figura demonstrando a esquematização das classes do jogo. 3.1. Classe Xadrez Esta classe é responsável por fazer toda a inicialização do programa, criando os objetos  de persistência, interface, e controle do tabuleiro. É a classe principal do projeto. 3.2. Classe XadrezRegra Nesta classe estão contidas boa parte das verificações das regras do jogo, como a  determinação das condições de fim de jogo, vitória ou empate, turno dos jogadores,  entre outros. 3.3. Classe XadrezInterface A classe XadrezInterface é responsável por criar todos os componentes que servirão  para comunicação com o usuário do jogo. Nela são criadas as opções do jogo, são  montadas as partes visuais do tabuleiro, e também demonstra o histórico de jogadas em  uma lista. 3.4. Classe XadrezPersistencia Encarregada da persistência dos dados do jogo, ou seja, a gravação e recuperação de  dados. Em geral, as informações persistentes são as posições das peças e o histórico de  jogadas. 3.5. Classe XadrezTabuleiro Responsável por manter um registro das peças que estão em jogo, além do formato do  tabuleiro   em  si.   Ela   possui   diversos   objetos   do   tipo   XadrezPiso,   os   quais   ficam  armazenados em uma array, que por padrão possui tamanho 8x8, igual ao do jogo.

(4)

3.6. Classe XadrezPiso Possui herança no componente JPanel, onde além das propriedades comuns, recebe  também o código necessário para armazenar e representar graficamente uma peça do  jogo de xadrez. 3.7. Classe XadrezPeca É a representação de uma peça de xadrez do mundo real, no jogo. Ela possui um método  abstrato  de movimentação  e detecção  de movimentos  válidos, os  quais  são sobre­ escritos pelas classes que herdam desta peça. 3.8. Classes que herdam de XadrezPeca Estas seriam as classes PeaoPeca, CavaloPeca, BispoPeca, TorrePeca, RainhaPeca e  ReiPeca. Cada classe sobre­escreve os métodos de movimentação de XadrezPeca, bem  como possui sua própria constante, contendo o endereço de sua imagem de exibição  4. Linguagem Lua Como citado anteriormente no projeto, um pequeno trecho do código foi escrito em  Lua, mais precisamente a parte de verificação e movimentação em sí das peças do  tabuleiro. Para realizar  esta integração  entre as duas linguagens, foi utilizado  uma  biblioteca chamada LuaJava, a qual realize todas as chamadas das DLL’s da linguagem  Lua para o código em Java.

Cada classe que herda de XadrezPeca é obrigada a especificar a sua rotina de  movimentação. Nesta parte do programa, foi realizada a chamada de funções escritas  em   Lua,   que   estavam   em   arquivos   separados   do   projeto   principal,   para   avaliar   a  movimentação de cada peça. Esta chamada dinâmica de verificação permite a alteração  nas regras de movimentação das peças, sem a necessidade de recompilação do software,  ou até mesmo o seu fechamento. 

5. Conclusão

Com o fim deste trabalho, foi possivel contruir um pequeno e funcional jogo de xadrez,  utilizando   apenas   ensinamentos   adquiridos   no   curso   de   ciencias   da   comutação   da  UNESC até a 5ª fase. A adição de recursos extras, como a utilização de uma linguagem  de scripts, como a Lua, tiveram de ser aprendidos por conta do acadêmico, mas são de  facil acesso e aprendizagem.

Referencias

Davison,   Andrew.   (2005)   Killer   Game   Programming   in   Java,   Edited   by   Brett  McLaughlin, O’Reilly Media, United States of America.

(5)

Buckland, Mat. (2005) Programming Game AI by Example, Wordware Publishing Inc,  United States of America.

Martins, Guilherme e Eduardo Jason Santos, Luis e Ponte, Thiago. (2004) “LuaJava: A  Script Tool for Java”, http://www.keplerproject.org/luajava/, Junho.

Tecnologia   em   Computação   Gráfica   da   PUC­Rio.   (1997)   “A   Linguagem   de  Programação Lua”, http://www.lua.org/portugues.html. Fevereiro.

Referências

Documentos relacionados

RESUMO - O trabalho objetivou avaliar a qualidade das sementes de arroz utilizadas pelos agricultores em cinco municípios (Matupá, Novo Mundo, Nova Guarita, Alta Floresta e Terra

Tabela – 1 Frequência das alterações cromossômicas com imuno-sinal regular e irregular da fosforilação da serina 10 na histona H3 (H3S10f) em células mitóticas de Allium

A MODALIDADE LICITATÓRIA DE CONVITE UTILIZADA NAS ESCOLAS ESTADUAIS DO RIO GRANDE DO SUL THE BIDDING INVITATION MODALITY USED IN STATE SCHOOLS OF RIO GRANDE DO SUL Rozelaine Rubia

Todos os docentes que estiverem interessados em participar Diverso material de desgaste Sim  Não  Não inserir no dia cultural Intervenientes Alunos, Docentes,

Levando em consideração os resultados da análise quanto: a estimativa etária; a posição do indivíduo dentro da sepultura; a ausência de patologias ósseas e

Doença renal crônica: importância do diagnóstico precoce, encami- nhamento imediato e abordagem interdisciplinar estruturada para melhora do desfecho em pacientes ainda não

As informações trimestrais acima referidas incluem as Demonstrações do Valor Adicionado (DVA), individuais e consolidadas, referentes ao período de seis meses

Oportunidade de reconhecimento por parte dos colegas de trabalho Oportunidade de exercer liderança Reconhecimento especial por parte dos dirigentes Oportunidade de participar