12.07.2015 Views

protótipo do jogo da velha para dispositivos móveis - Unochapecó

protótipo do jogo da velha para dispositivos móveis - Unochapecó

protótipo do jogo da velha para dispositivos móveis - Unochapecó

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

LEANDRO GUINDANI GEHLENPROTÓTIPO DO JOGO DA VELHA PARADISPOSITIVOS MÓVEISMonografia apresenta<strong>da</strong> à UNOCHAPECÓ comoparte <strong>do</strong>s requisitos <strong>para</strong> obtenção <strong>do</strong> grau deBacharel em Ciência <strong>da</strong> Computação.Orienta<strong>do</strong>r (a): Tatiana Annoni PazetoChapecó - SC, Julho de 2006.


PROTÓTIPO DO JOGO DA VELHA PARA DISPOSITIVOSMÓVEISLEANDRO GUINDANI GEHLENEsta Monografia foi julga<strong>da</strong> <strong>para</strong> obtenção <strong>do</strong> título de Bacharel em Ciência <strong>da</strong> Computação,na área de redes de computa<strong>do</strong>res e aprova<strong>da</strong> pelo curso de Ciência <strong>da</strong> Computação.ORIENTADOR(A): Prof. Tatiana Annoni PazetoCOORDENADOR(A) DO CURSO: Prof. Mônica Tissiani De Toni PereiraBANCA EXAMINADORAPRESIDENTE:Prof. Tatiana Annoni PazetoProf. Ra<strong>da</strong>més PereiraProf. Sediane Carmen Lunardi


DEDICATÓRIADedico este trabalho aos meus pais, pessoas as quais fizeram to<strong>do</strong>s os esforços <strong>para</strong>tornar possível minha caminha<strong>da</strong> na busca pelo conhecimento, além de deixar claro quedesde a infância que esta busca deve ser constante e importante <strong>para</strong> a realização pessoal eprofissional.


AGRADECIMENTOSAgradeço primeiramente a Deus que me concedeu força e saúde <strong>para</strong> construção destetrabalho e a minha família que sempre me incentivaram e forneceram recursos financeirosdurante quase cinco anos.Também agradeço a minha orienta<strong>do</strong>ra Tatiana Annoni Pazeto pela presença constanteno desenvolvimento <strong>do</strong> presente trabalho além <strong>da</strong>s significativas contribuições que por ela foiconcedi<strong>da</strong>.Por fim gostaria de agradecer a to<strong>do</strong>s meus colegas <strong>da</strong> universi<strong>da</strong>de, em especial aDiogo, Daniel, Aline e Areandson, os quais aprendi e convivi durante to<strong>da</strong> a minha vi<strong>da</strong>acadêmica.


SUMÁRIOLISTA DE FIGURAS.......................................................................................viiiLISTA DE QUADROS........................................................................................xLISTA DE SIGLAS E ABREVIATURAS............................................................xiRESUMO.........................................................................................................xiiiABSTRACT.....................................................................................................xiv1 INTRODUÇÃO.........................................................................................151.1 ORGANIZAÇÃO DO TRABALHO..............................................................162 DISPOSITIVOS MÓVEIS..........................................................................172.1 INTRODUÇÃO AOS DISPOSITIVOS MÓVEIS...........................................172.2 COMUNICAÇÃO DOS DISPOSITIVOS MÓVEIS........................................192.2.1 Surgimento <strong>do</strong> Wireless......................................................................................192.2.2 Funcionamento <strong>do</strong> Wireless................................................................................202.3 FORMAS DE COMUNICAÇÃO DOS DISPOSITIVOS MÓVEIS..................222.3.1 Bluetooth...........................................................................................................222.3.1.1 Histórico.......................................................................................................222.3.1.2 Tecnologia Bluetooth.....................................................................................232.3.2 Wireless Application Protocol (WAP)...................................................................252.3.2.1 Histórico.......................................................................................................262.3.2.2 Tecnologia WAP...........................................................................................262.3.3 Infravermelho.....................................................................................................282.4 CONSIDERAÇÕES DO CAPÍTULO............................................................28


vi3 JOGOS ELETRÔNICOS..........................................................................303.1 EVOLUÇÃO DOS JOGOS DE GALERIAS (ÁRCADE GAMES).................303.2 EVOLUÇÃO DOS JOGOS PARA CONSOLES...........................................333.3 JOGOS PARA CELULARES......................................................................373.4 PARTES DOS JOGOS...............................................................................383.5 CARACTERÍSTICAS DOS JOGOS............................................................393.6 CONSIDERAÇÕES DO CAPÍTULO............................................................404 FERRAMENTAS UTILIZADAS NO DESENVOLVIMENTO DE JOGOSPARA DISPOSITIVOS MÓVEIS...............................................................................414.1 JAVA 2 MICRO EDITION - J2ME................................................................414.2 SYMBIAN OS.............................................................................................444.3 BREW.........................................................................................................444.4 COMPARAÇÕES ENTRE AS FERRAMENTAS.........................................454.5 ORIENTAÇÃO OBJETO.............................................................................464.5.1 CONCEITOS.....................................................................................................474.5.1.1 Objeto..........................................................................................................474.5.1.2 Méto<strong>do</strong>s.......................................................................................................484.5.1.3 Encapsulamento...........................................................................................484.5.1.4 Classe..........................................................................................................484.5.1.5 Herança........................................................................................................494.5.1.6 Polimorfismo.................................................................................................494.6 CONSIDERAÇÕES DO CAPÍTULO............................................................505 ANÁLISE DO PROTÓTIPO DO JOGO DA VELHA.................................51


vii5.1 INSTALAÇÃO E CONFIGURAÇÃO DO AMBIENTE DE PROGRAMAÇÃO555.1.1 REQUISITOS DO DISPOSITIVO CELULAR.......................................................605.2 CODIFICAÇÃO DO PROTÓTIPO...............................................................605.3 CONCLUSÃO DO CAPÍTULO....................................................................796 Conclusão...............................................................................................816.1 Trabalhos Futuros.....................................................................................827 REFERÊCIAS...........................................................................................84


LISTA DE FIGURASFigura 1 – Exemplos de Dispositivos Móveis...............................................................18Figura 2 – Componentes básicos de uma rede móvel..................................................21Figura 3– Tipos de redes forma<strong>da</strong>s entre <strong>dispositivos</strong> Bluetooth..................................24Figura 4 – Cama<strong>da</strong>s <strong>do</strong> modelo WAP..........................................................................27Figura 5 – Exemplo <strong>do</strong> console Atari 2600 e seus principais <strong>jogo</strong>s...............................34Figura 6 – Imagem <strong>do</strong> <strong>jogo</strong> Berserk.............................................................................35Figura 7 – Imagem <strong>do</strong> <strong>jogo</strong> Road Rash ......................................................................36Figura 8 – Imagem <strong>do</strong> <strong>jogo</strong> Donkey Kong Country.......................................................36Figura 9 – Tela Inicial <strong>do</strong> Jogo.....................................................................................51Figura 10 - Exemplo <strong>do</strong> funcionamento <strong>do</strong> <strong>jogo</strong>..........................................................52Figura 11 – Joga<strong>do</strong>r vence<strong>do</strong>r.....................................................................................52Figura 12 – Telas de configurações remotas...............................................................53Figura 13 – Diagrama de classes <strong>do</strong> projeto................................................................54Figura 14 – Seleção <strong>do</strong> tipo <strong>do</strong> projeto no NetBeans....................................................56Figura 15 – Definição <strong>do</strong> nome <strong>do</strong> projeto e local de armazenamento..........................56Figura 16 – Crian<strong>do</strong> arquivo JogoDaVelha.java...........................................................57Figura 17 – Etapa final <strong>para</strong> criação <strong>do</strong> arquivo JogoDaVelha.java..............................58Figura 18 – Crian<strong>do</strong> novo projeto <strong>para</strong> teste de aplicações wireless.............................59Figura 19 – Compilação e execução <strong>do</strong> projeto teste...................................................59Figura 20 – Menus existentes no protótipo ..................................................................62Figura 21 – Inician<strong>do</strong> <strong>jogo</strong>...........................................................................................72


ixFigura 22 - Posição sinaliza<strong>da</strong> no <strong>jogo</strong> ........................................................................73Figura 23 – Símbolo vermelho ganha o <strong>jogo</strong>................................................................77Figura 24 - Ocorrência de um empate no <strong>jogo</strong>............................................................78Figura 25 – Visualização <strong>do</strong> vence<strong>do</strong>r <strong>do</strong> <strong>jogo</strong>.............................................................79


Quadro 1 - CompQuadro 2 – MenuQuadro 4 – ContQuadro 5 – Méto


LISTA DE SIGLAS E ABREVIATURASAPIApplication Programming InterfaceBD_ADDR Bluetooth Device AddressBREWCDCCLDCCPUBinary Runtime Environment for WirelessConnected Device ConfigurationConnection Limited Device ConfigurationCentral Processing UnitFH-CDMA Frequency Hopping - Code Division Multiple AccessFPHLRIrDAJVMKVMMMIDPMSCPCFoun<strong>da</strong>tion ProfileHome Location RegisterInfrared Developers AssociationJava Virtual MachineKilobyte Virtual MachineMetrosMobile Information Device ProfileMobile Switching CenterPersonal ComputerPM ADDR Parked Member AddressPOOPPPPBSIGTDMVLRWAEWAPProgramação Orienta<strong>da</strong> a ObjetosPersonal ProfilePersonal Basis ProfileSpecial Interest GroupTime Division MultiplexVisitor Location RegisterWireless Application EnviromentWireless Application Protocol


xiiWDPWSPWTLSWTPWireless Datagram ProtocolWireless Session ProtocolWireless Transport Layer SecurityWireless Transaction Protocol


RESUMOA evolução <strong>do</strong>s <strong>dispositivos</strong> móveis permitiu o desenvolvimento de aplicações maisrobustas, como <strong>jogo</strong>s bem defini<strong>do</strong>s. Estes atualmente possibilitam que <strong>do</strong>is usuários quepossuem celulares distintos interajam no mesmo <strong>jogo</strong>, sen<strong>do</strong> este o objetivo <strong>do</strong> presentetrabalho. Contu<strong>do</strong>, o processo envolve muitas tecnologias e ferramentas, como asrelaciona<strong>da</strong>s à comunicação entre <strong>dispositivos</strong> móveis, mais especificamente <strong>para</strong> aparelhoscelulares. Neste senti<strong>do</strong>, o trabalho abor<strong>da</strong> bluetooth, infravermelho e Wireless ApplicationProtocol (WAP) com o intuito de verificar qual delas é mais adequa<strong>da</strong> ao desenvolvimentoproposto. No entanto, <strong>para</strong> a implementação <strong>do</strong> protótipo faz-se necessária à definição <strong>da</strong>tecnologia ideal, sen<strong>do</strong> abor<strong>da</strong><strong>do</strong> sobre Java 2 Micro Edition (J2ME), Symbian e Brew, asquais são considera<strong>da</strong>s adequa<strong>da</strong>s no que se refere ao desenvolvimento de aplicações <strong>para</strong><strong>dispositivos</strong> móveis. Além disso, <strong>para</strong> que o desenvolvimento <strong>da</strong> aplicação se tornassereali<strong>da</strong>de, fez-se necessário um estu<strong>do</strong> sobre <strong>jogo</strong>s e suas partes. Analisan<strong>do</strong> as restrições <strong>do</strong>aparelho e as exigências existentes na aplicação proposta, optou-se pelas tecnologia J2ME<strong>para</strong> desenvolvimento <strong>do</strong> protótipo e bluetooth <strong>para</strong> comunicação <strong>do</strong>s <strong>dispositivos</strong> celulares.Estas demonstraram ser apropria<strong>da</strong>s <strong>para</strong> o desenvolvimento <strong>do</strong> <strong>jogo</strong> <strong>da</strong> <strong>velha</strong>. Ao final sãodemonstra<strong>do</strong>s os procedimentos realiza<strong>do</strong>s <strong>para</strong> a codificação <strong>do</strong> protótipo, bem como testesem emula<strong>do</strong>r e no dispositivo móvel. Estes visam verificar o desempenho e se o mesmoconseguirá proporcionar momentos de diversão ao usuário. Além disso, objetiva verificar se acomunicação não comprometerá a performance <strong>do</strong> protótipo, chegan<strong>do</strong> ao ponto <strong>do</strong> usuáriodesistir <strong>da</strong> diversão.


ABSTRACTThe evolution of the mobile devices allowed the development of more robustapplications, as well defined games. These currently make possible that two users whom theypossess cellular distinct interact the same in game, being this the objective of the present work.However, the process involves many technologies and tools, as the related ones to thecommunication between mobile devices, more specifically for cellular devices. In this direction,the work approaches bluetooth, infra-red ray and Wireless Application Protocol (WAP) withintention to verify which of them more is adjusted to the considered development. However, forthe implementation of the archetype one becomes necessary to the definition of the idealtechnology, being boarded on Java 2 Micro Edition (J2ME), Symbian and Brew, which areconsidered adjusted as for the development of applications for mobile devices. Moreover, sothat the development of the application if became reality, a study became necessary on gamesand its parts. Analyzing the existing restrictions of the device and requirements in theapplication proposal, one opted to the programming language J2ME and the technologybluetooth for communication of the cellular devices. These had demonstrated to be appropriatefor the development of the game of the old one. To the end the procedures carried through forthe codification of the archetype are demonstrated, as well as tests in emulator and the mobiledevice. These aim at to verify the performance and if the same it will obtain to providemoments of diversion to the user. Moreover, objective to verify if the communication will notcompromise the performance of the archetype, arriving at the point of the user to give up thediversion.


1 INTRODUÇÃOCom o crescimento <strong>da</strong> telefonia móvel e o aumento <strong>da</strong> capaci<strong>da</strong>de de processamento<strong>do</strong>s aparelhos celulares, aplicativos mais complexos podem ser desenvolvi<strong>do</strong>s, culminan<strong>do</strong>com a construção de <strong>jogo</strong>s bem defini<strong>do</strong>s e de boa quali<strong>da</strong>de. Isso proporciona diversão eentretenimento ao usuário.Com este intuito, uma varie<strong>da</strong>de de <strong>jogo</strong>s, <strong>do</strong>s mais diversos estilos, é desenvolvi<strong>da</strong>.Porém, <strong>jogo</strong>s que conseguem proporcionar competição entre usuários têm desperta<strong>do</strong>interesse ain<strong>da</strong> maior pelos mesmos.Para permitir a competição, fazem-se necessários bons aparelhos, que possuam grandecapaci<strong>da</strong>de de processamento e de tecnologias que possam prover transmissão de <strong>da</strong><strong>do</strong>s.Atualmente, os celulares produzi<strong>do</strong>s já estão oferecen<strong>do</strong> as tecnologias de transmissãode <strong>da</strong><strong>do</strong>s embuti<strong>da</strong>s. Estas, por suas vez, permitem o desenvolvimento de aplicativos quepossibilitam a transmissão de <strong>da</strong><strong>do</strong>s sem fazer uso <strong>da</strong> telefonia convencional.Contu<strong>do</strong>, <strong>para</strong> alcançar o objetivo de desenvolver um protótipo de um <strong>jogo</strong> multijoga<strong>do</strong>res<strong>para</strong> celulares, foi necessário um estu<strong>do</strong> sobre essas formas de transmissão de<strong>da</strong><strong>do</strong>s. Dentre as várias maneiras de prover esta comunicação, o presente trabalho dissertarásobre as tecnologias Bluetooth, Wireless Application Protocol (WAP) e infravermelho, as quaisapresentam maiores vantagens <strong>para</strong> o desenvolvimento <strong>da</strong> aplicação em questão.Além <strong>da</strong>s formas de comunicação, será feito um estu<strong>do</strong> sobre algumas ferramentasexistentes <strong>para</strong> desenvolvimento de aplicativos <strong>para</strong> <strong>dispositivos</strong> móveis. O intuito é analisarqual é a mais apropria<strong>da</strong> <strong>para</strong> a implementação <strong>do</strong> <strong>jogo</strong> <strong>da</strong> <strong>velha</strong>.Neste senti<strong>do</strong>, será desenvolvi<strong>do</strong> o protótipo <strong>do</strong> <strong>jogo</strong> supracita<strong>do</strong>, por ser bastanteconheci<strong>do</strong> e ter regras de fácil compreensão. Além disso, o mesmo permite a competiçãoentre <strong>do</strong>is usuários em tempo real, utilizan<strong>do</strong> celulares distintos, tornan<strong>do</strong> o aplicativo maisatraente.Ao término <strong>da</strong> implementação, serão realiza<strong>do</strong>s os devi<strong>do</strong>s testes afim de vali<strong>da</strong>r afuncionali<strong>da</strong>de <strong>do</strong> mesmo e encontrar possíveis falhas existentes no <strong>jogo</strong>.


161.1 ORGANIZAÇÃO DO TRABALHOO presente trabalho está dividi<strong>do</strong> em sete capítulos, sen<strong>do</strong> que o primeiro refere-se àintrodução <strong>do</strong> conteú<strong>do</strong> e apresentação de como o mesmo encontra-se organiza<strong>do</strong>.O segun<strong>do</strong> capítulo refere-se aos <strong>dispositivos</strong> móveis, abor<strong>da</strong>n<strong>do</strong> suas características edefinições. Também neste capítulo é disserta<strong>do</strong> sobre tecnologias de comunicação <strong>do</strong>s<strong>dispositivos</strong> móveis como bluetooth, WAP e infravermelho.O capítulo seguinte versa sobre os <strong>jogo</strong>s eletrônicos, sen<strong>do</strong> demonstra<strong>da</strong> sua evolução.Após é descrito sobre <strong>jogo</strong>s <strong>para</strong> celulares, foco <strong>do</strong> presente trabalho. Também é menciona<strong>do</strong>sobre suas partes e características, as quais permitirão compreender e definir as etapas <strong>para</strong>construção <strong>do</strong> protótipo proposto.O próximo capítulo relata sobre as principais ferramentas <strong>para</strong> desenvolvimento deaplicativos <strong>para</strong> <strong>dispositivos</strong> móveis, apresentan<strong>do</strong> vantagens e desvantagens, com o intuitode escolher a mais adequa<strong>da</strong> <strong>para</strong> o desenvolvimento <strong>do</strong> protótipo. Também é descrito sobreorientação objeto. Isto se faz necessário, pois a tecnologia escolhi<strong>da</strong> <strong>para</strong> desenvolvimento <strong>do</strong>protótipo utiliza tal <strong>para</strong>digma.O quinto capítulo relata sobre a fase de análise, codificação e implementação <strong>do</strong>protótipo. Nele é descrito como instalar e configurar as ferramentas de desenvolvimento, bemcomo demonstra quais as características que devem estar presentes no dispositivo <strong>para</strong> que oprotótipo funcione corretamente.No penúltimo capítulo, são apresenta<strong>da</strong>s as conclusões e sugestões de trabalhosfuturos com o intuito de que o presente trabalho seja otimiza<strong>do</strong> e inspire novas pesquisas nodesenvolvimento de aplicações móveis.Por fim, no último são apresenta<strong>da</strong>s as bibliografias utiliza<strong>da</strong>s, as quais viabilizaram aconstrução <strong>do</strong> presente trabalho.


2 DISPOSITIVOS MÓVEISPara que seja compreendi<strong>do</strong> sobre o equipamento que será usa<strong>do</strong> no desenvolvimento<strong>do</strong> protótipo, o capítulo a seguir tem por objetivo trazer conhecimento sobre o conceito de<strong>dispositivos</strong> móveis e sua forma de comunicação o que será de suma importância <strong>para</strong> aconfecção <strong>do</strong> trabalho proposto.2.1 INTRODUÇÃO AOS DISPOSITIVOS MÓVEISConforme Figueire<strong>do</strong> e Nakamura (2003), um dispositivo <strong>para</strong> ser considera<strong>do</strong> móveldeve ser capaz de realizar processamento, trocar informações em uma rede, que o usuáriopossa transportá-lo com facili<strong>da</strong>de, e que o mesmo não necessite de cabos <strong>para</strong> se conectar auma rede ou a fonte de energia elétrica.Para que isso aconteça, o mesmo autor define algumas características que devem estarconti<strong>da</strong>s nesses <strong>dispositivos</strong> como: ter seu tamanho reduzi<strong>do</strong>, que seu manuseio seja feitogeralmente na palma <strong>da</strong>s mãos ou no colo, possuir uma bateria e acessar <strong>da</strong><strong>do</strong>s por umaconexão feita a uma rede sem fio, isso evitaria o uso de cabos tanto <strong>para</strong> conexão a redequanto aos cabos alimenta<strong>do</strong>res de energia. Caso isso não ocorra, o dispositivo colocaria umfim no que diz respeito à mobili<strong>da</strong>de.Segun<strong>do</strong> Lau<strong>do</strong>n e Lau<strong>do</strong>n (1999), devi<strong>do</strong> à diversi<strong>da</strong>de de maneiras <strong>para</strong> se provercomunicação, e <strong>da</strong>s grandes inovações trazi<strong>da</strong>s pela tecnologia wireless, a indústria <strong>do</strong> setorteve um grande crescimento e uma imensi<strong>da</strong>de de <strong>dispositivos</strong> móveis está sen<strong>do</strong> utiliza<strong>da</strong><strong>para</strong> que isso aconteça. Esses vão desde telefones celulares até Personal Digital Assistant(PDA) – um dispositivo composto por um computa<strong>do</strong>r manual e uma caneta. Com o passar <strong>do</strong>tempo, ganharam poder de processamento e deixaram de ser apenas telefones, ou agen<strong>da</strong>seletrônicas e viraram computa<strong>do</strong>res que podem ser transporta<strong>do</strong>s <strong>para</strong> qualquer lugar. Foramdesenvolvi<strong>do</strong>s <strong>para</strong> pessoas que necessitam acessar informações com rapidez, segurança,facili<strong>da</strong>de, e claro, a mobili<strong>da</strong>de. Esta permite que a comunicação entre as pessoas seja feitade forma fácil, sem que essas fiquem presas a computa<strong>do</strong>res de mesa ou a telefones fixos.Na Figura 1 pode-se visualizar alguns exemplos de <strong>dispositivos</strong> móveis.


18Fonte: Pekus (2002)Figura 1 – Exemplos de Dispositivos MóveisA frase dita por David Levin, presidente-executivo <strong>da</strong> Symbian, em entrevista a InfoExame de setembro de 2003 explica bem a evolução <strong>do</strong>s <strong>dispositivos</strong> móveis, apesar de estarfoca<strong>da</strong> no que diz respeito a telefones. “Nos últimos cem anos construímos telefones <strong>para</strong>ouvi<strong>do</strong>s. Agora podemos construir telefones que se conectem com os olhos” (PALUDO, 2003,p. 20).Segun<strong>do</strong> Rezende e Abreu (2001), os <strong>dispositivos</strong> móveis estão proporcionan<strong>do</strong> ca<strong>da</strong>vez mais recursos que se torna quase que indispensáveis nos dias atuais, principalmente <strong>para</strong>organizações que possuem múltiplas localizações geográficas.Segun<strong>do</strong> Moon (2000), telefones celulares, que na déca<strong>da</strong> de 80 eram artigos de luxo,tornam-se a ca<strong>da</strong> dia mais acessíveis. Contu<strong>do</strong>, deixaram de ser apenas <strong>dispositivos</strong> <strong>para</strong>transmissão <strong>da</strong> voz, transforman<strong>do</strong>-se em aparelhos capazes de enviar <strong>da</strong><strong>do</strong>s comversatili<strong>da</strong>de e veloci<strong>da</strong>de com a vantagem de serem menores e portáteis que computa<strong>do</strong>resusa<strong>do</strong>s <strong>para</strong> transmissão desses <strong>da</strong><strong>do</strong>s.Desta forma, o merca<strong>do</strong> cresce a ca<strong>da</strong> dia, e segun<strong>do</strong> Moon (2000), esse crescimentonas ven<strong>da</strong>s proporciona, conseqüentemente, um aumento <strong>da</strong> tecnologia embuti<strong>da</strong> nessesaparelhos. Segun<strong>do</strong> o autor, há um crescimento tão grande nessa área que aparelhos


19celulares poderão ser utiliza<strong>do</strong>s <strong>para</strong> aquisição de refrigerantes, <strong>do</strong>ces, cigarros. “Bastará aoconsumi<strong>do</strong>r empunhar seu telefone diante <strong>da</strong> máquina, ligar <strong>para</strong> o número nela indica<strong>do</strong> erealizar uma transação sem fio <strong>para</strong> liberar uma latinha”.Contu<strong>do</strong>, <strong>para</strong> viabilizar estas aplicações, um <strong>do</strong>s fatores que podem garantir amobili<strong>da</strong>de <strong>do</strong>s <strong>dispositivos</strong> móveis é a forma de comunicação, assunto que será abor<strong>da</strong><strong>do</strong> aseguir.2.2 COMUNICAÇÃO DOS DISPOSITIVOS MÓVEISToma<strong>do</strong> conhecimento de que um dispositivo móvel deve possuir a capaci<strong>da</strong>de deconectar-se a uma rede e conseguir trafegar <strong>da</strong><strong>do</strong>s sem a utilização de cabos, tornou-senecessário fazer esta conexão através de uma rede wireless (comunicação sem fio). A seguirserá disserta<strong>do</strong> sobre como ocorreu o surgimento desta tecnologia, bem como seufuncionamento.2.2.1 Surgimento <strong>do</strong> WirelessSegun<strong>do</strong> Zeindin (2003), o surgimento <strong>do</strong> wireless fez-se necessário <strong>para</strong> suprir umanecessi<strong>da</strong>de militar, mais especificamente na Segun<strong>da</strong> Guerra Mundial, na déca<strong>da</strong> de 40.Nesta batalha, era necessário transmitir informações sem que o inimigo conseguisseinterceptá-las ou interferisse na comunicação. Diante deste fato foi cria<strong>do</strong> um méto<strong>do</strong> demodulação de <strong>da</strong><strong>do</strong>s denomina<strong>do</strong> spread spectrum que atendia essas necessi<strong>da</strong>des, uma vezque o mesmo apresentava alta imuni<strong>da</strong>de aos ruí<strong>do</strong>s, provocava baixas interferências nosdemais sistemas e o sinal era difícil de ser monitora<strong>do</strong> ou intercepta<strong>do</strong>.No final <strong>do</strong> ano de 1970, surgiram os sistemas de comunicação móvel, considera<strong>da</strong>como a Primeira Geração (G1), sen<strong>do</strong> esta bastante restrita. A transmissão <strong>do</strong>s <strong>da</strong><strong>do</strong>s se<strong>da</strong>va de forma analógica, sen<strong>do</strong> permiti<strong>do</strong> apenas o tráfego de voz.No começo <strong>da</strong> déca<strong>da</strong> de 90, iniciou-se a Segun<strong>da</strong> Geração (G2) de comunicaçãomóvel, conten<strong>do</strong> algumas inovações significativas. O sinal que antes era transmiti<strong>do</strong> de formaanalógica agora passou a ser codifica<strong>do</strong> digitalmente, e os celulares que eram usa<strong>do</strong>s


20restritamente <strong>para</strong> transmissão de voz, já começavam a se utilizar de serviço de mensagenscomo Short Message Service (SMS).Na Terceira Geração (G3), grandes avanços foram alcança<strong>do</strong>s, sen<strong>do</strong> que a rede jáprove serviço de áudio e vídeo de alta quali<strong>da</strong>de. Além disso, a rede tem a capaci<strong>da</strong>de deidentificar qual o sistema de wireless está mais próximo ao dispositivo móvel, transferin<strong>do</strong> osinal <strong>para</strong> o mesmo. Isso permite que o usuário tenha total mobili<strong>da</strong>de sem perder o sinal. Ouso <strong>do</strong> sistema wireless tomou proporções enormes e é utiliza<strong>da</strong> nos mais diversos sistemas,varian<strong>do</strong> de pequenas aplicações como telefones celulares até sistemas que exigem autograu de confiabili<strong>da</strong>de como satélites e sistemas de localização global.Atualmente vive-se a quarta geração e segun<strong>do</strong> a empresa japonesa NTT-DoCoMo,líder de merca<strong>do</strong> na área de comunicação sem fio, esta geração permite transferências dearquivos na faixa de 20 a 40 Mbps. Outros benefícios ofereci<strong>do</strong>s é multimídia de alta definição,portabili<strong>da</strong>de entre os <strong>dispositivos</strong> móveis e acesso universal. Esta geração promete que umdispositivo móvel consiga ser opera<strong>do</strong> de qualquer local existente na superfície terrestre(BORGES et. al, 2005).2.2.2 Funcionamento <strong>do</strong> WirelessSegun<strong>do</strong> Soares, Lemos e Colcher (1995, p.102) os pacotes a serem trafega<strong>do</strong>s emuma rede wireless, utilizam-se <strong>do</strong> “ar” como meio de transmissão. Esta é feita através de“canais de freqüência de rádio (freqüências na faixa de KHz até GHz)”. Contu<strong>do</strong>, <strong>para</strong>compreender como a transmissão entre celulares ocorre, faz-se necessário alguns requisitosbásicos como: “telefones/Estações Móveis (MS – Móbile Stations), Estações Base (BSs -Base Stations), Centro de Comutação Móvel (MSC – Mobile Switching Center), Registro deLocalização de Origem ( HLR - Home Location Register) e o Registro de Localização deVisitante (VLR - Visitor Location Register)” (DIAS e FONTES, 2003, p. 17).Segun<strong>do</strong> Dias e Fontes (2003, p. 17), através de sinais de rádios envia<strong>do</strong>s a umaestação base, os telefones celulares provem comunicação entre si. Esta estação cobre umadetermina<strong>da</strong> área denomina<strong>da</strong> célula. Portanto a estação atenderá a to<strong>do</strong>s os sinais envia<strong>do</strong>spor aparelhos que se encontrem dentro <strong>da</strong> área de cobertura. Também é função <strong>da</strong> estaçãobase converter os sinais envia<strong>do</strong>s e encaminhar <strong>para</strong> um MSC, essa comunicação pode serfeita com ou sem a necessi<strong>da</strong>de de fios. O MSC fica destina<strong>do</strong> a coordenar e rotear as


21chama<strong>da</strong>s feitas <strong>para</strong> telefones fixos ou móveis conecta<strong>do</strong>s a rede de telefonia pública. OHRL é onde ficam armazena<strong>do</strong>s os <strong>da</strong><strong>do</strong>s referentes as estações móveis pertencentes aquelaárea, com por exemplo: “Mobile Identification Number (MIN), Eletronic Serial Number (ESN),perfil <strong>do</strong> usuário com <strong>da</strong><strong>do</strong>s sobre faturamento (billing)”, call forward-to number, esta<strong>do</strong> (ativoou inativo) e ponteiro <strong>para</strong> o último VLR onde a MS se registrou”. O VLR é um repositório de<strong>da</strong><strong>do</strong>s local e temporário. Nele ficam os <strong>da</strong><strong>do</strong>s referentes a estação móvel que está fora desua área de serviço. O VLR é usa<strong>do</strong> em conjunto com o HLR, permitin<strong>do</strong> que o usuário tenhacobertura mesmo estan<strong>do</strong> fora <strong>da</strong> área de serviço onde está ca<strong>da</strong>stra<strong>do</strong>.Na Figura 2 pode-sevisualizar os componentes básicos de uma rede móvel.Fonte: (DIAS e FONTES, 2003, p.18)Figura 2 – Componentes básicos de uma rede móvelAtravés <strong>da</strong> Figura 2 pode-se verificar que quan<strong>do</strong> um celular deseja fazer uma conexãocom outro, faz-se necessário uma comunicação com a BS que cobre a área em que o celularde origem se encontra. Esta por sua vez fará com que a solicitação <strong>do</strong> celular chegue ao MSCque identificará qual a BS está cobrin<strong>do</strong> a área que o celular de destino se encontra. Feito issoa informação será direciona<strong>da</strong> a esta estação que entregará o sinal ao aparelho destino.Entretanto, além <strong>da</strong> comunicação de voz os <strong>dispositivos</strong> móveis podem transmitir <strong>da</strong><strong>do</strong>s.Para que isso seja possível várias formas de comunicação foram desenvolvi<strong>da</strong>s. A seguir serádisserta<strong>do</strong> sobre algumas delas.


222.3 FORMAS DE COMUNICAÇÃO DOS DISPOSITIVOS MÓVEISAtualmente, existem várias formas de prover comunicação entre <strong>dispositivos</strong> móveis eca<strong>da</strong> vez mais essas tecnologias vem sen<strong>do</strong> utiliza<strong>da</strong>s. Nos próximos tópicos serãoapresenta<strong>da</strong>s algumas, bem como seu funcionamento e arquitetura. A partir desteconhecimento será possível diferenciar as mesmas e fazer a escolha <strong>da</strong> tecnologia a serutiliza<strong>da</strong> no desenvolvimento <strong>do</strong> protótipo.2.3.1 BluetoothEssa tecnologia surgiu recentemente no merca<strong>do</strong>. Com ela é possível que aparelhosceluares, notebooks, impressoras entre outros consigam se comunicar em pequenasdistâncias sem a utilização de cabos. Com Blutetooth diferentes aparelhos podem se conectara uma rede. Além disso, várias redes não sincroniza<strong>da</strong>s podem existir na mesma área,forman<strong>do</strong> uma rede denomina<strong>da</strong> de scatternet. Os tópicos a seguir trarão maioresesclarecimentos sobre essa tecnologia (JUNIOR, 2001).2.3.1.1 HistóricoCom o intuito de estabelecer um novo padrão de comunicação e expandir o uso <strong>da</strong>tecnologia Bluetooth, cinco empresas (Nokia, Intel, IBM, Toshiba, Ericsson) se uniramforman<strong>do</strong> o consórcio Bluetooth Special Interest Group (SIG). “A escolha <strong>do</strong> nome é umahomenagem ao unifica<strong>do</strong>r <strong>da</strong> Dinamarca, o rei Harald Blatand, mais conheci<strong>do</strong> como HaraldBluetooth” (JUNIOR, 2001).O grupo cresceu e se consoli<strong>do</strong>u sen<strong>do</strong> composto atualmente por 1400 empresasespalha<strong>da</strong>s pelo mun<strong>do</strong>. Estas abrangem diversas áreas de atuação como telecomunicações,Personal Computer (PC’s), eletro<strong>do</strong>mésticos, entre outras. Contu<strong>do</strong>, to<strong>da</strong>s tem um objetivo emcomum: o desenvolvimento de produtos capazes de prover comunicação utilizan<strong>do</strong> o padrãoBluetooth (JUNIOR, 2001).


23A seguir será demonstra<strong>do</strong> como é composta essa tecnologia bem como seufuncionamento.2.3.1.2 Tecnologia BluetoothPriess, 2003 explica o que é a tecnologia Bluetooth com a seguinte frase:Bluetooth é um padrão de interface de rádio de curto alcance, cria<strong>do</strong> <strong>para</strong> permitir acomunicação entre <strong>dispositivos</strong> eletrônicos sem a utilização de cabos de conexão.Posteriormente, passou a ser emprega<strong>do</strong>, também, como ponto de acesso a serviços de<strong>da</strong><strong>do</strong>s e voz e na formação de redes sem fio ad hoc (PRIESS, 2003, p. 11).Esta tecnologia está dividi<strong>da</strong> em duas partes: núcleo e perfis. No núcleo encontram-seas características <strong>do</strong> rádio, e a pilha de protocolos que será utiliza<strong>da</strong> <strong>para</strong> prover acomunicação entre os <strong>dispositivos</strong>. Os perfis, por sua vez, especificam quais os protocolos <strong>da</strong>pilha serão utiliza<strong>do</strong>s na comunicação em ca<strong>da</strong> aplicação (PRIESS, 2003).Para que a comunicação entre os <strong>dispositivos</strong> que se utilizam <strong>do</strong> Bluetooth aconteça, énecessário o estabelecimento de um canal de comunicação Frequency Hopping - CodeDivision Multiple Access (FH-CDMA). Esse canal permite que os sinais sejam propaga<strong>do</strong>ssobre uma faixa de freqüência grande. Contu<strong>do</strong>, em um mesmo instante, é utiliza<strong>da</strong> apenasuma pequena largura de ban<strong>da</strong>. Isto é feito na tentativa de evitar possíveis interferências nacomunicação. Sen<strong>do</strong> assim, a tecnologia Bluetooth possui 79 hops (porta<strong>do</strong>ras) que sãoespaça<strong>da</strong>s em um Megahertz (MHz). Assim é possível obter uma largura de ban<strong>da</strong> razoável etambém uma melhor imuni<strong>da</strong>de à interferência (JUNIOR, 2001).Desta forma, <strong>dispositivos</strong> que utilizam Bluetooth <strong>para</strong> obter uma rede criam um sistemade rádio ad hoc. Nesse não é possível distinguir bases e terminais e também não existe “umainfraestrutura de cabos <strong>para</strong> suportar a conectivi<strong>da</strong>de entre uni<strong>da</strong>des portáveis. Desta forma,não há um controla<strong>do</strong>r central <strong>para</strong> coordenar as interconexões, bem como intervenção deopera<strong>do</strong>res” (JUNIOR, 2001). Diferente <strong>do</strong>s cenários ad hoc comuns, em ambientes Bluetoothé facilmente encontra<strong>do</strong> um grande número de conexões ad hoc existentes na mesma área,sem que haja qualquer tipo de coordenação mútua entre os <strong>dispositivos</strong>.Os <strong>dispositivos</strong> que se utilizam <strong>do</strong> Bluetooth <strong>para</strong> prover comunicação formam uma rededenomina<strong>da</strong> piconet. Nesta rede podem ser conecta<strong>do</strong>s até oito <strong>dispositivos</strong>, sen<strong>do</strong> que umdestes deve ser o mestre (master) e os outros serão os escravos (slave). Quan<strong>do</strong> várias


24piconets encontram-se na mesma área, formam um sistema ad hoc disperso que édenomina<strong>do</strong> scatternet (JUNIOR, 2001). Na Figura 3 pode-se visualizar como seria ofuncionamento de uma rede piconet e uma rede scatternet.Fonte: (JUNIOR, 2001)Figura 3– Tipos de redes forma<strong>da</strong>s entre <strong>dispositivos</strong> Bluetooth.Para que os <strong>dispositivos</strong> consigam localizar-se entre si, a rede executa um processo deinvestigação (inquiry). Neste, os <strong>dispositivos</strong> trocam informações de seus relógios e seusendereços que são únicos e contém 48 bits o Bluetooth Device Address (BD_ADDR). Odispositivo que iniciou o processo de investigação ficará defini<strong>do</strong> como mestre (master) <strong>da</strong>rede piconet, enquanto os demais serão os escravos (slaves). Após esta etapa, os<strong>dispositivos</strong> já terão o conhecimento de seus pares. Com isso passam <strong>para</strong> a fase denegociação (paging), que será inicia<strong>da</strong> pelo mestre <strong>da</strong> rede (PRIESS, 2003).“No procedimento de negociação <strong>da</strong> conexão, o futuro mestre e ca<strong>da</strong> escravo negociamo canal a ser usa<strong>do</strong> na comunicação. Finalmente, os <strong>dispositivos</strong> mu<strong>da</strong>m <strong>para</strong> o canalnegocia<strong>do</strong> e passam <strong>para</strong> o esta<strong>do</strong> conecta<strong>do</strong>. Uma vez conecta<strong>do</strong> à piconet, o escravorecebe e passa a usar um endereço de 3 bits chama<strong>do</strong> Active Member Address (AM ADDR)”(PRIESS, 2003, p. 16).Como os <strong>dispositivos</strong> móveis não possuem grande capaci<strong>da</strong>de de armazenamento deenergia, há preocupação e cui<strong>da</strong><strong>do</strong>s <strong>para</strong> a economia <strong>da</strong> mesma no sistema Bluetooth. Assim,quanto mais tempo o aparelho ficar conecta<strong>do</strong>, maior será o consumo de energia.


25Consideran<strong>do</strong> este fato, existem quatro mo<strong>do</strong>s de operações que um dispositivo pode seencontrar quan<strong>do</strong> está conecta<strong>do</strong> a rede: ativo, sniff, hold e park. Quan<strong>do</strong> o dispositivo estiverno mo<strong>do</strong> ativo, a comunicação pode acontecer a qualquer instante. Os demais mo<strong>do</strong>s sãocaracteriza<strong>do</strong>s pelo baixo consumo de energia. “No mo<strong>do</strong> sniff, o escravo <strong>do</strong>rme durante umintervalo pré-defini<strong>do</strong> e acor<strong>da</strong>, periodicamente, <strong>para</strong> escutar as transmissões <strong>do</strong> mestre”(PRIESS, 2003, p. 17). No mo<strong>do</strong> hold, o dispositivo escravo negocia com o mestre <strong>para</strong> entrarem mo<strong>do</strong> de baixo consumo. O intervalo de tempo que ele permanece em mo<strong>do</strong> de baixoconsumo é fixo. Quan<strong>do</strong> termina<strong>do</strong> esse tempo, o dispositivo volta a ativi<strong>da</strong>de normal. Noúltimo caso, o park, o dispositivo “escravo libera o seu endereço <strong>do</strong> dispositivo ativo”, porémcontinua conecta<strong>do</strong> a rede por um endereço de oito bits conheci<strong>do</strong> como Parked MemberAddress (PM ADDR). Quan<strong>do</strong> isto ocorre, o dispositivo escravo não participa mais <strong>da</strong>snegociações <strong>da</strong> rede. Isso permite que o limite de sete <strong>dispositivos</strong> escravos participantes deuma rede seja ultrapassa<strong>do</strong> (PRIESS, 2003).Quan<strong>do</strong> um dispositivo salta entre uma rede e outra, ele pode mu<strong>da</strong>r de esta<strong>do</strong>, ou seja,o dispositivo pode se encontrar em mo<strong>do</strong> escravo em uma rede e assumir o papel de mestreem outra. O problema que pode ocorrer durante os saltos é quan<strong>do</strong> um dispositivo seencontra em mo<strong>do</strong> mestre em uma rede e fizer o salto <strong>para</strong> outra. Nestes casos a rede naqual o dispositivo era mestre ficará suspensa até o seu retorno. Também há possibili<strong>da</strong>de deum dispositivo estar conecta<strong>do</strong> a duas redes em mo<strong>do</strong> escravo. Nesta situação uma redepode conectar-se a outra através deste dispositivo que fica conheci<strong>do</strong> como bridge.Como foi disserta<strong>do</strong> acima, a tecnologia Bluetooth possui inúmeras vantagens nodesenvolvimento de aplicativos. Estas poderão ser utiliza<strong>da</strong>s <strong>para</strong> desenvolvimento <strong>do</strong>protótipo. Porém, a seguir descreve-se sobre outras tecnologias com o intuito de vali<strong>da</strong>r e termaior segurança na escolha.2.3.2 Wireless Application Protocol (WAP)A ca<strong>da</strong> dia que passa, várias ativi<strong>da</strong>des que antes necessitavam de deslocamento <strong>do</strong>ser humano <strong>para</strong> serem executa<strong>da</strong>s estão sen<strong>do</strong> deixa<strong>da</strong>s de la<strong>do</strong> graças a Internet.Inúmeras operações são realiza<strong>da</strong>s em frente ao computa<strong>do</strong>r, trazen<strong>do</strong> conforto eeconomizan<strong>do</strong> tempo. Esta evolução não poderia deixar de existir nos aparelhos celulares.Através <strong>do</strong> protocolo Wireless Application Protocol (WAP) <strong>dispositivos</strong> móveis podem acessarpáginas web facilitan<strong>do</strong> ain<strong>da</strong> mais a vi<strong>da</strong> <strong>do</strong> usuário.


262.3.2.1 HistóricoEm 1997, na tentativa de fazer com que os aparelhos celulares conseguissem acesso aInternet, as empresas Ericsson, Motorola e Nokia se reuniram <strong>para</strong> produzir essa solução.Dois anos depois estas empresas conseguiram com que os primeiros aparelhos celularesWAP chegassem ao merca<strong>do</strong>. Apesar <strong>do</strong> desenvolvimento <strong>da</strong> tecnologia, esta não écontrola<strong>da</strong> por nenhuma destas empresas. No entanto, sua chega<strong>da</strong> coincidiu com omomento em que o interesse pelo mun<strong>do</strong> sem fio era grande. Isso mostrou que a tecnologiaWAP poderia <strong>da</strong>r bons lucros, fazen<strong>do</strong> com que investimentos e pesquisas fossem realiza<strong>do</strong>snesta área.A partir <strong>da</strong> sua evolução, bem como a compactação <strong>do</strong> tamanho <strong>do</strong>s <strong>dispositivos</strong>móveis, pode-se fornecer muitas funcionali<strong>da</strong>des em um aparelho que cabe no bolso(AREHART et al, 2001).2.3.2.2 Tecnologia WAPDevi<strong>do</strong> as características existentes nos <strong>dispositivos</strong> móveis tais como dimensões <strong>da</strong>tela, rede com pouca largura de ban<strong>da</strong>, capaci<strong>da</strong>de de processamento reduzi<strong>da</strong>, númeropequeno de cores, entre outros, fez-se necessário o desenvolvimento de um mini-brouwserpróprio <strong>para</strong> a tecnologia WAP. Com isto tornou-se possível fazer consultas em contasbancárias, enviar e-mail, realizar transações comerciais, além de outras aplicações como se ousuário estivesse a frente de um micro computa<strong>do</strong>r (DIAS, 2000).Para isso, o padrão de cama<strong>da</strong>s WAP apresenta similari<strong>da</strong>des a arquitetura ISO/OSI,onde ca<strong>da</strong> cama<strong>da</strong> forneça serviços a cama<strong>da</strong> superior. A semelhança também ocorre com omodelo TCP/IP, haja vista a necessi<strong>da</strong>de <strong>do</strong>s <strong>dispositivos</strong> móveis conectarem-se a Internet(REZENDE, 2003).Neste contexto, a Figura 4 mostra as cama<strong>da</strong>s existentes na arquitetura WAP.


27Fonte (REZENDE, 2003, p. 3)Figura 4 – Cama<strong>da</strong>s <strong>do</strong> modelo WAP.Conforme a Figura 4, a primeira cama<strong>da</strong>, denomina<strong>da</strong> Wireless Datagram Protocol(WDP), é responsável por proteger “as cama<strong>da</strong>s superiores <strong>do</strong>s serviços de porta<strong>do</strong>raofereci<strong>do</strong>s pela opera<strong>do</strong>ra” (AREHART et al, 2001). A seguinte, Wireless Transport LayerSecurity (WTLS) é uma cama<strong>da</strong> opcional, sen<strong>do</strong> que quan<strong>do</strong> se encontra presente tem afunção de prover conexões seguras e privaci<strong>da</strong>de aos aplicativos. A próxima cama<strong>da</strong>,chama<strong>da</strong> Wireless Transaction Protocol (WTP) é onde se encontra a função que fornecevários méto<strong>do</strong>s, os quais permitem realizar transações com certo grau de confiabili<strong>da</strong>de. Porsua vez, a cama<strong>da</strong> Wireless Session Protocol (WSP), é utiliza<strong>da</strong> <strong>para</strong> aplicações quenecessitam <strong>do</strong> méto<strong>do</strong> cliente/servi<strong>do</strong>r. Essa cama<strong>da</strong> fica responsável por fazer uma trocaorganiza<strong>da</strong> entre o conteú<strong>do</strong> dessas aplicações. Por fim, a última cama<strong>da</strong> <strong>da</strong> pilha deprotocolo é a Wireless Application Environment (WAE) que se destina a fornecer um ambiente<strong>para</strong> execução e desenvolvimento de aplicativos ou serviços portáveis.Além <strong>da</strong> Figura 4 demonstrar as cama<strong>da</strong>s existentes na tecnologia WAP, é possívelobservar que esta possui “compatibili<strong>da</strong>de com os principais padrões celulares, inclusiveaqueles orienta<strong>do</strong>s por pacotes GPRS, CDMA 1xRTT”, entre outros (SILVA e MOREIRA,2005, p. 55).Como foi possível observar, a tecnologia WAP está direciona<strong>da</strong> <strong>para</strong> o desenvolvimentode aplicativos WEB. Contu<strong>do</strong>, não é descarta<strong>da</strong> a hipótese de utilizá-la <strong>para</strong> desenvolvimento<strong>do</strong> protótipo. A seguir será disserta<strong>do</strong> sobre infravermelho.


282.3.3 InfravermelhoAs luzes infravermelhas são muito utiliza<strong>da</strong>s <strong>para</strong> comunicação de curtas distâncias. Istoocorre pelo fato de que as mesmas não conseguem atravessar objetos sóli<strong>do</strong>s como porexemplo uma parede. No primeiro momento, isso sem dúvi<strong>da</strong> seria uma desvantagem.Porém, essa desvantagem acaba proporcionan<strong>do</strong> segurança, pois a característica de nãoatravessar paredes possibilita que uma rede monta<strong>da</strong> com essa tecnologia tenha maiorsegurança se com<strong>para</strong><strong>do</strong> a uma rede de rádio. Afinal computa<strong>do</strong>res que estejam fora <strong>da</strong> salaem que se encontra a rede infravermelho não conseguirão acesso a ela (TANEMBAUM,1997).Segun<strong>do</strong> Torres (2001, p. 268), <strong>para</strong> transmitir as luzes infravermelhas existem <strong>do</strong>isméto<strong>do</strong>s: transmissão difusa e transmissão direta. “Na transmissão difusa, os sinaisinfravermelhos são envia<strong>do</strong>s <strong>para</strong> to<strong>da</strong>s as direções”, enquanto “na transmissão direta os<strong>dispositivos</strong> transmissores e receptores possuem um ângulo de abertura pequeno. Com isso,precisam estar alinha<strong>do</strong>s <strong>para</strong> que a transmissão possa ser efetua<strong>da</strong>”.De acor<strong>do</strong> com Torres (2001, p. 270), os <strong>do</strong>is padrões mais utiliza<strong>do</strong>s <strong>para</strong> “transmissãode <strong>da</strong><strong>do</strong>s através de luz infravermelha” são: IEEE 802.11 e o Infrared Developers Association(IrDA). O primeiro especifica que a taxa de transmissão típica seja de um Megabit porSegun<strong>do</strong> (Mbps) e a distância máxima de alcance seja de 30 metros (m). O IrDA é umbarrramento que geralmente é encontra<strong>do</strong> em notebooks, tecla<strong>do</strong>s e mouses sem fio entreoutros. “Este barramento tem transferência máxima de quatro Mbps e a distância de alcance éde um metro, sen<strong>do</strong> que seus receptores e transmissores“ possuem uma abertura com ângulode 30 graus.2.4 CONSIDERAÇÕES DO CAPÍTULOCom o estu<strong>do</strong> <strong>da</strong> tecnologia infravermelho foi concluí<strong>do</strong> o capítulo sobre <strong>dispositivos</strong>móveis. Com isto, nota-se que as evoluções ocorreram tanto com os aparelhos quanto astecnologias utiliza<strong>da</strong>s nestes <strong>dispositivos</strong>.No que diz respeito ao wireless, a evolução ocorreu de forma rápi<strong>da</strong> e este crescimentonão tende a <strong>para</strong>r. Segun<strong>do</strong> as previsões, a tecnologia wireless promete uma ver<strong>da</strong>deirarevolução <strong>para</strong> os usuários de <strong>dispositivos</strong> móveis.


29Por fim, as forma de comunicação <strong>do</strong>s <strong>dispositivos</strong> foram de suma importância <strong>para</strong>definição de qual será utiliza<strong>da</strong> <strong>para</strong> o desenvolvimento <strong>do</strong> protótipo. Após o estu<strong>do</strong> feito atecnologia bluetooth se destaca por conseguir prover comunicação sem necessi<strong>da</strong>de de que oaparelho esteja dentro <strong>da</strong> área de abrangência <strong>da</strong> estação base, diferentemente <strong>da</strong> WAP.Contu<strong>do</strong> não é descarta<strong>da</strong> a possibili<strong>da</strong>de de utilização <strong>da</strong> mesma, pois esta possui umamaior facili<strong>da</strong>de quanto a implementação. Apesar <strong>da</strong> tecnologia infravermelho possuir um altograu de segurança, sua implementação é complexa, tornan<strong>do</strong> assim inviável a sua utilização.No capítulo a seguir será disserta<strong>do</strong> sobre <strong>jogo</strong>s eletrônicos, analisan<strong>do</strong> suascaracterísticas, bem como as etapas <strong>para</strong> a confecção de um <strong>jogo</strong>. O estu<strong>do</strong> <strong>da</strong>rá subsídios<strong>para</strong> construção <strong>do</strong> protótipo proposto.


3 JOGOS ELETRÔNICOSPara entender como os <strong>jogo</strong>s eletrônicos atualmente conseguem prender a atenção <strong>do</strong>usuário, bem como influenciaram no desenvolvimento de tecnologias, é necessário conhecera sua evolução histórica, a qual será apresenta<strong>da</strong> a seguir. Inicialmente será mostra<strong>do</strong> os<strong>jogo</strong>s opera<strong>do</strong>s por fichas, conheci<strong>do</strong>s como árcade games (<strong>jogo</strong>s de galerias).Posteriormente serão expostos os <strong>jogo</strong>s <strong>para</strong> consoles 1 . Também será disserta<strong>do</strong> sobre aspartes que compõem um <strong>jogo</strong> e sobre <strong>jogo</strong>s <strong>para</strong> celulares que é o foco <strong>do</strong> presente trabalho.Contu<strong>do</strong>, antes de começar a dissertar sobre <strong>jogo</strong>s eletrônicos é interessante conceituarum <strong>jogo</strong> virtual. Este, de acor<strong>do</strong> com Lins (2003), consiste em um sistema que tem regrasdefini<strong>da</strong>s, as quais são necessárias <strong>para</strong> que o usuário interaja e consiga atingir os objetivosestipula<strong>do</strong>s. Este pode experimentar as mais varia<strong>da</strong>s situações, as quais são determina<strong>da</strong>spelo estilo e enre<strong>do</strong> <strong>do</strong> <strong>jogo</strong>. Sen<strong>do</strong> assim, to<strong>do</strong>s os <strong>jogo</strong>s aqui apresenta<strong>do</strong>s sãoconsidera<strong>do</strong>s <strong>jogo</strong>s virtuais.3.1 EVOLUÇÃO DOS JOGOS DE GALERIAS (ÁRCADE GAMES)Em 1971 surge o primeiro vídeo game, o Computer Space, construí<strong>do</strong> <strong>para</strong> serexplora<strong>do</strong> comercialmente. O mesmo foi projeta<strong>do</strong> por Nolan Bushnell <strong>da</strong> Nutting Associatesl.Com a experiência adquiri<strong>da</strong> com o Computer Space, Nolan Bushnell, em 1972, cria aempresa Atari que desenvolveu o primeiro vídeo game que obteve sucesso comercial, o Pong.Em 1974 foi lança<strong>do</strong> o Tank. Este <strong>jogo</strong> foi desenvolvi<strong>do</strong> pela Atari em conjunto com aKee Games.No ano seguinte foi lança<strong>do</strong> o Gunfight. O fato marcante deste <strong>jogo</strong> é que foi o primeiroa utilizar um microprocessa<strong>do</strong>r. Nesse mesmo ano o quadragésimo funcionário contrato pelaAtari, com a aju<strong>da</strong> de Steve Wozniak, desenvolve o primeiro protótipo <strong>para</strong>microcomputa<strong>do</strong>res.1 Jogos que necessitam que o usuário adquira o aparelho que inclui um encaixe <strong>para</strong> conectar auni<strong>da</strong>de armazena<strong>do</strong>ra <strong>do</strong> programa/<strong>jogo</strong>


31Em 1978 a Atari apresenta um de seus últimos projetos preto e branco, o Fire Truck.Sua grande novi<strong>da</strong>de é o fato de poder ser joga<strong>do</strong> por duas pessoas. Nesse mesmo ano,outros <strong>do</strong>is <strong>jogo</strong>s importantes podem ser cita<strong>do</strong>s: Space Invaders e o Football. O SpaceInvaders foi desenvolvi<strong>do</strong> pela Taito/Bally/Midway, sen<strong>do</strong> o primeiro vídeo-game a serencontra<strong>do</strong> fora <strong>da</strong>s galerias de <strong>jogo</strong>s. Já o outro, cria<strong>do</strong> por Dave Subben, foi o primeiro <strong>jogo</strong>esportivo a ser comercializa<strong>do</strong>.No ano de 1979 a Atari, lança o Lunar Lander. Este surgiu <strong>para</strong> auxiliar o projeto Apollo.O <strong>jogo</strong> tinha por objetivo simular uma aterrisagem na lua. Nesse mesmo ano a Cinematronicslança o primeiro <strong>jogo</strong> de luta entre <strong>do</strong>is joga<strong>do</strong>res, o Worrior. O mesmo apresentou umagrande evolução gráfica, sen<strong>do</strong> utiliza<strong>da</strong> a tecnologia de gráficos vetoriais <strong>para</strong> deixar o <strong>jogo</strong>mais empolgante. No entanto, isto o deixava menos confiável.Em 1980, a Atari lança o primeiro <strong>jogo</strong> tridimensional, o Battlezone. Esta revolução foisignificativa, provocan<strong>do</strong> interesse <strong>da</strong>s forças arma<strong>da</strong>s <strong>do</strong>s Esta<strong>do</strong>s Uni<strong>do</strong>s. As mesmassolicitaram mu<strong>da</strong>nças e incrementos no <strong>jogo</strong> <strong>para</strong> treinamento de pilotos de tanques deguerra. Outros <strong>jogo</strong>s importantes a serem cita<strong>do</strong>s nesse ano foram: Berzerk, <strong>da</strong> UniversalResearch Laboratories/Stern Inc. Este consistia em uma máquina que falava. O <strong>jogo</strong> foidesenvolvi<strong>do</strong> sobre a tecnologia de digitalização de som. Porém o vocabulário <strong>da</strong> máquinarestringia-se a 30 palavras. Pac-man, desenvolvi<strong>do</strong> pela Bally/Midway, foi um <strong>do</strong>s <strong>jogo</strong>s demaiores sucessos, lança<strong>do</strong>s tanto no Japão quanto Esta<strong>do</strong>s Uni<strong>do</strong>s. Foi basea<strong>do</strong> em umconto japonês.Em 1981, foi lança<strong>do</strong> Gorf, <strong>da</strong> Bally/Midway, um <strong>do</strong>s primeiros <strong>jogo</strong>s a utilizar níveis dedificul<strong>da</strong>de. DonKey Kong desenvolvi<strong>do</strong> pela Ninten<strong>do</strong>, também foi um grande sucesso. Omesmo apresentava uma história sobre um macaco gigante e um segun<strong>do</strong> personagemdenomina<strong>do</strong> Jumpman. Outro <strong>jogo</strong> que merece destaque é o Centipede, pelo fato de ter si<strong>do</strong> oprimeiro <strong>jogo</strong> desenvolvi<strong>do</strong> por uma mulher. Talvez isso ocasionou uma ascensão no públicofeminino. Neste mesmo ano, a Atari lança o Tempest. O <strong>jogo</strong> utilizou um monitor vetorialcolori<strong>do</strong>, sen<strong>do</strong> o primeiro a utilizar tal tecnologia.No ano seguinte a Williams Electronics lança o Joust. O grande atrativo <strong>do</strong> <strong>jogo</strong> era oestilo de múltiplos joga<strong>do</strong>res 2 . Outro sucesso nesse mesmo ano foi Star Wars, desenvolvi<strong>do</strong>2 Vários joga<strong>do</strong>res podem interagir no mesmo <strong>jogo</strong> ao mesmo tempo.


32pela Bally Midway. O <strong>jogo</strong> operava com gráficos tridimensionais. Originalmente, <strong>para</strong> poderjogá-lo, era necessário um joystick 3 .Em 1983 <strong>do</strong>is <strong>jogo</strong>s, produzi<strong>do</strong>s pela Starcom/Cinematronics, chamaram muito aatenção: o Dragon’s Lair e o Blaster. O primeiro surpreendeu pela quali<strong>da</strong>de <strong>do</strong>s gráficos,conquistan<strong>do</strong> um público ca<strong>da</strong> vez maior. O outro possuía gráficos que eram gera<strong>do</strong>s atravésde escalamento e o controle <strong>do</strong> <strong>jogo</strong> era <strong>da</strong><strong>do</strong> através de um joystrick , que proporcionava 49movimentos.O <strong>jogo</strong> denomina<strong>do</strong> I Robot foi lança<strong>do</strong> no ano de 1984, sen<strong>do</strong> desenvolvi<strong>do</strong> pela Atari.O mesmo não teve grande sucesso. Porém, foi o primeiro a utilizar polígonos tridimensionaisem seus gráficos.Em 1986, Space Harrier, desenvolvi<strong>do</strong> pela Atari, demonstrou duas grandes inovações:a de gráficos basea<strong>do</strong> no méto<strong>do</strong> sprites-3D, e a utilização de som estéreo.Time Traveler, desenvolvi<strong>do</strong> pela Sega no ano de 1990, foi projeta<strong>do</strong> usan<strong>do</strong> a técnicade holograma 4 . Apesar de os personagens parecerem estar projeta<strong>do</strong>s holograficamentesobre o <strong>jogo</strong>, o que acontecia, na ver<strong>da</strong>de, é que a imagem 2-D era refleti<strong>da</strong> através de umasuperfície de vidro e isso produzia a ilusão de profundi<strong>da</strong>de. No ano seguinte, a Sega lançaVirtua Racing, projeta<strong>do</strong> <strong>para</strong> ser joga<strong>do</strong> com múltiplos joga<strong>do</strong>res e com gráficos poligonais. Omesmo introduziu a era <strong>do</strong>s <strong>jogo</strong>s de corri<strong>da</strong>s. Em 1994, esta mesma empresa lança oDaytona-USA. Este aperfeiçoou a técnica de múltiplos joga<strong>do</strong>res, tornan<strong>do</strong> possível que oitojoga<strong>do</strong>res pudessem interagir (BATTAIOLA, 2000).Em 1996 a Namco lança o Alpine Racer, <strong>jogo</strong> de gráficos poligonais que utilizava umprocessa<strong>do</strong>r de 32 bits <strong>para</strong> gerá-los. A tela de 50’’ foi o grande atrativo. No ano seguinte, aSega lança o Super GT, <strong>para</strong> produção <strong>do</strong>s gráficos que exigiam uma capaci<strong>da</strong>de grande <strong>do</strong>3Dispositivo de indicação muito popular, usa<strong>do</strong> principalmente nos <strong>jogo</strong>s de computa<strong>do</strong>r. Emgeral, os joysticks têm uma base plástica quadra<strong>da</strong> ou retangular à qual fica presa uma haste vertical(WEB MEGA HOST, 199?).4Técnica avança<strong>da</strong> de fotografia, que consiste em criar imagens que através <strong>da</strong> ilusão de ópticaparecem ser tridimensionais (Wikipedia, 2005).


33hardware. O <strong>jogo</strong> foi desenvolvi<strong>do</strong> em uma arquitetura de 64 bits, que utilizou versões <strong>do</strong>microprocessa<strong>do</strong>r Powerpc (BATTAIOLA, 2000).Contu<strong>do</strong>, como menciona<strong>do</strong> na introdução <strong>do</strong> capítulo, este não é a única forma de<strong>jogo</strong>s existente. Desta forma, a seguir apresenta-se como se deu a evolução <strong>do</strong>s <strong>jogo</strong>s <strong>para</strong>consoles.3.2 EVOLUÇÃO DOS JOGOS PARA CONSOLESNo ano de 1962, surge o Spacewar, desenvolvi<strong>do</strong> por estu<strong>da</strong>ntes <strong>do</strong> MassachusettsInstitute of Technology (MIT). O <strong>jogo</strong> de batalha espacial foi inspira<strong>do</strong> nos livros <strong>do</strong> autor E. E.Doc Smith, e ocupava apenas 2Kb de memória. Inicialmente a intenção <strong>do</strong>s estu<strong>da</strong>ntes eraapenas transpor a ficção descrita nos livros <strong>para</strong> o computa<strong>do</strong>r. Afinal ganhar dinheiro com<strong>jogo</strong>s, não fazia muito senti<strong>do</strong>, pois os computa<strong>do</strong>res custavam em torno de 120.000 dólares,e não seria viável tamanho investimento <strong>para</strong> uma simples diversão.Em 1971 a Magnavox, começa a desenvolver o primeiro vídeo-game projeta<strong>do</strong> <strong>para</strong> serconecta<strong>do</strong> a televisores: o Odissey.No ano de 1976 a Connecticut Leather Company (Coleco), lança o Telstar Pong. Estevídeo-game usava tecnologia similar às máquinas encontra<strong>da</strong>s nas galerias (árcade games).No mesmo ano o primeiro vídeo-game programável é lança<strong>do</strong> pela Fairchild Camera &Instrument, o Fairchild Channel F. Nele era possível congelar o <strong>jogo</strong> <strong>para</strong> alterar o tempo eveloci<strong>da</strong>de.Em 1977, a Atari, lança o VCS, que mais tarde ficou conheci<strong>do</strong> como Atari 2600. Este foio primeiro vídeo-game programável, além de possuir <strong>jogo</strong>s de cartuchos <strong>da</strong> Atari. Dentre os<strong>jogo</strong>s conti<strong>do</strong>s nos cartuchos estão: Defender, Bowling, VideoChess, Othelo, Combat entreoutros. Na Figura 3, uma demonstração <strong>do</strong> console Atari 2600 e seus principais <strong>jogo</strong>s.


34Fonte: (UOL, 2004)Figura 5 – Exemplo <strong>do</strong> console Atari 2600 e seus principais <strong>jogo</strong>sNo ano de 1980, a Mattel lança o seu console, o Intellivision. A própria empresaproduzia os <strong>jogo</strong>s <strong>para</strong> seu console, sen<strong>do</strong> o primeiro o Astromash.No mesmo ano a SNK lança o <strong>jogo</strong> Sasuke vs Commander, um <strong>jogo</strong> de tiro, onde ojoga<strong>do</strong>r coman<strong>da</strong> um samurai que tem como objetivo proteger seu shogum 5 de ninjas. O <strong>jogo</strong>possui gráficos bem detalha<strong>do</strong>s e obteve destaque.Em 1981 a Ninten<strong>do</strong> lança um de seus maiores sucessos, o <strong>jogo</strong> Donkey Kong. O seuobjetivo era que Jumpman, um carpinteiro controla<strong>do</strong> pelo joga<strong>do</strong>r, salvasse sua namora<strong>da</strong> <strong>do</strong><strong>do</strong>mínio de um gorila. Nos Esta<strong>do</strong>s Uni<strong>do</strong>s o personagem principal recebeu o nome de Mário.A mu<strong>da</strong>nça foi devi<strong>do</strong> aos funcionários <strong>da</strong> Ninten<strong>do</strong> acharem o personagem principalsemelhante ao <strong>do</strong>no <strong>do</strong> galpão onde funcionava a empresa, que se chamava Mário Segali.No mesmo ano ocorre a primeira fatali<strong>da</strong>de <strong>da</strong> história relaciona<strong>da</strong> a vídeos-game. Umhomem, jogan<strong>do</strong> Berserk, tem um ataque cardíaco e morre. Na Figura 4 uma imagem deste<strong>jogo</strong>.5 Governa<strong>do</strong>res e líderes militares <strong>do</strong> Japão na i<strong>da</strong>de média (As Dobras <strong>do</strong> Hakama, 199?).


35Fonte: (UOL, 2004)Figura 6 – Imagem <strong>do</strong> <strong>jogo</strong> Berserk.No ano de 1982, a General Consumer Electronics lança o console Vectrex. O mesmotrazia em memória o <strong>jogo</strong> Minestorm. Os <strong>jogo</strong>s <strong>do</strong> Vectrex eram os únicos a trabalhar,exclusivamente, com gráficos vetoriais.Em 1985, a Ninten<strong>do</strong> lança o árcade NES. Nele era joga<strong>do</strong> o lendário <strong>jogo</strong> Super MarioBros que se tornou sucesso nos Esta<strong>do</strong>s Uni<strong>do</strong>s.No ano seguinte a Sega lança o console Máster System e entra no merca<strong>do</strong> <strong>do</strong>s games.Apesar <strong>do</strong>s <strong>jogo</strong>s <strong>do</strong> console não terem feito sucesso nos Esta<strong>do</strong>s Uni<strong>do</strong>s, a Tectoy lança oconsole no Brasil, que sem a concorrência <strong>da</strong> Ninten<strong>do</strong> se torna um sucesso.No ano de 1988, a Ninten<strong>do</strong> lança nos Esta<strong>do</strong>s Uni<strong>do</strong>s o <strong>jogo</strong> Super Mário 2 que eradiferente <strong>do</strong> mesmo <strong>jogo</strong> lança<strong>do</strong> no Japão. Contu<strong>do</strong>, em função <strong>do</strong> público americano terconsidera<strong>do</strong> o <strong>jogo</strong> muito difícil, a Ninten<strong>do</strong> efetuou modificações no mesmo.Em 1990, a empresa lança o <strong>jogo</strong> Super Mário 3, que foi considera<strong>do</strong> um <strong>do</strong>s <strong>jogo</strong>s maisvendi<strong>do</strong>s de to<strong>do</strong>s os tempos. No mesmo ano também é lança<strong>do</strong> o <strong>jogo</strong> Strider, que foiconsidera<strong>do</strong> o melhor <strong>jogo</strong> <strong>da</strong> déca<strong>da</strong> de 90. Este foi desenvolvi<strong>do</strong> pela Sega e o console queo ro<strong>da</strong>va era o Mega Drive.No ano de 1991, a Ninten<strong>do</strong> lança um novo console: o Super Nés. Seu destaque nos<strong>jogo</strong>s era o Super Mário. Entretanto a Sega lança o <strong>jogo</strong> Sonic. O personagem deste <strong>jogo</strong>acabou torna<strong>do</strong>-se mascote desta empresa. Muitas capas de revistas questionam qual seria omelhor <strong>jogo</strong>: Mario ou Sonic.Em 1993, a empresa 3DO lança o primeiro console 32 bits. O Jogo Road Rash, foi um<strong>do</strong>s maiores sucessos feitos <strong>para</strong> o console. O mesmo consistia em corri<strong>da</strong>s de motos que


36acontecia em ci<strong>da</strong>des. Porém, além de um simples <strong>jogo</strong> de corri<strong>da</strong>, o personagem que ojoga<strong>do</strong>r controlava podia agredir os outros corre<strong>do</strong>res. Na Figura 5 há uma imagem <strong>do</strong>referi<strong>do</strong> <strong>jogo</strong>.Fonte: (UOL, 2004)Figura 7 – Imagem <strong>do</strong> <strong>jogo</strong> Road Rash .No mesmo ano, alguns <strong>jogo</strong>s como Mortal Kombat e Night Trap, surgem no merca<strong>do</strong>.Porém são considera<strong>do</strong>s extremamente violentos. Isto tanto é ver<strong>da</strong>de, que <strong>do</strong>is sena<strong>do</strong>res<strong>do</strong>s Esta<strong>do</strong>s Uni<strong>do</strong>s, Joseph Lieberman e Herbert Kohl, investigam como os <strong>jogo</strong>s violentospodem influenciar na vi<strong>da</strong> <strong>do</strong>s joga<strong>do</strong>res. Esta investigação foi feita <strong>para</strong> tentar banir estamo<strong>da</strong>li<strong>da</strong>de <strong>do</strong> merca<strong>do</strong>.Em 1994, é lança<strong>do</strong> pela Ninten<strong>do</strong> o <strong>jogo</strong> mais vendi<strong>do</strong> <strong>do</strong> ano, o Donkey Kong Country.Apesar <strong>do</strong> console ter uma Central Processing Unit (CPU) lenta, o <strong>jogo</strong> tinha gráficosrevolucionários, o que atraiu o público, fazen<strong>do</strong> com que as ven<strong>da</strong>s <strong>do</strong> console aumentassem.A Figura 8 apresenta uma imagem <strong>do</strong> <strong>jogo</strong>.Fonte: (UOL, 2004)Figura 8 – Imagem <strong>do</strong> <strong>jogo</strong> Donkey Kong Country.


37Em 1997 uma revolução acontece no mun<strong>do</strong> <strong>do</strong>s consoles. O projeto Net Yarozepossibilita que o joga<strong>do</strong>r consiga criar o seu próprio <strong>jogo</strong>. Para isso o mesmo deveria saberprogramar na linguagem C usa<strong>da</strong> em Personal Computer (PC’s), além de usar os Kits queacompanhavam a console.No ano de 1998, é lança<strong>do</strong> pela Ninten<strong>do</strong> o <strong>jogo</strong> The Legend of Zel<strong>da</strong> <strong>para</strong> o consoleNinten<strong>do</strong> 64, um <strong>do</strong>s <strong>jogo</strong>s mais vendi<strong>do</strong>s de to<strong>do</strong>s os tempos. Com a ven<strong>da</strong> de <strong>do</strong>is milhõese meio de cópias nesse ano, a Ninten<strong>do</strong> arreca<strong>do</strong>u US$ 150 milhões (UOL, 2004b).A partir desta <strong>da</strong>ta os <strong>jogo</strong>s tiveram uma ver<strong>da</strong>deira revolução, tanto que atualmentemais atrativos são desenvolvi<strong>do</strong>s não somente <strong>para</strong> Árcade Games ou Consoles, mastambém <strong>para</strong> celulares. Sen<strong>do</strong> assim, a seguir apresenta-se como é possível odesenvolvimento desses <strong>jogo</strong>s <strong>para</strong> celulares, bem como suas vantagens.3.3 JOGOS PARA CELULARESSegun<strong>do</strong> Nogueira, Filho e Almei<strong>da</strong> (2005), no fim <strong>da</strong> déca<strong>da</strong> de 90 os <strong>dispositivos</strong>móveis começaram a ter uma evolução que permitiu que aplicações mais robustas pudessemser desenvolvi<strong>da</strong>s nesses aparelhos. Com isso, também foi possível desenvolver <strong>jogo</strong>s que noinício apresentavam limitações quanto aos gráficos e uso de cores. Porém, junto com aevolução <strong>do</strong>s <strong>dispositivos</strong> móveis também evoluíram os <strong>jogo</strong>s que, atualmente, possuemgráficos 3D entre outros recursos.No desenvolvimento desses <strong>jogo</strong>s, um <strong>do</strong>s fatores leva<strong>do</strong> em consideração é que ca<strong>da</strong>dispositivo possui características muito particulares, o que dificultava a portabili<strong>da</strong>de <strong>do</strong>s<strong>jogo</strong>s. Uma <strong>da</strong>s maneiras de solucionar tal problema foi inserir uma cama<strong>da</strong> de software quearmazenaria um conjunto de funções de alto nível que fizesse a comunicação com a partefísica <strong>do</strong> celular (NOGUEIRA, FILHO e ALMEIDA, 2005).Segun<strong>do</strong> Battaiola et. al (2001), os <strong>jogo</strong>s são os aplicativos que apresentam maiorpotencial merca<strong>do</strong>lógico. Com isso é previsto que nos próximos anos aja um crescimentosurpreendente nos grupos interessa<strong>do</strong>s nesta área. Além disso, menciona-se que uma <strong>da</strong>stecnologias mais utiliza<strong>da</strong>s no desenvolvimento de <strong>jogo</strong>s é Java 2 Micro Edition (J2ME).Porém <strong>para</strong> conseguir atender a deman<strong>da</strong> com quali<strong>da</strong>de faz-se necessário superar aslimitações impostas por esta linguagem, “assim como construir ferramentas de


38desenvolvimento como motores (framework) e editores de cenários” (BATTAIOLA et. al, 2001,p. 38).Além disso, na fase de desenvolvimento de <strong>jogo</strong>s em <strong>dispositivos</strong> móveis, algumascaracterísticas devem ser leva<strong>da</strong>s em consideração no seu planejamento. Afinal com<strong>para</strong>n<strong>do</strong>a programação destes <strong>dispositivos</strong> a Personal Computer (PC’s), há algumas diferenças, taiscomo “o poder de processamento, o tamanho <strong>da</strong> tela, a quanti<strong>da</strong>de de memória e a largura deban<strong>da</strong>” que são bastante limita<strong>da</strong>s nos <strong>dispositivos</strong> móveis.Porém, o programa<strong>do</strong>r independente, tem essas restrições a seu favor, pois não se faznecessário uma grande equipe de desenvolvimento e investimentos eleva<strong>do</strong>s, tornan<strong>do</strong>possível que equipes de cinco pessoas ou menos consigam desenvolver <strong>jogo</strong>s em um curtoespaço de tempo. Estes costumam ser muito mais simples que os <strong>jogo</strong>s desenvolvi<strong>do</strong>s <strong>para</strong>PC’s, poden<strong>do</strong> ser com<strong>para</strong><strong>do</strong>s aos antigos vídeos-game como: “Ninten<strong>do</strong> (8 bits) ou oSuperNinten<strong>do</strong>, de 16 bits” (SABINO, 2003, p. 42).Contu<strong>do</strong>, <strong>para</strong> ser possível o desenvolvimento de <strong>jogo</strong>s faz-se necessário oconhecimento de quais são as partes são necessárias <strong>para</strong> construção <strong>do</strong>s mesmos. Taldefinição será descrita a seguir.3.4 PARTES DOS JOGOSExistem três partes principais que compõe um <strong>jogo</strong>: o enre<strong>do</strong>, o motor e a interface. Oenre<strong>do</strong> é a parte responsável pela definição <strong>do</strong> estilo e objetivos que deverão ser alcança<strong>do</strong>s.Para construir essa parte <strong>do</strong> <strong>jogo</strong> pode ser necessária à colaboração de vários especialistasde diversas áreas. O motor fará com que o usuário consiga interagir com o <strong>jogo</strong>. Com ele éproduzi<strong>do</strong>: os movimentos, imagens, funcionamento entre outros. A interface é de certa forma,como o usuário irá interagir. Através dela o mesmo tentará alcançar os objetivos propostospelo <strong>jogo</strong> (BATTAIOLA, 2000).Para demonstrar estas partes, utiliza-se como exemplo o <strong>jogo</strong> <strong>da</strong> <strong>velha</strong>, o qual sepretende programar num dispositivo móvel. Assim será possível visualizar com clareza estesitens.


39No <strong>jogo</strong> <strong>da</strong> <strong>velha</strong>, o enre<strong>do</strong> são as regras <strong>do</strong> <strong>jogo</strong>, ou seja, as joga<strong>da</strong>s acontecem deforma alterna<strong>da</strong>, no qual os joga<strong>do</strong>res devem escolher entre os símbolos “X” e “O” <strong>para</strong>identificar o autor <strong>da</strong> joga<strong>da</strong>. O objetivo <strong>do</strong> <strong>jogo</strong> é alinhar três símbolos consecutivos no menornúmero de joga<strong>da</strong>s, sen<strong>do</strong> este então declara<strong>do</strong> vence<strong>do</strong>r.Ain<strong>da</strong> no que se refere a este <strong>jogo</strong>, o motor possibilitará aos joga<strong>do</strong>res marcar na tela<strong>do</strong>s celulares os símbolos, e fazer com que o dispositivo identifique o ganha<strong>do</strong>r.A interface seria o desenho <strong>do</strong> <strong>jogo</strong> <strong>da</strong> <strong>velha</strong> na tela <strong>do</strong> celular, bem como os passosnecessários <strong>para</strong> que o joga<strong>do</strong>r consiga sinalizar sua joga<strong>da</strong>. Para isso, o usuário deveescolher a posição, utilizan<strong>do</strong> as teclas direcionais <strong>do</strong> celular, e por fim confirmar onde osímbolo deve aparecer, através <strong>da</strong> tecla de confirmação.Contu<strong>do</strong>, os <strong>jogo</strong>s além de serem dividi<strong>do</strong>s por partes também possuem característicaspróprias que serão analisa<strong>da</strong>s a seguir.3.5 CARACTERÍSTICAS DOS JOGOSAs características de um <strong>jogo</strong> irão definir o seu estilo, poden<strong>do</strong> variar entre ação,simulação, estratégias, tabuleiros, Role Playing Games (RPG), entre outros. Dentre asprincipais pode-se destacar:• conflito: apesar <strong>do</strong>s obstáculos, deve existir uma luta <strong>para</strong> alcançar um objetivo;• segurança: o <strong>jogo</strong> pode acontecer sem oferecer riscos físicos ou financeiros;• representação: o joga<strong>do</strong>r é exposto a uma situação;• interativi<strong>da</strong>de: a interação ocorre de forma mútua;• jogabili<strong>da</strong>de: facili<strong>da</strong>de com que o joga<strong>do</strong>r tem de interagir com o <strong>jogo</strong>. Essacaracterística pode ser considera<strong>da</strong> uma <strong>da</strong>s mais importantes. Afinal, o <strong>jogo</strong>que não a contemplar provavelmente fará com que o joga<strong>do</strong>r perca interesse,deixan<strong>do</strong> a diversão de la<strong>do</strong> (LINS, 2003).Utilizan<strong>do</strong> o <strong>jogo</strong> <strong>da</strong> <strong>velha</strong> como exemplo, será efetua<strong>da</strong> a identificação <strong>da</strong>scaracterísticas supracita<strong>da</strong>s.


40O conflito é caracteriza<strong>do</strong> pela tentativa <strong>do</strong>s joga<strong>do</strong>res em alinhar três símbolos iguais econsecutivos, sen<strong>do</strong> que neste momento o oponente não nem acesso as funcionali<strong>da</strong>des.Sen<strong>do</strong> assim, os joga<strong>do</strong>res travam uma disputa <strong>para</strong> alcançar o objetivo <strong>do</strong> <strong>jogo</strong> e tornar-sevence<strong>do</strong>r. A segurança pode ser nota<strong>da</strong> em qualquer momento <strong>do</strong> <strong>jogo</strong>, pois nenhum risco devi<strong>da</strong> ou financeiro é ofereci<strong>do</strong>. No que tange a representação, esta ocorre quan<strong>do</strong> a pessoaque está manipulan<strong>do</strong> as joga<strong>da</strong>s se torna um joga<strong>do</strong>r, ou seja, ele representa o papel dejoga<strong>do</strong>r durante o <strong>jogo</strong>. No que se refere à interativi<strong>da</strong>de, esta é proporciona<strong>da</strong> pelo <strong>jogo</strong> epelo dispositivo. Isso ocorre quan<strong>do</strong> os joga<strong>do</strong>res marcam suas joga<strong>da</strong>s, que dependen<strong>do</strong> <strong>da</strong>marcação realiza<strong>da</strong>, acarretará em mu<strong>da</strong>nças na decisão referente à escolha <strong>do</strong> oponente.Outro fator que é proporciona<strong>do</strong> pelo <strong>jogo</strong> é a jogabili<strong>da</strong>de. Esta consiste na facili<strong>da</strong>de deinteragir com o <strong>jogo</strong>, sen<strong>do</strong> que quanto mais fácil essa interação, maior as chances de que ojoga<strong>do</strong>r passe mais tempo divertin<strong>do</strong>-se com o aplicativo.3.6 CONSIDERAÇÕES DO CAPÍTULONeste capítulo pode-se verificar a evolução <strong>do</strong>s <strong>jogo</strong>s eletrônicos, suas principaiscaracterísticas e partes necessárias <strong>para</strong> desenvolvimento de <strong>jogo</strong>s, bem como formas deimplementação <strong>para</strong> estas aplicações em celulares. Com isso, foi adquiri<strong>do</strong> conhecimento<strong>para</strong> definir quais as etapas necessárias <strong>para</strong> desenvolvimento <strong>do</strong> protótipo proposto.No item 6.3, que diz respeito a <strong>jogo</strong>s <strong>para</strong> celulares, foi possível verificar como podemser confecciona<strong>do</strong>s <strong>jogo</strong>s nestes <strong>dispositivos</strong>, quais suas restrições e vantagens dedesenvolvimento. Com isso, foi possível aplicar os conhecimentos adquiri<strong>do</strong>s, definin<strong>do</strong> quaisas partes <strong>do</strong>s <strong>jogo</strong>s necessárias <strong>para</strong> implementação <strong>do</strong> protótipo proposto.Porém <strong>para</strong> construção <strong>do</strong> protótipo proposto será necessário conhecimento <strong>da</strong>stecnologias que permitem tal desenvolvimento. Essas serão apresenta<strong>da</strong>s no capítulo aseguir.


4 FERRAMENTAS UTILIZADAS NO DESENVOLVIMENTO DE JOGOS PARADISPOSITIVOS MÓVEISCom a evolução <strong>do</strong>s <strong>dispositivos</strong> móveis, aplicações mais complexas começaram a serdesenvolvi<strong>da</strong>s. Isso fez com que as empresas que produzem os aparelhos deixassem de seras únicas a desenvolver aplicativos <strong>para</strong> celulares. Para permitir que outras empresastambém produzissem esses aplicativos foi elabora<strong>da</strong> “uma cama<strong>da</strong> entre os sistemasoperacionais de seus aparelhos e suas aplicações”. Isto permitiu que softwares de outrasempresas pudessem acessar funções nativas <strong>do</strong> aparelho (PINHEIRO, 2003).A seguir serão apresenta<strong>da</strong>s algumas <strong>da</strong>s linguagens utiliza<strong>da</strong>s <strong>para</strong> desenvolvimentode aplicativos <strong>para</strong> <strong>dispositivos</strong> móveis.4.1 JAVA 2 MICRO EDITION - J2MEA crescente evolução <strong>do</strong>s <strong>dispositivos</strong> móveis, uni<strong>do</strong> à vontade em que o ser humanotem de estar informa<strong>do</strong> em qualquer lugar e a qualquer momento fez com que os aparelhoscelulares de disseminassem pelo merca<strong>do</strong>. Atualmente existem mais de 1 bilhão de telefonescelulares espalha<strong>do</strong>s pelo mun<strong>do</strong>. Estes aparelhos evoluem a ca<strong>da</strong> dia que passa e ca<strong>da</strong> vezmais aplicativos que antes apenas eram desenvolvi<strong>do</strong>s em computa<strong>do</strong>res pessoais agoraestão sen<strong>do</strong> desenvolvi<strong>do</strong>s <strong>para</strong> os mesmos (BRITO, 200?).Ten<strong>do</strong> em vista este crescente merca<strong>do</strong>, um <strong>do</strong>s gigantes desta área, a SunMicroSystem, disponibilizou uma versão <strong>do</strong> Java volta<strong>da</strong> <strong>para</strong> o desenvolvimento deaplicações <strong>para</strong> <strong>dispositivos</strong> móveis. Esta ficou conheci<strong>da</strong> como Java 2 Micro Edition (J2ME)(BRITO, 200?).Devi<strong>do</strong> à portabili<strong>da</strong>de existente na linguagem de programação Java, tornou-se rápi<strong>da</strong> asolução de desenvolver aplicativos <strong>para</strong> <strong>dispositivos</strong> móveis. Contu<strong>do</strong>, apenas foi necessárioque os fabricantes de celulares implementassem a Java Virtual Machine (JVM) em seus<strong>dispositivos</strong>, sen<strong>do</strong> que em função <strong>da</strong>s limitações <strong>do</strong>s mesmos, não apresenta to<strong>da</strong>s asfuncionali<strong>da</strong>des existentes na máquina virtual <strong>para</strong> PC’s. Devi<strong>do</strong> a este fato, a máquina virtualencontra<strong>da</strong> nos celulares é denomina<strong>da</strong> Kilobyte Virtual Machine (KVM). Outro fator queacelerou o desenvolvimento foi o grande número de programa<strong>do</strong>res que já tinham


42conhecimento <strong>da</strong> linguagem Java. Isso facilitou a migração <strong>para</strong> desenvolvimento emcelulares (PINHEIRO, 2003).A arquitetura J2ME está dividi<strong>da</strong> em <strong>do</strong>is componentes: profiles e configurations. Para odesenvolvimento de aplicativos, os aparelhos possuem Application Programming Interface(API’s) próprias que limitam o programa<strong>do</strong>r a produzir aplicações exclusivamente <strong>para</strong> oaparelho em questão. Essas API’s vão variar de acor<strong>do</strong> com o profile <strong>do</strong> aparelho, sen<strong>do</strong> esteum conjunto de API’s conti<strong>da</strong>s dentro <strong>do</strong> dispositivo. O componente configurations éresponsável por definir a capaci<strong>da</strong>de de armazenamento, o poder de processamento, entreoutros recursos utiliza<strong>do</strong>s pelo aparelho (MAGALHAES, 200?). A Figura 7 demonstra umavisão geral arquitetura J2ME.Fonte: (CÂMARA, JUNIOR e COSTA, p. 15)Figura 9 – Visão geral <strong>da</strong> arquitetura J2ME.Conforme apresenta<strong>do</strong> na Figura anterior, há duas configurações disponíveis naarquitetura J2ME. São elas:• Connection Limited Device Configuration (CLDC) – este grupo é caracteriza<strong>do</strong>por estar destina<strong>do</strong> a aparelhos que possuem baixo poder de processamento euma capaci<strong>da</strong>de de armazenamento limita<strong>da</strong>. Estes <strong>dispositivos</strong> não possuem


43um processa<strong>do</strong>r com capaci<strong>da</strong>de superior a 32 bits e a memória disponível <strong>para</strong>utilizar em aplicações Java varia entre 128KB e 516Kb (PINHERIO, 2003);• Connected Device Configuration (CDC) – este grupo está destina<strong>do</strong> a<strong>dispositivos</strong> que possuem maior poder de processamento, maior capaci<strong>da</strong>de dearmazenamento em memória, e conseguem efetuar mais rapi<strong>da</strong>mente asconexões. Geralmente esses <strong>dispositivos</strong> possuem um processa<strong>do</strong>r de 32 bits ea memória disponível <strong>para</strong> aplicações Java é de 2MB.Além <strong>da</strong>s configurações existentes no J2ME, a Java Virtual Machine (JMV) conti<strong>da</strong> emca<strong>da</strong> aparelho possui um conjunto de API’s de alto nível que permite que o programa<strong>do</strong>rdesenvolva interfaces <strong>para</strong> o usuário, bem como acesse as proprie<strong>da</strong>des física <strong>do</strong> aparelhoem questão. Neste senti<strong>do</strong>, os profiles existentes são:• Mobile Information Device Profile (MIDP) – projeta<strong>do</strong> <strong>para</strong> trabalhar em umaconfiguração CLDC. Seu uso é destina<strong>do</strong> a aparelhos celulares e PersonalDigital Assistant (PDA). Nele estão conti<strong>da</strong>s classes que permitem odesenvolvimento de interfaces com o usuário, armazenamento de <strong>da</strong><strong>do</strong>s econexões externas;• Foun<strong>da</strong>tion Profile (FP) – neste profile não é possível desenvolver interfaces deusuários <strong>para</strong> <strong>dispositivos</strong>. Foi desenvolvi<strong>do</strong> <strong>para</strong> funcionar junto com outrosprofiles e seu uso é destina<strong>do</strong> a aparelhos que possuam configuração CDC.Nele estão conti<strong>do</strong>s apenas classes básicas;• Personal Profile (PP) – é utiliza<strong>do</strong> em <strong>dispositivos</strong> que necessitam de um suportea inteface ou applet. Com ele torna-se fácil à migração de aplicações feitas <strong>para</strong>Desktop’s;• Personal Basis Profile (PBP) – utiliza<strong>do</strong> em <strong>dispositivos</strong> que tenham capaci<strong>da</strong>dede suportar apresentações gráficas ou <strong>dispositivos</strong> que necessitem de toolkitsespecíficos.


444.2 SYMBIAN OSCom o intuito de desenvolver um sistema operacional <strong>para</strong> <strong>dispositivos</strong> móveis comcódigo aberto e sen<strong>do</strong> padrão, as maiores empresas de comunicação sem fio (Psion,Panasonic, Motorola, Nokia, Samsung Electronics, Sony, Ericsson e Siemens) se uniram <strong>para</strong>alcançar tal objetivo, desenvolven<strong>do</strong> assim o Symbian OS.Isso permitiu que terceiros pudessem desenvolver aplicações <strong>para</strong> os <strong>dispositivos</strong> quepossuíam o sistema operacional. Diferente <strong>do</strong> J2ME e BREW, o Symbian OS não necessitade uma máquina virtual. As aplicações são desenvolvi<strong>da</strong>s com um código nativo <strong>do</strong> sistema eas instruções são executa<strong>da</strong>s diretamente pelo processa<strong>do</strong>r <strong>do</strong> dispositivo (BARROS, 2003).Seu sistema operacional foi projeta<strong>do</strong> <strong>para</strong> uma plataforma de 32 bits multitarefa, sen<strong>do</strong>sua utilização direciona<strong>da</strong> a ambientes wireless e telefones celulares. O mesmo suportaprincipalmente aplicações escritas em C++ ou Java. Na versão 7.0, há suporte a MIDP 2.0,além de um novo framework multimídia e multithread.O Symbian OS também permite gerenciar um banco de <strong>da</strong><strong>do</strong>s ClipBoard, acessarimpressoras, bem como permite desenvolver aplicações em diversos conjuntos de caracteresespeciais como os orientais: Chinês e Japonês (PALUDO, 2003).4.3 BREWO Binary Runtime Environment for Wireless (BREW) foi desenvolvi<strong>do</strong> pela Qualcomm,com o Código escrito em C/C++. Suas instruções são compila<strong>da</strong>s e diferente <strong>do</strong> J2ME, ro<strong>da</strong>mem um chip se<strong>para</strong><strong>da</strong> <strong>do</strong> processa<strong>do</strong>r. Isso proporciona maior performance em relação aoJ2ME.Para que o programa<strong>do</strong>r aproveite as funcionali<strong>da</strong>des <strong>do</strong> dispositivo como acesso arede, som, tecla<strong>do</strong>, entre outros, o BREW oferece uma API própria. Essa contém as funções<strong>para</strong> gerenciar a alocação e desalocação de memória, sen<strong>do</strong> que as interfaces possuem umidentifica<strong>do</strong>r único. A programação em BREW é orienta<strong>da</strong> a eventos e feita de formaprocedural, onde os objetos são passa<strong>do</strong>s como parâmetros <strong>para</strong> as funções <strong>da</strong> interface(BARROS, 2003).


45Desta forma, o BREW possui suporte a desenvolvimento de <strong>jogo</strong>s. Contu<strong>do</strong>, não épossível realizar transformações na imagem, tais como rotações e escala, nem acessar ospixels <strong>da</strong> imagens. Porém existem primitivas que permitem a construção de imagens.“Também dá suporte a som, criação de temporiza<strong>do</strong>res, conectivi<strong>da</strong>de e persistência de<strong>da</strong><strong>do</strong>s” (BARROS, 2003, p.5).4.4 COMPARAÇÕES ENTRE AS FERRAMENTASCom o intuito de fazer uma escolha coerente pela ferramenta a ser utiliza<strong>da</strong> nodesenvolvimento <strong>do</strong> protótipo o Quadro 3 demonstra quais as vantagens e desvantagens deca<strong>da</strong> uma delas.Quadro 1 - Com<strong>para</strong>tivo entre as tecnologias BREW, J2ME e Symbian OSPrósContrasJ2MEFácil aprendiza<strong>do</strong> e programação, segura,portável <strong>para</strong> tecnologias diferentes, fácilintegração com sistemas lega<strong>do</strong>s eferramentas de desenvolvimento gratuitasBaixa performance se com<strong>para</strong><strong>da</strong> comsistemas nativos, limita<strong>do</strong> acesso aosrecursos de celular, fácil pirataria e grandefragmentação de plataformaBREWRápi<strong>do</strong>, acesso a maioria <strong>do</strong>s recursos <strong>do</strong> Desenvolvimento difícil. O desenvolve<strong>do</strong>rcelular, ótimo sistema de distribuição e de fica preso a uma tecnologia proprietária eantipirataria e relativamente seguro o processo de desenvolvimento é caroSymbian OS (C++)Rápi<strong>do</strong>, acessa a maioria <strong>do</strong>s recursos <strong>do</strong> Ambiente inseguro, difícil aprendiza<strong>do</strong>,celular e o desenvolvimento é sistema antipirataria pouco aberto.relativamente fácil e baratoFonte: (TONIAZZO, 2005, p. 32)Conforme verifica<strong>do</strong> no Quadro 1, a ferramenta J2ME apresenta a vantagem de ser umalinguagem de fácil aprendiza<strong>do</strong>. Isto facilita o processo de desenvolvimento e diminui as


46chances de não obter êxito no desenvolvimento de aplicações. Outro fator importante a sermenciona<strong>do</strong> e que não foi cita<strong>do</strong> no quadro acima é que a tecnologia J2ME, é um padrãoaberto e “não requer autorização <strong>do</strong>s fabricantes de aparelhos como acontece <strong>para</strong> o caso<strong>do</strong>s vídeo-games” (SABINO, 2003, p. 42).Dentre essas e outras características cita<strong>da</strong>s no tópico 7.1 a linguagem Java 2 MicroEdition será utiliza<strong>da</strong> na confecção <strong>do</strong> protótipo proposto. Porém esta é considera<strong>da</strong> umalinguagem orienta<strong>da</strong> objeto e <strong>para</strong> obter sucesso no desenvolvimento de aplicativos autilizan<strong>do</strong> faz-se necessário alguns conceitos básicos sobre o assunto. Isso será descrito aseguir.4.5 ORIENTAÇÃO OBJETOA maioria <strong>da</strong>s linguagens existentes, importaram <strong>para</strong> dentro de suas estruturas oconceito de orientação objeto. Isto se deve ao aumento <strong>da</strong> deman<strong>da</strong> pelo desenvolvimento desoftware. Esta cresceu a tal ponto que programar utilizan<strong>do</strong> o conceito de programaçãoestrutura<strong>da</strong> não estava conseguin<strong>do</strong> atender esta necessi<strong>da</strong>de, devi<strong>do</strong> à baixa produtivi<strong>da</strong>deque este conceito proporciona (SZMIT, 1993).A orientação objeto permite a reutilização de códigos e a criação de componentes, o quediminui o trabalho de programação, evitan<strong>do</strong> redundâncias no código. Estes componentes,internamente podem ser complexos e de difícil compreensão. Porém <strong>para</strong> sua utilização, oanalista não precisa ter este conhecimento. Saber como usá-lo e como se comporta é osuficiente. Além disso, esta técnica faz com que os desenvolve<strong>do</strong>res deixem de pensar emprocessos existentes em um sistema, manten<strong>do</strong> seu foco no comportamento destesprocessos (MARTIN e ODELL, 1995).A seguir serão descritas as características e conceitos sobre orientação objeto, pois<strong>para</strong> a confecção <strong>do</strong> protótipo faz-se necessário o conhecimento e filosofia de tal técnica.


474.5.1 CONCEITOSA principal idéia que forma o conceito de Programação Orienta<strong>da</strong> à Objeto (POO) é quequalquer estrutura utiliza<strong>da</strong> no desenvolvimento de um programa “deve estar intimamenteassocia<strong>da</strong> às operações que realizam o acesso a ela, e vice-versa” (SZMIT, 1993, p. 1). Pelomenos <strong>do</strong>is motivos tornam essa dependência real:• <strong>para</strong> conseguir realizar operações diretamente sobre uma estrutura de <strong>da</strong><strong>do</strong>sfaz-se necessário conhecer como ela foi implementa<strong>da</strong>;• a organização de uma estrutura de <strong>da</strong><strong>do</strong>s é realiza<strong>da</strong> de tal forma queoperações correspondentes sejam de fácil implementação.Em outras palavras, este conceito tenta agrupar em uma mesma estrutura conceitos eoperações, crian<strong>do</strong> o que é conheci<strong>do</strong> como objeto (SZMIT, 1993).A seguir será disserta<strong>do</strong> sobre os elementos existentes em uma linguagem <strong>para</strong> queesta seja considera<strong>da</strong> uma linguagem volta<strong>da</strong> <strong>para</strong> a POO.4.5.1.1 ObjetoUm objeto agrupa dentro de uma mesma estrutura de <strong>da</strong><strong>do</strong>s inúmeras operaçõesnecessárias <strong>para</strong> sua manipulação. Estas operações são conheci<strong>da</strong>s como méto<strong>do</strong>s. Alémdisso, um objeto pode conter uma coleção de <strong>da</strong><strong>do</strong>s priva<strong>do</strong>s e <strong>para</strong> conseguir manipulá-losfaz-se necessário a utilização <strong>do</strong> conjunto de méto<strong>do</strong>s existentes nos objetos (SZMIT, 1993).Martin e Odell (1995, p.18), conceituam um objeto <strong>da</strong> seguinte maneira: “um objeto équalquer coisa, real ou abstrata, a respeito <strong>da</strong> qual armazenam <strong>da</strong><strong>do</strong>s e os méto<strong>do</strong>s que osmanipulam”.Vale ressaltar que os <strong>da</strong><strong>do</strong>s priva<strong>do</strong>s de um objeto podem vir a ser outros objetos. Istopermite a criação de objetos ca<strong>da</strong> vez mais complexos.


484.5.1.2 Méto<strong>do</strong>sOs méto<strong>do</strong>s são responsáveis pela forma de manipulação <strong>do</strong>s <strong>da</strong><strong>do</strong>s existentes em umobjeto. Esses apenas podem referenciar <strong>da</strong><strong>do</strong>s priva<strong>do</strong>s <strong>do</strong> objeto pertencente. Quan<strong>do</strong> fazsenecessário usar a estrutura de <strong>da</strong><strong>do</strong>s existente em outro objeto, é preciso enviarmensagens a este objeto.Desta forma, um objeto torna-se o agrupamento <strong>da</strong>s proprie<strong>da</strong>des que o representam, eseu comportamento é <strong>da</strong><strong>do</strong> pelos méto<strong>do</strong>s existentes (MARTIN e ODELL, 1995).4.5.1.3 EncapsulamentoO encapsulamento consistem em empacotar méto<strong>do</strong>s e <strong>da</strong><strong>do</strong>s ao mesmo tempo. Istoocorre <strong>para</strong> evitar adulterações nos <strong>da</strong><strong>do</strong>s existentes em um objeto. Quan<strong>do</strong> o objeto escondeseus <strong>da</strong><strong>do</strong>s de outros objetos a forma <strong>para</strong> conseguir acessá-los é através de seus méto<strong>do</strong>s.Isso é chama<strong>do</strong> de ocultação de informações. Caso este conceito não estivesse presente,poderiam ser usa<strong>do</strong>s de forma inadequa<strong>da</strong> ou adultera<strong>do</strong>s facilmente.Sen<strong>do</strong> assim, o encapsulamento oculta detalhes de implementações, ou seja, o usuárioentende quais as operações podem ser realiza<strong>da</strong>s sobre um objeto e quais podem sersolicita<strong>da</strong>s. Entretanto não conhece os detalhes de como esta operação é executa<strong>da</strong>, poisaspecto específicos e a codificação dessas operações são manti<strong>da</strong>s ocultas (MARTIN eODELL, 1995).4.5.1.4 ClasseNo desenvolvimento de um aplicativo é provável que ocorra a existência de objetos comas mesmas características. Para evitar que estas características fossem defini<strong>da</strong>sindividualmente <strong>para</strong> ca<strong>da</strong> objeto, a orientação a objeto tornou possível a criação de umaclasse. Esta pode ser considera<strong>da</strong> o modelo <strong>para</strong> criação de novos objetos (SZMIT, 1993).Segun<strong>do</strong> Szmit (1993, p. 6) a definição de classe é “um agrupamento de objetos querevelam profun<strong>da</strong>s semelhanças entre si, tanto no aspecto estrutural quanto funcional”.


49Pode-se criar diversos objetos a partir de uma classe (modelo). Quan<strong>do</strong> isto ocorreto<strong>do</strong>s estes objetos vão compartilhar características descritas na classe. Na criação de ca<strong>da</strong>um destes objetos é dito que estes são instâncias desta classe. Vale ressaltar que apesar deterem as mesmas características ca<strong>da</strong> objeto cria<strong>do</strong> terá seus próprios valores <strong>para</strong> os <strong>da</strong><strong>do</strong>sconti<strong>do</strong>s na classe, diferencian<strong>do</strong>-os uns <strong>do</strong>s outros (SZMIT, 1993).4.5.1.5 HerançaEste conceito possibilita que objetos de alto nível possam ser especializa<strong>do</strong>s em objetosde níveis mais baixos. Esta herança proporciona que classes-filhas consigam ter a estruturaou algumas estruturas de <strong>da</strong><strong>do</strong>s ou méto<strong>do</strong>s <strong>da</strong> classe-mãe. Porém, esta classe-filha podeconter méto<strong>do</strong>s e tipos de <strong>da</strong><strong>do</strong>s próprios.Com a herança é proporciona<strong>do</strong> um <strong>do</strong>s conceitos importantes <strong>da</strong> programaçãoorienta<strong>da</strong> a objetos o <strong>da</strong> reusabili<strong>da</strong>de. Ela torna possível que os méto<strong>do</strong>s e <strong>da</strong><strong>do</strong>s utiliza<strong>do</strong>sem uma classe-mãe sejam novamente usa<strong>do</strong>s na classe-filha, sem a necessi<strong>da</strong>de dereescreve-los (MARTIN e ODELL, 1995).4.5.1.6 PolimorfismoSegun<strong>do</strong> Ricarte (2001), polimorfismo é quan<strong>do</strong> classes deriva<strong>da</strong>s de uma superclasseconseguem invocar méto<strong>do</strong>s que tem a mesma identificação, porém, a ação executa<strong>da</strong> dentrode uma classe se difere <strong>da</strong> outra. Dentro <strong>da</strong> programação orienta<strong>da</strong> objetos este conceito é defun<strong>da</strong>mental importância, pois é através dele que é possível operar objetos genéricos,deixan<strong>do</strong> de la<strong>do</strong> características particulares de ca<strong>da</strong> objeto quan<strong>do</strong> estas não se fazemnecessárias.Quan<strong>do</strong> ocorre a chama<strong>da</strong> <strong>do</strong> méto<strong>do</strong> que está se utilizan<strong>do</strong> <strong>do</strong> polimorfismo, a açãoexecuta<strong>da</strong> será sempre a descrita na classe deriva<strong>da</strong> e não a <strong>da</strong> superclasse.


504.6 CONSIDERAÇÕES DO CAPÍTULOCom o presente capítulo foi possível conhecer algumas ferramentas dedesenvolvimento, bem como constatar que a tecnologia J2ME tem a vantagem de serportável. Tal característica tem forte influência na escolha de qual linguagem utilizar, afinal oprotótipo <strong>do</strong> <strong>jogo</strong> proposto deve ter a capaci<strong>da</strong>de de ser executa<strong>do</strong> em aparelhos queapresentam a mesma tecnologia. Caso isto não ocorra, só será possível ter diversão com o<strong>jogo</strong> entre celulares de mesma arquitetura.Porém, é importante ressaltar que <strong>para</strong> o desenvolvimento <strong>do</strong> protótipo, a tecnologiaJ2ME mostrou-se vantajosa, pelas razões apresenta<strong>da</strong>s no item 7.4. Como constata<strong>do</strong>, essatecnologia também possuí desvantagens. Uma delas é sua performance. Esta, se com<strong>para</strong><strong>da</strong>às demais, terá um desempenho inferior pelo fato de existir um interpreta<strong>do</strong>r de códigos entrea aplicação e o hardware. Tal característica não ocorre nas outras linguagens pelo fato deserem nativas.


5 ANÁLISE DO PROTÓTIPO DO JOGO DA VELHAO <strong>jogo</strong> escolhi<strong>do</strong> <strong>para</strong> implementação foi o Jogo <strong>da</strong> Velha. Este é relativamente simples,em função de suas regras serem bem difundi<strong>da</strong>s. Contu<strong>do</strong>, como menciona<strong>do</strong> no capítulo 3,uma <strong>da</strong>s partes <strong>do</strong> <strong>jogo</strong> é o enre<strong>do</strong>, o qual tem o intuito de definir o estilo e os objetivos aserem alcança<strong>do</strong>s. Diante disto, pode-se identificar as regras existentes no <strong>jogo</strong> <strong>da</strong> <strong>velha</strong>como sen<strong>do</strong>:• exige a participação de <strong>do</strong>is joga<strong>do</strong>res;• os joga<strong>do</strong>res devem escolher entre os símbolo “X” e “O”;• as joga<strong>da</strong>s ocorrem de forma alterna<strong>da</strong> entre os joga<strong>do</strong>res;• o objetivo <strong>do</strong> <strong>jogo</strong> é marcar três símbolos iguais e consecutivos no tabuleiro.Quem conseguir alcançar tal objetivo primeiro será declara<strong>do</strong> vence<strong>do</strong>r.Ten<strong>do</strong> claras as regras <strong>do</strong> <strong>jogo</strong>, elaborou-se a interface de forma que a mesma fosseobjetiva, simples e representasse corretamente o <strong>jogo</strong> no seu novo mo<strong>do</strong>, o virtual. Nestesenti<strong>do</strong>, cinco telas foram julga<strong>da</strong>s necessárias e serão apresenta<strong>da</strong>s a seguir.A tela inicial tem como intuito a apresentação <strong>do</strong> <strong>jogo</strong>. Nesta, o joga<strong>do</strong>r terá três opções,sen<strong>do</strong> estas: um joga<strong>do</strong>r contra o computa<strong>do</strong>r (1P X COMP), joga<strong>do</strong>r 1 contra joga<strong>do</strong>r 2 (1P X2P) e SAIR. Essa escolha será feita utilizan<strong>do</strong> as teclas direcionais <strong>do</strong> tecla<strong>do</strong>. A Figura 9demonstra a tela inicial <strong>do</strong> <strong>jogo</strong>.Figura 9 – Tela Inicial <strong>do</strong> JogoIndependente de o joga<strong>do</strong>r escolher a opção 1P X COMP ou 1P X 2P a forma de jogarserá a mesma. Sen<strong>do</strong> assim, a interface também. A Figura 12, mais precisamente no item a,


52demonstra a tela que será apresenta<strong>da</strong> após a escolha de uma <strong>da</strong>s opções cita<strong>da</strong>santeriormente.O joga<strong>do</strong>r escolherá, utilizan<strong>do</strong> as teclas direcionais <strong>do</strong> celular, em qual posição <strong>do</strong>tabuleiro deseja sinalizar a joga<strong>da</strong> e qual o símbolo de sua preferência. Através <strong>da</strong> tecla deconfirmação, o símbolo será visualiza<strong>do</strong> na tela. A Figura 10 demonstra uma seqüência dejoga<strong>da</strong>s.Figura 10 - Exemplo <strong>do</strong> funcionamento <strong>do</strong> <strong>jogo</strong>Como no <strong>jogo</strong> convencional, as joga<strong>da</strong>s ocorrem de forma alterna<strong>da</strong> entre um joga<strong>do</strong>r eoutro, ou seja, apenas um joga<strong>do</strong>r pode sinalizar sua joga<strong>da</strong> em um mesmo instante, só entãoo outro joga<strong>do</strong>r poderá fazer sua joga<strong>da</strong>. A ca<strong>da</strong> joga<strong>da</strong> sinaliza<strong>da</strong>, o aplicativo tentaráencontrar um joga<strong>do</strong>r que tenha alcança<strong>do</strong> o objetivo <strong>do</strong> <strong>jogo</strong>. Caso ocorra sucesso nestabusca, o <strong>jogo</strong> será encerra<strong>do</strong> e a mensagem demonstran<strong>do</strong> o ganha<strong>do</strong>r será exibi<strong>da</strong> na tela<strong>do</strong> aparelho. A Figura 11 demonstra quan<strong>do</strong> um joga<strong>do</strong>r é declara<strong>do</strong> vence<strong>do</strong>r.Figura 11 – Joga<strong>do</strong>r vence<strong>do</strong>r


53Conforme a Figura 11, além de visualizar o vence<strong>do</strong>r <strong>do</strong> <strong>jogo</strong>, o joga<strong>do</strong>r seráquestiona<strong>do</strong> se deseja iniciar um nova parti<strong>da</strong>. Essa escolha poderá ser feita utilizan<strong>do</strong> asteclas direcionais <strong>do</strong> celular. Caso a opção SIM seja escolhi<strong>da</strong>, uma nova joga<strong>da</strong> será inicia<strong>da</strong>conforme demonstra a Figura 10, mais especificamente o item a. Caso contrário, o joga<strong>do</strong>rserá direciona<strong>do</strong> a tela inicial conforme representa a Figura 9. Vale ressaltar que em qualquermomento, o joga<strong>do</strong>r terá autonomia <strong>para</strong> sair <strong>do</strong> <strong>jogo</strong> em an<strong>da</strong>mento. Para isso seránecessário que o joga<strong>do</strong>r pressione a tecla de cancelamento de chama<strong>da</strong> existente no celular.Outro fator importante a ser menciona<strong>do</strong> é de que a ca<strong>da</strong> vez que o usuário escolher a opçãoSIM quan<strong>do</strong> questiona<strong>do</strong> se deseja jogar novamente, o mesmo não poderá optar em jogarcontra o computa<strong>do</strong>r (COMP) ou contra outro joga<strong>do</strong>r (1P X 2P). A nova parti<strong>da</strong> será inicia<strong>da</strong>na mo<strong>da</strong>li<strong>da</strong>de escolhi<strong>da</strong> inicialmente.Na tela inicial, se o joga<strong>do</strong>r optar pela opção 1P X 2P então uma nova tela aparecerá nocelular, solicitan<strong>do</strong> se o mesmo será cliente ou servi<strong>do</strong>r <strong>do</strong> <strong>jogo</strong>. Caso a opção servi<strong>do</strong>r sejaseleciona<strong>da</strong>, o celular irá aguar<strong>da</strong>r a conexão <strong>do</strong> celular cliente. Caso contrário uma telasolicitan<strong>do</strong> Nome e IP aparecerá no celular. A Figura 12 demonstra tal situação.Figura 12 – Telas de configurações remotasSe o IP estiver correto e a opção conectar for escolhi<strong>da</strong>, uma conexão entre os celularesserá feita e o <strong>jogo</strong> será inicia<strong>do</strong>. Caso a opção cancelar seja seleciona<strong>da</strong>, o joga<strong>do</strong>r serádireciona<strong>do</strong> a tela inicial.Ten<strong>do</strong> realiza<strong>do</strong> o processo de análise <strong>para</strong> definir as etapas de construção <strong>do</strong> protótipoe assim minimizar os erros, e levan<strong>do</strong> em consideração os conceitos apresenta<strong>do</strong>s no capítulo4 referentes a orientação objeto, foi construí<strong>do</strong> o diagrama de classe <strong>do</strong> projeto utilizan<strong>do</strong> a


54ferramenta Argo/UML. Esta é uma ferramenta livre e pode ser adquiri<strong>da</strong> em www.tigris.org.Desta forma, a Figura 13 demonstra o referi<strong>do</strong> diagrama.ConexaoBluetooth- motor : JogoDaVelha- servi<strong>do</strong>r : boolean- entra<strong>da</strong>Stream : DataInputStream- sai<strong>da</strong>Stream : DataOutputStream+ ConexaoBluetooth(motor : JogoCanvas, servi<strong>do</strong>r : boolean)+ executar(conexao : StreamConnection)+ enviar(posicao : int)+ desconectar(status : int)- registro : ServiceRecord- mo<strong>do</strong>DescobertaInicial : int- posicao : int- tipoJogo : int- tecla : int- vitoriaX : int- vitoriaO : int- joga<strong>da</strong>Oponente : boolean- bloquearTecla<strong>do</strong> : boolean- servi<strong>do</strong>r : boolean- conexao : ConexaoBluetoothJogoCliente+ JogoCliente(motor : JogoCanvas, registro : ServiceRecord)+ run()+ conectar()JogoCanvas+ JogoCanvas(<strong>jogo</strong><strong>da</strong><strong>velha</strong> : JogoDaVelha)- posicaoMarca<strong>da</strong>(posicao : int) : boolean- verificaGanha<strong>do</strong>r(Graphics g : int) : boolean- setSimbolo(simbolo : Image, g : Graphics, posicao : int) : boolean- executarJoga<strong>da</strong>(g : Graphics)+ paint(g : Graphics)# keyPressed(keyCode : int)JogoServi<strong>do</strong>r- notificacao : StreamConnectionNotifier- mo<strong>do</strong>DescobertaInicial : int- url : String- thread : Thread+ JogoServi<strong>do</strong>r(motor : JogoCanvas)+ run()+ cancelar()+ aceitar()- tipoJogoLista : List- tipoAplicacaoLista : List- <strong>dispositivos</strong>Lista : List- UUID : String- dispositivoLocal : LocalDevice- agente : DiscoveryAgent- <strong>jogo</strong>Cliente : JogoCliente- <strong>jogo</strong>Servi<strong>do</strong>r : JogoServi<strong>do</strong>rJogoDaVelha+ JogoDaVelha()+ startApp()+ pauseApp()+ inquiryCompleted(discType : int)+ servicesDiscovered(transID : int, ServiceRecord : ServiceRecord[])+ serviceSearchCompleted(transID : int, respCode : int)+ cancelSearch()Figura 13 – Diagrama de classes <strong>do</strong> projetoPara a construção <strong>do</strong> diagrama de classes, primeiramente foram considera<strong>da</strong>s ascaracterísticas no que se refere a funcionali<strong>da</strong>de. Deste mo<strong>do</strong>, a classe JogoCanvas éresponsável pela parte gráfica, enquanto a classe JogoDaVelha controla a interface. Depoisde defini<strong>da</strong>s estas classes, foi feita a abstração <strong>para</strong> efetuar a conexão bluetooth. Isso foinecessário pois tanto a parte cliente quanto a parte servi<strong>do</strong>ra <strong>do</strong> <strong>jogo</strong> iriam transmitir <strong>da</strong><strong>do</strong>s.Assim, criou-se uma superclasse denomina<strong>da</strong> ConexaoBluetooth que utiliza streams (canais)<strong>para</strong> transmissão <strong>do</strong>s <strong>da</strong><strong>do</strong>s. Posteriormente foi desenvolvi<strong>da</strong> a classe JogoCliente e aJogoServi<strong>do</strong>r que são descendentes <strong>da</strong> superclasse, sen<strong>do</strong> que ca<strong>da</strong> uma delas disponibilizade forma diferencia<strong>da</strong> o serviço bluetooth na rede.


55Defini<strong>da</strong> as classes e méto<strong>do</strong>s que seriam utiliza<strong>do</strong>s na implementação <strong>do</strong> protótipo apróxima etapa seria instalar e configurar as ferramentas utiliza<strong>da</strong>s na codificação <strong>do</strong> projeto.Este procedimento será disserta<strong>do</strong> a seguir.5.1 INSTALAÇÃO E CONFIGURAÇÃO DO AMBIENTE DE PROGRAMAÇÃOO presente tópico tem por objetivo demonstrar as formas de instalação e configuração<strong>da</strong>s ferramentas utiliza<strong>da</strong>s no desenvolvimento <strong>do</strong> protótipo. Estes procedimentos foramrealiza<strong>do</strong>s em um computa<strong>do</strong>r pessoal Intel com processa<strong>do</strong>r Pentium® 4.3.0 com 512Megabytes (Mb) de memória, sen<strong>do</strong> que o sistema operacional utiliza<strong>do</strong> foi o MicrosoftWin<strong>do</strong>ws XP.Inicialmente, como já foi defini<strong>do</strong> que será utiliza<strong>da</strong> a linguagem de programaçãoorienta<strong>da</strong> a objetos Java, faz-se necessária à instalação <strong>do</strong> J2SDK. Esta é um conjunto deferramentas que possibilita a compilação, execução e depuração de projetos. A mesma seencontra disponível no site <strong>da</strong> SUN (www.java.sum.com.br) e é distribuí<strong>da</strong> gratuitamente.Também é preciso instalar o ambiente de programação NetBeans. Este se fez necessário pelafacili<strong>da</strong>de e agili<strong>da</strong>de na programação e compilação <strong>do</strong> protótipo. O mesmo possuí um pacoteadicional, o NetBeans Mobility 4.1, o qual permite associar o ambiente de desenvolvimentocom o emula<strong>do</strong>r Wireless ToolKit. O objetivo é testar o protótipo antes que ele seja adiciona<strong>do</strong>ao aparelho celular.O NetBeans encontra-se disponível de forma gratuita no site oficial <strong>da</strong> ferramenta(www.netbeans.org) e sua instalação segue o modelo padrão <strong>do</strong>s demais aplicativos nosistema operacional Win<strong>do</strong>ws®. Após a instalação <strong>do</strong> NetBeans é necessário instalar o pacoteadicional NetBeans Mobility 4.1 que também é distribuí<strong>do</strong> de forma gratuita e encontra-sedisponível no site <strong>do</strong> NetBeans. Sua forma de instalação segue o mesmo modelo <strong>da</strong>ferramenta NetBeans.Depois de instala<strong>do</strong> as ferramentas necessárias <strong>para</strong> o desenvolvimento de aplicaçõesJava, é necessário clicar no atalho cria<strong>do</strong>, o qual se encontra na tela inicial <strong>do</strong> sistemaoperacional Win<strong>do</strong>ws XP. Feito isso será visualiza<strong>do</strong> a interface <strong>do</strong> NetBeans. Para criar umnovo projeto deve-se acessar a opção File e então selecionar New Project. Com isso uma tela<strong>para</strong> escolher o tipo <strong>da</strong> aplicação será exibi<strong>da</strong> conforme demonstra a Figura 14.


56Figura 14 – Seleção <strong>do</strong> tipo <strong>do</strong> projeto no NetBeansDuas caixas de seleção são exibi<strong>da</strong>s nesta tela. Uma <strong>para</strong> criar uma aplicaçãodireciona<strong>da</strong> <strong>para</strong> celular, que está disponível na caixa de seleção Categories, opção Móbile. Asegun<strong>da</strong> referente à caixa Projects, é preciso selecionar a opção Móbile Application e clicar nobotão next. Fazen<strong>do</strong> isso uma nova janela aparecerá solicitan<strong>do</strong> o nome <strong>do</strong> projeto e localonde será salvo o mesmo. Este processo está sen<strong>do</strong> demonstra<strong>do</strong> na Figura 15.Figura 15 – Definição <strong>do</strong> nome <strong>do</strong> projeto e local de armazenamento


57Para a criação <strong>do</strong> projeto <strong>jogo</strong> <strong>da</strong> <strong>velha</strong> foi desmarca<strong>da</strong> as opções Set as Main Project eCreate Hello MIDlet. Isso foi feito <strong>para</strong> que o NetBeans não crie um arquivo de exemplo deaplicação <strong>para</strong> celular e não selecione este como arquivo principal <strong>do</strong> projeto. Feito isso opróximo passo é clicar no botão Finish. Com isso o projeto foi cria<strong>do</strong> com sucesso e o próximopasso é criar os arquivos que formarão o mesmo.Para criar o arquivo JogoDaVelha.java é necessário clicar em File e escolher a opçãoNew File que se encontra no canto superior direito. Com isso abrirá uma janela que conteráduas caixas de seleção. Na primeira, referente à Categories, deve ser seleciona<strong>da</strong> a opçãoMIDP e a outra referente a File Types, deve ser seleciona<strong>do</strong> a opção MIDlet. Isto deveacontecer, pois o objetivo é criar uma aplicação <strong>para</strong> celular e <strong>para</strong> isto é necessário umaclasse que seja descendente <strong>da</strong> classe MIDlet. Após as escolhas feitas, é preciso clicar nobotão Next conforme demonstra a Figura 16.Figura 16 – Crian<strong>do</strong> arquivo JogoDaVelha.javaEscolhi<strong>do</strong> o tipo <strong>do</strong> arquivo, uma nova janela será visualiza<strong>da</strong> solicitan<strong>do</strong> o nome <strong>do</strong>arquivo e o nome <strong>da</strong> classe que estará conti<strong>da</strong> dentro deste arquivo. Também é requeri<strong>do</strong> ocaminho de um ícone, caso o desenvolve<strong>do</strong>r queira acrescentar um referente ao projeto.Defini<strong>do</strong> o nome <strong>do</strong> arquivo e <strong>da</strong> classe, o botão finish deve ser pressiona<strong>do</strong>. Isso fará comque o arquivo apareça previamente formata<strong>do</strong> e pronto <strong>para</strong> edição. A Figura 17 demonstra aúltima janela visualiza<strong>da</strong> <strong>para</strong> criação <strong>do</strong> arquivo.


58Figura 17 – Etapa final <strong>para</strong> criação <strong>do</strong> arquivo JogoDaVelha.javaPorém, ain<strong>da</strong> faz-se necessário criar o arquivo JogoCanvas.java. Este procedimento érealiza<strong>do</strong> conforme descrito <strong>para</strong> a criação <strong>do</strong> arquivo JogoDaVelha. Contu<strong>do</strong>, no momento <strong>da</strong>seleção <strong>do</strong> tipo <strong>do</strong> arquivo deve ser seleciona<strong>da</strong> a opção MIPD Canvas. Esta escolha deveser realiza<strong>da</strong>, pois <strong>para</strong> trabalhar com objetos gráficos no celular é necessário ter uma classedescendente <strong>da</strong> MIPD Canvas.Vale ressaltar que não é obrigatório o uso <strong>do</strong> NetBeans <strong>para</strong> conseguir construir oprotótipo. Utilizan<strong>do</strong> apenas um editor de texto é possível escrever to<strong>da</strong> a aplicação, e por fimsalvá-la com extensão *.java. Então, <strong>para</strong> efetuar os testes pode-se adquirir o emula<strong>do</strong>r J2MEWireless Toolkit 1.0.4 que se encontra disponível de forma gratuita no site <strong>da</strong> SUN(http://java.sun.com/products/sjwtoolkit/<strong>do</strong>wnload.html).Caso não seja utiliza<strong>do</strong> o NetBeans, a instalação <strong>do</strong> J2ME Wireless Toolkit 1.0.4 énecessária, sen<strong>do</strong> esta realiza<strong>da</strong> de forma simples, pois segue o modelo padrão realiza<strong>do</strong> nasdemais aplicações. Após este procedimento deve-se executar o aplicativo. Para isso devemseefetuar os seguintes passos: clicar no botão menu <strong>do</strong> sistema operacional Win<strong>do</strong>ws XP ®,escolher a opção Programas segui<strong>da</strong> pela opção J2ME Wireless Toolkit 1.0.4. Finalmente,clicar na opção KToolbar. Este procedimento abrirá o console <strong>para</strong> testes de aplicações.Selecionan<strong>do</strong> a opção New Project, será exibi<strong>da</strong> uma janela solicitan<strong>do</strong> o nome <strong>do</strong> projeto e<strong>da</strong> classe, sen<strong>do</strong> estas informações obrigatórias <strong>para</strong> iniciar o desenvolvimento de uma novaaplicação. Após deve-se pressionar o botão Create Project, conforme demonstra a Figura 18.


59Figura 18 – Crian<strong>do</strong> novo projeto <strong>para</strong> teste de aplicações wirelessFeito isso será cria<strong>da</strong> uma pasta dentro <strong>do</strong> diretório de funcionamento <strong>do</strong> WirelessToolkit com o nome <strong>do</strong> projeto informa<strong>do</strong> anteriormente. Isso auxilia na organização elocalização <strong>do</strong>s arquivos necessários <strong>para</strong> compilação <strong>do</strong> projeto. No mesmo local tambémserá inseri<strong>da</strong> a pasta chama<strong>da</strong> “src”. Esta é responsável por guar<strong>da</strong>r os arquivos fontes <strong>do</strong>projeto. Com isso, <strong>para</strong> testar a aplicação faz-se necessário copiar os arquivos fonte <strong>para</strong>dentro desta pasta, e em segui<strong>da</strong> pressionar o botão Build. Caso o projeto tenha erros desintaxe, os mesmos serão exibi<strong>do</strong>s no console <strong>do</strong> aplicativo. Caso contrário, basta clicar nobotão Run <strong>para</strong> testar a aplicação, conforme demonstra a Figura 19.Figura 19 – Compilação e execução <strong>do</strong> projeto testeApós defini<strong>da</strong> a ferramenta utiliza<strong>da</strong> no processo de desenvolvimento <strong>do</strong> protótipo, foinecessário identificar quais os requisitos deveriam estar conti<strong>do</strong>s no dispositivo celular <strong>para</strong>


60que este permitisse que a aplicação proposta tivesse êxito durante a execução. Estes estãosen<strong>do</strong> demonstra<strong>do</strong>s a seguir.5.1.1 REQUISITOS DO DISPOSITIVO CELULARPara que o protótipo proposto funcione corretamente são exigi<strong>do</strong>s os seguintesrequisitos <strong>para</strong> o celular:• possibilitar uma navegação de fácil manuseio, pois diversos usuários farão uso<strong>do</strong> protótipo e deve-se levar em consideração que não são to<strong>do</strong>s que possuemconhecimento avança<strong>do</strong> sobre o dispositivo;• possibilitar uma conexão a outro dispositivo móvel utilizan<strong>do</strong> a tecnologiabluetooth;• capaci<strong>da</strong>de de executar aplicações desenvolvi<strong>da</strong>s <strong>para</strong> a plataforma J2ME.Realiza<strong>da</strong>s as etapas de análise e verifica<strong>do</strong> quais os requisitos que o celular deveconter <strong>para</strong> que o <strong>jogo</strong> possa ser executa<strong>do</strong>, foi possível partir <strong>para</strong> a etapa de codificação <strong>do</strong>projeto que será descrita a seguir.5.2 CODIFICAÇÃO DO PROTÓTIPODepois de estu<strong>da</strong><strong>da</strong>s as ferramentas de desenvolvimento descritas no capítulo quatro,foi possível concluir que a tecnologia J2ME possuí características importantes, comofacili<strong>da</strong>de de aprendiza<strong>do</strong> e portabili<strong>da</strong>de, sen<strong>do</strong> desta forma a escolhi<strong>da</strong>.Após a definição <strong>da</strong> linguagem de programação utiliza<strong>da</strong> no desenvolvimento <strong>do</strong>protótipo, fez-se uma divisão <strong>do</strong> projeto em cinco arquivos com o intuito de simplificar acompreensão. Ca<strong>da</strong> um destes arquivos contém uma classe e ca<strong>da</strong> uma destas classesficaram responsáveis por uma determina<strong>da</strong> funcionali<strong>da</strong>de dentro <strong>do</strong> projeto. Essas estãosen<strong>do</strong> demonstra<strong>da</strong>s na Tabela 1.


61Tabela 1 – Funcionali<strong>da</strong>des <strong>do</strong>s arquivos <strong>do</strong> protótipoNome <strong>do</strong> Arquivo Nome <strong>da</strong> Classe Funcionali<strong>da</strong>deJogoDaVelha.java JogoDaVelha Responsável em gerenciar osmenus <strong>da</strong> aplicação e encontrar<strong>dispositivos</strong> que contenham atecnologia bluetooth.JogoCanvas.java JogoCanvas Responsável por to<strong>da</strong> a partegráfica e controle lógico <strong>do</strong>protótipo.JogoCliente.java JogoCliente Responsável em criar umaconexão <strong>do</strong> tipo cliente <strong>para</strong> oprojeto.JogoServi<strong>do</strong>r JogoServi<strong>do</strong>r Responsável em criar umaconexão <strong>do</strong> tipo servi<strong>do</strong>ra <strong>para</strong>o projeto.ConexaoBluetooth ConexaoBluetooth Executa a transmissão <strong>do</strong>s<strong>da</strong><strong>do</strong>s. Tanto <strong>da</strong> parte clientequanto <strong>da</strong> parte servi<strong>do</strong>ra <strong>do</strong>protótipo.Determina<strong>da</strong> a estrutura <strong>do</strong> projeto foi <strong>da</strong><strong>do</strong> início a implementação <strong>da</strong> classeJogoDaVelha. Esta é uma classe descendente <strong>da</strong> classe MIDlet, CommandListener eDiscoveryListener. A classe MIDlet faz-se necessário pois qualquer aplicação desenvolvi<strong>da</strong><strong>para</strong> celular deve ser descendente dela. A segun<strong>da</strong> contém as premissas necessárias <strong>para</strong> setrabalhar com eventos <strong>do</strong> celular. Por fim, a DiscoveryListener será utiliza<strong>da</strong> <strong>para</strong> procura <strong>do</strong>s<strong>dispositivos</strong> bluetooth encontra<strong>do</strong>s na rede.Defini<strong>da</strong> a classe JogoDaVelha, o primeiro passo foi construir o primeiro menu <strong>da</strong>aplicação. Para isto foi cria<strong>do</strong> um objeto tipoJogoLista instancia<strong>do</strong> <strong>da</strong> classe List. Esta classeauxilia no processo de manipulação <strong>do</strong>s menus, deixan<strong>do</strong> padrão o mo<strong>do</strong> de navegação. Isso


62se faz necessário pois ca<strong>da</strong> celular possuí suas teclas padrões <strong>para</strong> manipulação de menus,sen<strong>do</strong> preciso padronizar <strong>para</strong> a manipulação <strong>do</strong>s menus <strong>do</strong> protótipo.O menu tipoJogoLista, que em aplicações <strong>para</strong> celulares corresponde a um objeto <strong>da</strong>classe List, foi cria<strong>do</strong> <strong>para</strong> que o usuário escolha se deseja executar um <strong>jogo</strong> multi-joga<strong>do</strong>r ouúnico joga<strong>do</strong>r. Depois foi cria<strong>do</strong> o menu tipo <strong>da</strong> aplicação onde será escolhi<strong>do</strong> se o <strong>jogo</strong> serácliente ou servi<strong>do</strong>r. Por fim, foi cria<strong>do</strong> o menu Lista de <strong>dispositivos</strong> onde será mostra<strong>do</strong> to<strong>do</strong>sos <strong>dispositivos</strong> que estão aguar<strong>da</strong>n<strong>do</strong> uma conexão bluetooth. A Figura 20 demonstra osmenus existentes na aplicação.a) Tipo <strong>do</strong> Jogo b) Tipo <strong>da</strong> Aplicação c)Servi<strong>do</strong>res Encontra<strong>do</strong>sFigura 20 – Menus existentes no protótipoO Quadro 2 demonstra como foi desenvolvi<strong>da</strong> a rotina responsável pela criação econfiguração <strong>do</strong>s menus existentes no protótipo e apresenta<strong>do</strong>s na Figura 19.Quadro 2 – Menus existentes no protótipo01 tipoJogoLista = new List("Selecione o tipo <strong>do</strong> <strong>jogo</strong>", List.IMPLICIT,02 new String[]{"1P X 2P", "1P X COMP"});03 tipoJogoLista.addCommand(selecionarCommand);04 tipoJogoLista.addCommand(sairCommand);05 tipoJogoLista.setCommandListener(this);0607 tipoAplicacaoLista = new List("Selecione uma opção", List.IMPLICIT,08 new String[]{"Servi<strong>do</strong>r", "Cliente"});09 tipoAplicacaoLista.addCommand(selecionarCommand);10 tipoAplicacaoLista.addCommand(voltarCommand);11 tipoAplicacaoLista.setCommandListener(this);1213 <strong>dispositivos</strong>Lista = new List("Dispositivos encontra<strong>do</strong>s", List.IMPLICIT);14 <strong>dispositivos</strong>Lista.addCommand(selecionarCommand);15 <strong>dispositivos</strong>Lista.addCommand(voltarCommand);16 <strong>dispositivos</strong>Lista.setCommandListener(this);1718 display = Display.getDisplay(this);19 display.setCurrent(tipoJogoLista);


63Na linha 1 é cria<strong>do</strong> o menu que será utiliza<strong>do</strong> <strong>para</strong> escolher se o <strong>jogo</strong> será multi-usuárioou único usuário, conforme demonstra a Figura 19 item a). Assim como na linha 1, na linha 7e linha 13 são cria<strong>do</strong>s outros <strong>do</strong>is menus utiliza<strong>do</strong>s no protótipo. O primeiro se refere ao tipo<strong>da</strong> aplicação, ou seja se o <strong>jogo</strong> será cliente ou servi<strong>do</strong>r <strong>da</strong> aplicação, conforme demonstra aFigura 19 item b). O segun<strong>do</strong>, refere-se ao menu que armazenará to<strong>do</strong>s os <strong>dispositivos</strong>bluetooth encontra<strong>do</strong>s na rede e é demonstra<strong>do</strong> na Figura 19 item c).É importante mencionar que o processo <strong>para</strong> criação de to<strong>do</strong>s os menus necessáriosna aplicação seguem o mesmo procedimento. Assim será demonstra<strong>do</strong> através <strong>da</strong> criação <strong>do</strong>menu referente ao tipo <strong>do</strong> <strong>jogo</strong>, apresenta<strong>do</strong> na linha 1 <strong>do</strong> Quadro 2. Neste é cria<strong>do</strong> um objeto<strong>da</strong> classe List onde o primeiro parâmetro passa<strong>do</strong> é o título <strong>do</strong> menu. O segun<strong>do</strong> é o tipo <strong>do</strong>menu, ou seja se o menu será uma lista simples (List.IMPLICIT), ou será uma lista exclusiva(List.EXCLUSIVE), ou um lista de seleção múltipla (List.MULTIPLE) segui<strong>do</strong> pelo parâmetroque representa as opções que estarão conti<strong>da</strong>s nele. Além de mencionar os itens conti<strong>do</strong>s,são adiciona<strong>do</strong>s coman<strong>do</strong>s nestes menus, ou seja, o que o usuário pode fazer quan<strong>do</strong> omenu está na tela. Um exemplo deste fato acontece na linha 3 <strong>do</strong> menu Tipo <strong>do</strong> Jogo, onde érecebi<strong>da</strong> uma ação de seleção, sen<strong>do</strong> na linha seguinte uma ação de saí<strong>da</strong>. Isso significadizer que o usuário poderá selecionar uma <strong>da</strong>s opções visualiza<strong>da</strong>s no menu ou retornar aomenu.Também é possível observar no Quadro 2 que o objeto display, que é uma instanciação<strong>da</strong> classe Display, é inicializa<strong>do</strong>. Isto ocorre <strong>para</strong> que to<strong>da</strong> a vez que se fizer necessáriovisualizar uma imagem na tela <strong>do</strong> celular se faça uso deste objeto. Para que isso aconteça, épreciso utilizar o méto<strong>do</strong> setCurrent(Display nexDisplayable). O parâmetro informa<strong>do</strong> nesteméto<strong>do</strong> é o objeto que será visualiza<strong>do</strong>. Na linha 19 é informa<strong>do</strong> <strong>para</strong> o objeto display que omenu Tipo <strong>do</strong> Jogo será visualiza<strong>do</strong> na tela <strong>do</strong> dispositivo celular, conforme demonstra aFigura 19 item a).O código apresenta<strong>do</strong> no Quadro 2 está conti<strong>do</strong> dentro <strong>do</strong> méto<strong>do</strong> construtor <strong>da</strong> classeJogoDaVelha que é o primeiro a ser executa<strong>do</strong>. Após execução <strong>do</strong> mesmo, o méto<strong>do</strong>startApp() é executa<strong>do</strong> obrigatoriamente, em função <strong>da</strong> classe JogoDaVelha ser descendente<strong>da</strong> classe MIDlet. Vale salientar que dentro deste méto<strong>do</strong> é utiliza<strong>do</strong> o objeto display <strong>para</strong>informar ao celular que a primeira tela a ser visualiza<strong>da</strong> será o menu referente a escolha <strong>do</strong>tipo <strong>do</strong> <strong>jogo</strong>, sen<strong>do</strong> o mesmo representa<strong>do</strong> pelo objeto tipoJogoLista. Desta forma foramconstruí<strong>do</strong>s os três menus existentes na aplicação e apresenta<strong>do</strong>s na Figura 19.


64Após cria<strong>do</strong>s os menus, desenvolveu-se o código <strong>para</strong> disponibilizar o aparelho celularcomo servi<strong>do</strong>r <strong>do</strong> <strong>jogo</strong> proposto. Porém, antes de relatar sobre este assunto, é importantemostrar como é feito o controle <strong>do</strong> menu quan<strong>do</strong> é seleciona<strong>do</strong> um item conti<strong>do</strong> nele.Para isso existe o evento commandAction(Command c, Displayable d). Este evento édis<strong>para</strong><strong>do</strong> to<strong>da</strong> vez que o usuário pressionar alguma tecla de controle <strong>do</strong> celular, como porexemplo as setas direcionais ou a tecla de seleção. Como pode ser observa<strong>do</strong>, este méto<strong>do</strong>contém <strong>do</strong>is parâmetros, onde o primeiro indica o coman<strong>do</strong> envia<strong>do</strong> ao celular e o segun<strong>do</strong>qual a tela está visível no dispositivo. O Quadro 3 demonstra como é feito o controle destemenus.Quadro 3 – Controle <strong>do</strong>s menus01 public void commandAction(Command c, Displayable d){02 if (d == tipoJogoLista) {03 if(c == selecionarCommand){04 switch(tipoJogoLista.getSelectedIndex()){05 case 0:06 display.setCurrent(tipoAplicacaoLista);07 break;09 }10 }Observan<strong>do</strong> o Quadro 3, nas linhas <strong>do</strong>is e três quan<strong>do</strong> o objeto d for igual ao objetotipoJogoLista e o objeto c for um coman<strong>do</strong> de seleção, será adquiri<strong>do</strong> o índice correspondentea opção seleciona<strong>da</strong> através <strong>do</strong> méto<strong>do</strong> getSelectedIndex(), ou seja, quan<strong>do</strong> o usuárioselecionar a primeira opção o menu Tipo <strong>do</strong> Jogo (ver Figura 19 item a), o méto<strong>do</strong>getSelectedeIndex() retornará o valor zero (0). Isso fará com que a condição existente na linhacinco seja atendi<strong>da</strong> e então na linha seis o menu Tipo <strong>da</strong> Aplicação (Figura 19 item b) serávisualiza<strong>do</strong> no visor <strong>do</strong> celular.Após a implementação <strong>do</strong>s menus foi desenvolvi<strong>do</strong> o processo de disponibilizar umserviço Bluetooth <strong>do</strong> tipo servi<strong>do</strong>r na rede. Porém, antes de dissertar sobre como serárealiza<strong>da</strong> tal ação, será necessário ter conhecimento sobre a classe ConexaoBluetooth.Primeiramente é váli<strong>do</strong> ressaltar que no capítulo 5, onde é disserta<strong>do</strong> sobre a análise <strong>do</strong>protótipo, não se detinha o conhecimento de como seria realiza<strong>do</strong> uma conexão bluetoothutilizan<strong>do</strong> a tecnologia J2ME. Por este motivo foi deduzi<strong>do</strong> que esta conexão seria realiza<strong>da</strong>através de um IP. Entretanto, no momento <strong>da</strong> implementação <strong>do</strong> protótipo obteve-se oconhecimento de que não era preciso um IP e sim um protocolo de comunicação específico<strong>da</strong> tecnologia. Desta forma, alguns ajustes na análise se fizeram necessários, sen<strong>do</strong> que oprocesso realiza<strong>do</strong> <strong>para</strong> a implementação desta etapa é descrito a seguir.


65Ten<strong>do</strong> conhecimento sobre a tecnologia bluetooth foi cria<strong>da</strong> a classe ConexaoBluetoothque tem por objetivo transmitir <strong>da</strong><strong>do</strong>s. Além disso, tanto a classe JogoCliente como<strong>jogo</strong>Servi<strong>do</strong>r serão descendentes dela, pois quan<strong>do</strong> houvernecessi<strong>da</strong>de de enviarinformações, estas classes farão uso <strong>do</strong> méto<strong>do</strong> executar, existente na classeConexaoBluetooth. O código abaixo demonstra como é realiza<strong>da</strong> esta transmissão.Quadro 4 – Méto<strong>do</strong> executar() <strong>da</strong> classe ConexaoBluettoh01 public void executar(StreamConnection conexao) throws IOException{02 int posicao;0304 sai<strong>da</strong>Stream = conexao.openDataOutputStream();05 entra<strong>da</strong>Stream = conexao.openDataInputStream();0607 if (motor.getSituacao() != JogoCanvas.TELA_ANDAMENTO_JOGO)08 motor.iniciar(this);0910 while (1 == 1){11 posicao = entra<strong>da</strong>Stream.readInt();12 motor.marcarJoga<strong>da</strong>Oponente(posicao);13 }15 }Na linha 4 é aberto um canal <strong>para</strong> saí<strong>da</strong> de <strong>da</strong><strong>do</strong>s, enquanto na linha seguinte o mesmoprocedimento é realiza<strong>do</strong> <strong>para</strong> entra<strong>da</strong> de <strong>da</strong><strong>do</strong>s. Na linha 7 é verifica<strong>do</strong> se o <strong>jogo</strong> não seencontra em an<strong>da</strong>mento. Caso não esteja, o mesmo será inicia<strong>do</strong>. Na linha 10 o programaentra em loop <strong>para</strong> que enquanto o <strong>jogo</strong> estiver em an<strong>da</strong>mento à aplicação receba e envie aposição que foi marca<strong>da</strong> tanto pelo servi<strong>do</strong>r quanto pelo cliente <strong>da</strong> aplicação. Por fim, naslinhas seguintes é li<strong>do</strong> e passa<strong>do</strong> <strong>para</strong> a variável posicao a joga<strong>da</strong> efetua<strong>da</strong>. Após isso deveser passa<strong>da</strong> a posição <strong>para</strong> o outro celular e então é seta<strong>da</strong> esta joga<strong>da</strong> no celular <strong>do</strong>oponente.Ten<strong>do</strong> conhecimento de como funciona a classe ConexaoBluetooth foi possível criar aclasse que torna o dispositivo celular servi<strong>do</strong>r <strong>do</strong> <strong>jogo</strong>. Para isso foi feito uso <strong>da</strong> classejavax.bluetooth.LocalDevice. Nesta classe existem os três méto<strong>do</strong>s que tornaram possível aimplementação <strong>do</strong> protótipo:• getDiscoveryAgent(): retorna um objeto que é responsável pelas buscas poroutros <strong>dispositivos</strong> bluetooth disponíveis na rede;• setDiscoverable(int discoverableMode): seta o mo<strong>do</strong> em que o dispositivo vai seencontrar disponível na rede. São três a possibili<strong>da</strong>des: possível de serdescoberto no intervalo de 1 minuto, possível de ser encontra<strong>do</strong> até que esteesta<strong>do</strong> mude, ou que não seja possível ser descoberto;


66• getDiscoverable(): retorna a forma que o dispositivo foi descoberto.Ten<strong>do</strong> conhecimento destes méto<strong>do</strong>s foi possível desenvolver a classe quedisponibilizará o dispositivo celular na rede como servi<strong>do</strong>r <strong>do</strong> <strong>jogo</strong>, fazen<strong>do</strong> com que os<strong>dispositivos</strong> clientes consigam encontrá-lo. O Quadro 5 demonstra a implementação destaclasse.Quadro 5 – Disponibilizan<strong>do</strong> servi<strong>do</strong>r <strong>do</strong> protótipo01 public void run() {02 LocalDevice dispositivoLocal = null;03 StreamConnection conexao;04 url = "btspp://localhost:0000000000000000000000AF2004BCEF";0506 dispositivoLocal = LocalDevice.getLocalDevice();07 dispositivoLocal.setDiscoverable(DiscoveryAgent.GIAC);0809 notificacao = (StreamConnectionNotifier)Connector.open(url);10 conexao = notificacao.acceptAndOpen();1112 executar(conexao);13 }No Quadro 5 está sen<strong>do</strong> demonstra<strong>do</strong> o méto<strong>do</strong> run() conti<strong>do</strong> na classe JogoServi<strong>do</strong>r.Na linha 2 é declara<strong>do</strong> um objeto <strong>da</strong> classe LocalDevice e na seguinte um objeto <strong>da</strong> classeStreamConexao . Na linha 4 a variável url pode ser dividi<strong>da</strong> em duas partes <strong>para</strong> entender suafuncionali<strong>da</strong>de. A primeira parte, referente à “htspp://”, informa que a conexão a ser abertaserá <strong>do</strong> tipo bluetooth. A segun<strong>da</strong>, referente a “localhost:”, significa que essa conexão seráaberta localmente e será uma aplicação servi<strong>do</strong>ra. Por fim, o restante <strong>da</strong> cadeia de caracteresé uma chave cria<strong>da</strong> <strong>para</strong> identificar a aplicação, ou seja, <strong>para</strong> que quan<strong>do</strong> os <strong>dispositivos</strong>clientes procurarem por um servi<strong>do</strong>r, os mesmos consigam identificar que o aparelhoencontra<strong>do</strong> na rede possui o <strong>jogo</strong> <strong>da</strong> <strong>velha</strong> executan<strong>do</strong>. Na linha 7 o dispositivo é seta<strong>do</strong> <strong>para</strong>o mo<strong>do</strong> DiscoveryAgent.GIAC. Isso ocorre com a finali<strong>da</strong>de de que os <strong>dispositivos</strong> clientespossam encontrar o servi<strong>do</strong>r <strong>do</strong> protótipo. Na linha 9 é notifica<strong>do</strong> que será aberta umaconexão bluetooth e na linha 10 é aceita e aberta a referi<strong>da</strong> conexão.Além <strong>do</strong> mo<strong>do</strong> DiscoveryAgent.GIAC existem outros <strong>do</strong>is mo<strong>do</strong>s: oDiscoveryAgent.LIAC e o DicoveryAgent.NOT_DISCOVERABLE. O primeiro torna odispositivo possível de ser encontra<strong>do</strong> no intervalo de 1 minuto. Por sua vez, o segun<strong>do</strong> nãopermite que o dispositivo seja encontra<strong>do</strong>.Após a implementação <strong>da</strong> parte servi<strong>do</strong>ra <strong>do</strong> protótipo, foi desenvolvi<strong>do</strong> o processo <strong>para</strong>encontrar o dispositivo servi<strong>do</strong>r na rede. Para isso foi necessário utilizar-se <strong>da</strong> classe


67DiscoveryAgent, que foi previamente menciona<strong>da</strong>. Esta classe implementa to<strong>do</strong>s os méto<strong>do</strong>snecessários <strong>para</strong> localizar um dispositivo bluetooth.Para realizar a busca, a classe DiscoveryAgent contém um méto<strong>do</strong> que realiza estaprocura. A ca<strong>da</strong> dispositivo encontra<strong>do</strong>, este é adiciona<strong>do</strong> em um vetor, <strong>para</strong> queposteriormente ca<strong>da</strong> dispositivo encontra<strong>do</strong> seja analisa<strong>do</strong> a fim de identificar qual delespossuem o <strong>jogo</strong> <strong>da</strong> <strong>velha</strong> ro<strong>da</strong>n<strong>do</strong>. Após a localização destes <strong>dispositivos</strong> é necessárioverificar se estes se encontram disponíveis <strong>para</strong> acesso. O Quadro 6 demonstra como é feitoeste reconhecimento.Quadro 6 – Méto<strong>do</strong> responsável pela busca de <strong>dispositivos</strong> bluetooth01 public void inquiryCompleted(int discType) {02 switch(discType){03 case INQUIRY_COMPLETED:04 <strong>dispositivos</strong>Lista.deleteAll();0506 if(<strong>dispositivos</strong>.size() > 0){07 rd = new RemoteDevice[<strong>dispositivos</strong>.size()];08 <strong>dispositivos</strong>.copyInto(rd);0910 for(int i = 0; i < rd.length; i++){11 try{12 <strong>dispositivos</strong>Lista.append(rd[i].13 getFriendlyName(false));14 }catch(IOException ex){15 displayAlert("Erro ao obter o16 nome <strong>do</strong> dispositivo!",17 AlertType.ERROR,18 tipoAplicacaoLista);19 return;20 }21 }2223 display.setCurrent(<strong>dispositivos</strong>Lista);2425 }else{26 displayAlert("Nenhum dispositivo encontra<strong>do</strong>!",27 AlertType.INFO, tipoAplicacaoLista);28 }3930 break;3132 case INQUIRY_TERMINATED:33 displayAlert("Busca por <strong>dispositivos</strong> cancela<strong>da</strong>!",34 AlertType.INFO, tipoAplicacaoLista);35 break;3637 case INQUIRY_ERROR:38 displayAlert("Houve um erro na busca por <strong>dispositivos</strong>!",39 AlertType.ERROR, tipoAplicacaoLista);40 break;41 }42 }


68O méto<strong>do</strong> inquiryCompleted(int discType), localiza<strong>do</strong> na primeira linha <strong>do</strong> Quadro 6 faz averificação se os <strong>dispositivos</strong> encontra<strong>do</strong>s podem ser acessa<strong>do</strong>s. Caso o dispositivo estejadisponível, o mesmo será adiciona<strong>do</strong> a lista que exibe os <strong>dispositivos</strong> encontra<strong>do</strong>s. Isso podeser visualiza<strong>do</strong> na linha 3. Caso ocorra alguma exceção, será mostra<strong>do</strong> o erro na tela eretorna<strong>do</strong> ao menu de busca. Com isso será exibi<strong>da</strong> a lista <strong>do</strong>s vários servi<strong>do</strong>res bluetoothque estão aguar<strong>da</strong>n<strong>do</strong> por uma conexão na rede.Quan<strong>do</strong> o usuário selecionar um <strong>do</strong>s servi<strong>do</strong>res existentes na tela, será executa<strong>do</strong> ométo<strong>do</strong> serviceSearchCompleted(int transID, int respCode). Este irá procurar por um servi<strong>do</strong>rque contenha a identificação correspondente ao <strong>jogo</strong> <strong>da</strong> <strong>velha</strong>. O Quadro 7 demonstra como éfeita esta identificação.Quadro 7 – Identifican<strong>do</strong> o serviço <strong>jogo</strong> <strong>da</strong> <strong>velha</strong>01 public void serviceSearchCompleted(int transID, int respCode) {0203 switch(respCode){04 case SERVICE_SEARCH_TERMINATED:05 displayAlert("Busca por serviços cancela<strong>da</strong>!",06 AlertType.INFO, <strong>dispositivos</strong>Lista);07 break;0809 case SERVICE_SEARCH_ERROR:10 displayAlert("Houve um erro na busca por serviços!",11 AlertType.ERROR, <strong>dispositivos</strong>Lista);12 break;1314 case SERVICE_SEARCH_NO_RECORDS:15 displayAlert("Não está ro<strong>da</strong>n<strong>do</strong> o Jogo <strong>da</strong> Velha!",16 AlertType.WARNING, <strong>dispositivos</strong>Lista);17 break;1819 case SERVICE_SEARCH_DEVICE_NOT_REACHABLE:20 displayAlert("O dispositivo está fora de alcance!",21 AlertType.INFO, <strong>dispositivos</strong>Lista);22 break;2324 case SERVICE_SEARCH_COMPLETED:25 <strong>jogo</strong>Cliente = new JogoCliente(<strong>jogo</strong>Canvas, registro);26 <strong>jogo</strong>Cliente.conectar();2728 break;29 }30 }De acor<strong>do</strong> com o Quadro 7, existem cinco eventos possíveis de acontecer, sen<strong>do</strong> eles:• SERVICE_SEARCH_TERMINATED: significa que a busca pelo <strong>dispositivos</strong>ervi<strong>do</strong>r foi cancela<strong>da</strong> pelo usuário. Quan<strong>do</strong> isto ocorrer a mensagem conti<strong>da</strong> nalinha quatro <strong>do</strong> Quadro 7 será exibi<strong>da</strong> na tela <strong>do</strong> celular;


69• SERVICE_SEARCH_ERROR: significa que ocorreu um erro durante a procurapelo dispositivo servi<strong>do</strong>r. Ocorren<strong>do</strong> este evento a mensagem existente na linha10 será visualiza<strong>da</strong> no celular;• SERVICE_SEARCH_NO_RECORDS: significa que não foi encontra<strong>do</strong> nenhumdispositivo servi<strong>do</strong>r disponível na rede que contenha o <strong>jogo</strong> executan<strong>do</strong>. Comisso será visualiza<strong>da</strong> a mensagem existente na linha 15;• SERVICE_SEARCH_DEVICE_NOT_REACHABLE: significa que o dispositivoencontra<strong>do</strong> está fora de alcance <strong>para</strong> comunicação. Conseqüentemente amensagem existente na linha 20 será exibi<strong>da</strong>;• SERVICE_SEARCH_COMPLETED: significa que a busca obteve êxito e o <strong>jogo</strong>será inicia<strong>do</strong>.Caso a busca obtiver êxito, é construí<strong>do</strong> um objeto <strong>da</strong> classe JogoCliente. Após suacriação será inicia<strong>do</strong> o <strong>jogo</strong> através <strong>do</strong> méto<strong>do</strong> connect().A classe <strong>jogo</strong>Cliente é responsável por fazer uma conexão a um servi<strong>do</strong>r que contenhao <strong>jogo</strong> <strong>da</strong> <strong>velha</strong>. Assim como a classe JogoServi<strong>do</strong>r, esta também é descendente <strong>da</strong> classeConexaoBluetooth. O Quadro 8 demonstra como esta classe inicia uma conexão com oservi<strong>do</strong>r.Quadro 8 - Conexão ao servi<strong>do</strong>r <strong>do</strong> <strong>jogo</strong> <strong>da</strong> <strong>velha</strong>01 public void run() {02 LocalDevice dispositivoLocal = null;03 StreamConnection conexao = null;0405 dispositivoLocal = LocalDevice.getLocalDevice();060708 dispositivoLocal.setDiscoverable(DiscoveryAgent.NOT_DISCOVERABLE);0910 String url = registro.getConnectionURL(11 ServiceRecord.NOAUTHENTICATE_NOENCRYPT);1213 conexao = (StreamConnection)Connector.open(url);1415 executar(conexao);16 }Para realizar a conexão, na linha 5 o objeto dispostivoLocal recebe o retorno <strong>do</strong> méto<strong>do</strong>getLocalDevice. Como visto anteriormente, este méto<strong>do</strong> retorna informações sobre odispositivo que se está utilizan<strong>do</strong>. Em segui<strong>da</strong>, na linha 8 é informa<strong>do</strong> <strong>para</strong> o dispositivo


70celular que este não será mais encontra<strong>do</strong> por outros aparelhos, ten<strong>do</strong> em vista que o mesmoestará participan<strong>do</strong> de uma outra conexão. Na linha 10 é adquiri<strong>da</strong> a string de conexão. Nestecaso, como o <strong>jogo</strong> não possuí <strong>da</strong><strong>do</strong>s que necessitem de segurança, a constanteServiceRecord.NOAUTHENTICATE_NOENCRYPP é passa<strong>da</strong>. Isto define uma conexão semcriptografia. Posteriormente, na linha 13 é aberta a conexão. Por fim será executa<strong>do</strong> o méto<strong>do</strong>executar(StreamConnection conexao) <strong>da</strong> super classe ConexaoBluetooth, inician<strong>do</strong> assim adisputa <strong>do</strong> <strong>jogo</strong> entre os participantes.Após a realização <strong>da</strong> conexão, foi implementa<strong>do</strong> o motor <strong>do</strong> <strong>jogo</strong>, ou seja, a parteresponsável pela lógica e exibição <strong>da</strong>s imagens no dispositivo. Este motor se refere a classeJogoCanvas.Inicialmente, dentro <strong>do</strong> méto<strong>do</strong> construtor <strong>da</strong> classe JogoDaVelha é carrega<strong>do</strong> namemória as principais imagens utiliza<strong>da</strong>s na execução <strong>do</strong> protótipo. O Quadro 6 demonstracomo estas imagens são armazena<strong>da</strong>s na memória.Quadro 9 – Carregan<strong>do</strong> imagens na memória <strong>do</strong> dispositivo celular01 this.simbolo_x = getSimbolo_x();02 this.simbolo_o = getSimbolo_o();03 this.tabuleiro = getTabuleiro();04 this.simbolo_atual = this.simbolo_x;Nas linhas 1, 2, 3 e 4 <strong>do</strong> Quadro 6, estão sen<strong>do</strong> inicializa<strong>do</strong>s os objetos que irão guar<strong>da</strong>ras imagens <strong>do</strong>s símbolos e <strong>do</strong> tabuleiro <strong>do</strong> <strong>jogo</strong>. Estes são objetos priva<strong>do</strong>s e instancia<strong>do</strong>s <strong>da</strong>classe Image. Os mesmos são inicializa<strong>do</strong>s através <strong>da</strong> chama<strong>da</strong> de um méto<strong>do</strong> responsávelpor carregar as imagens na memória. A Tabela 1 demonstra os méto<strong>do</strong>s e suas respectivasimagens as quais serão carrega<strong>da</strong>s nas variáveis.


71Tabela 2 - Méto<strong>do</strong>s utiliza<strong>do</strong>s <strong>para</strong> carregar as imagens <strong>do</strong>s símbolos na memóriaNome <strong>do</strong> méto<strong>do</strong> Variável inicializa<strong>da</strong> ImagemgetSimbolo_x()getSimbolo_o()simbolo_xsímbolo_ogetTabuleiro()tabuleirogetPerde<strong>do</strong>r()getGanha<strong>do</strong>r()A Tabela 1 também apresenta outros <strong>do</strong>is méto<strong>do</strong>s que serão utiliza<strong>do</strong>s <strong>para</strong> mostrar aimagem referente ao ganha<strong>do</strong>r e ao perde<strong>do</strong>r quan<strong>do</strong> o <strong>jogo</strong> chegar ao fim. Levan<strong>do</strong> emconsideração as restrições <strong>do</strong> aparelho celular no que diz respeito à memória, estas imagensnão serão guar<strong>da</strong><strong>da</strong>s durante to<strong>da</strong> a execução <strong>do</strong> <strong>jogo</strong>, pois só são visualiza<strong>da</strong>s no término <strong>da</strong>parti<strong>da</strong>. Por este motivo, estas figuras não são armazena<strong>da</strong>s em nenhuma variável.To<strong>do</strong>s os méto<strong>do</strong>s responsáveis em carregar as imagens utiliza<strong>da</strong>s durante a execução<strong>do</strong> protótipo têm basicamente a mesma estrutura e estão sen<strong>do</strong> demonstra<strong>do</strong>s no Quadro 10.Quadro 10 – Méto<strong>do</strong>s responsáveis em carregar imagens na memória01 private Image getSimbolo_x() { // -- cria a imagem X02 if (simbolo_x == null) simbolo_x = Image.createImage("/simbolo_x.PNG");03 return simbolo_x;04 }0506 private Image getSimbolo_o() { // -- cria a imagem O07 if (simbolo_o == null) simbolo_o = Image.createImage("/simbolo_o.PNG");08 return simbolo_o;09 }1011 private Image getTabuleiro(){ // -- cria a imagem <strong>do</strong> tabuleiro12 if (tabuleiro == null) tabuleiro = Image.createImage("/tabuleiro.PNG");13 return tabuleiro;14 }1516 private Image getGanha<strong>do</strong>r(){ // -- cria a imagem <strong>do</strong> ganha<strong>do</strong>r17 if (ganha<strong>do</strong>r == null) ganha<strong>do</strong>r = Image.createImage("/ganha<strong>do</strong>r.PNG");18 return ganha<strong>do</strong>r;19 }2021 private Image getPerde<strong>do</strong>r(){ // -- cria a imagem <strong>do</strong> perde<strong>do</strong>r22 if (perde<strong>do</strong>r == null) this.perde<strong>do</strong>r = Image.createImage("/perde<strong>do</strong>r.PNG");23 return perde<strong>do</strong>r;24 }


72Conforme o Quadro 10, inicialmente é com<strong>para</strong><strong>do</strong> se a variável que armazenará aimagem é nula. Caso esta sentença seja ver<strong>da</strong>deira, o méto<strong>do</strong> createImage(), <strong>da</strong> classeImage, é aciona<strong>do</strong> e nele é passa<strong>do</strong> como parâmetro onde o arquivo de imagem encontra-se.Como os arquivos de imagens encontram-se na mesma pasta que os arquivos fontes, não énecessário informar to<strong>do</strong> o caminho. Assim, basta sinalizar com o símbolo “/”, que fará comque o méto<strong>do</strong> createImage() procure pela imagem no mesmo diretório onde estão os arquivosfontes.Carrega<strong>da</strong>s as imagens em memória, a primeira tela <strong>do</strong> <strong>jogo</strong> a ser visualiza<strong>da</strong> é arepresenta<strong>da</strong> na Figura 21..Figura 21 – Inician<strong>do</strong> <strong>jogo</strong>Para criação desta janela foi implementa<strong>do</strong> o méto<strong>do</strong> desenhaTelaJogo(Graphics g).Este tem a funcionali<strong>da</strong>de de apagar a janela principal e escrever o nome <strong>do</strong> <strong>jogo</strong> no topo <strong>da</strong>tela <strong>do</strong> dispositivo celular. O Quadro 11 demonstra o código pertencente a este méto<strong>do</strong>.Quadro 11 – Méto<strong>do</strong> mostrar a tela inicial <strong>do</strong> protótipo01 private void desenhaTelaJogo(Graphics g){02 g.setColor(corBranca);03 g.fillRect(0,0, this.laguraTela, this.alturaTela);0405 g.drawImage(tabuleiro, 30, 35, Graphics.TOP|Graphics.LEFT);06 g.drawImage(vitoriaX, 1, 0,Graphics.TOP|Graphics.LEFT);07 g.drawImage(vitoriaO, 200, 0,Graphics.TOP|Graphics.LEFT);0809 g.setColor(corPreta);// define a cor preta1011 String qtdVitoriasX = new Integer(this.vitoriasX).toString();12 g.drawString(qtdVitoriasX ,15,0,Graphics.TOP|Graphics.LEFT);1314 String qtdVitoriasO = new Integer(this.vitoriasO).toString();15 g.drawString(qtdVitoriasO ,190,0,Graphics.TOP|Graphics.LEFT);1617 situacao = TELA_ANDAMENTO_JOGO;28 }


73Conforme o Quadro 11 na linha 2 é defini<strong>da</strong> a cor de fun<strong>do</strong> <strong>da</strong> tela como sen<strong>do</strong> branca.Na linha seguinte é desenha<strong>do</strong> um retângulo branco em to<strong>da</strong> a área <strong>do</strong> visor <strong>do</strong> celularesconden<strong>do</strong> assim a imagem <strong>da</strong> tela inicial. Na linha 5 é desenha<strong>da</strong> a imagem <strong>do</strong> tabuleiro.Na linha 6 é desenha<strong>do</strong> um círculo vermelho na parte superior direita <strong>do</strong> dispositivo, sen<strong>do</strong> napróxima apresenta<strong>da</strong> a imagem de um círculo azul na parte superior esquer<strong>da</strong>. Estessímbolos representam o número de vitórias de ca<strong>da</strong> joga<strong>do</strong>r. Na linha 9 a cor preta é defini<strong>da</strong><strong>para</strong> que os textos que serão escritos apareçam na tela <strong>do</strong> dispositivo celular. As linha 11 e 12mostram a quanti<strong>da</strong>de de vezes que o símbolo vermelho ganhou, enquanto as linhas 14 e 15mostram a quanti<strong>da</strong>de de vezes que o símbolo azul ganhou. Após a exibição <strong>da</strong> imagem, avariável situacao recebe o valor <strong>da</strong> constante TELA_ANDAMENTO_JOGO. É através destavariável que será identifica<strong>do</strong> em que momento encontra-se o <strong>jogo</strong> (início, an<strong>da</strong>mento ou fim).Para o usuário marcar uma determina<strong>da</strong> posição, foi estabeleci<strong>do</strong> um padrão onde aposição <strong>do</strong>s dígitos existentes no dispositivo celular é correspondente a posição existente notabuleiro <strong>do</strong> <strong>jogo</strong>. Este padrão foi desenvolvi<strong>do</strong> levan<strong>do</strong> em consideração que o <strong>jogo</strong> propostopossa ser executa<strong>do</strong> em qualquer dispositivo que possua bluetooth. Caso fosse utiliza<strong>do</strong> asteclas direcionais <strong>do</strong> tecla<strong>do</strong>, celulares que não possuem estas teclas não poderiam executaro protótipo.Quan<strong>do</strong> o usuário deseja efetuar sua joga<strong>da</strong> em uma determina<strong>da</strong> posição, a aplicaçãoverifica se a mesma não se encontra marca<strong>da</strong>. Caso esta premissa seja ver<strong>da</strong>deira, o símboloserá visualiza<strong>do</strong> na posição escolhi<strong>da</strong>. A Figura 22 demonstra como ficaria o tabuleiro caso aposição 1 fosse escolhi<strong>da</strong> pelo usuário representa<strong>do</strong> pelo símbolo vermelho, sen<strong>do</strong> que <strong>para</strong>isso deve ser pressiona<strong>da</strong> a tecla “1” no dispositivo celular.Figura 22 - Posição sinaliza<strong>da</strong> no <strong>jogo</strong>


74Para se ter o controle lógico <strong>do</strong> <strong>jogo</strong>, ou seja, saber quais as posições encontram-semarca<strong>da</strong>s, foi cria<strong>do</strong> um vetor de caracteres onde o seu índice informa a posição e os valoresconti<strong>do</strong>s neste vetor. Estes podem ser “n”, “x”, “o”, onde o valor “n” significa que a posição nãose encontra marca<strong>da</strong>, o valor “x” significa que a posição já foi ocupa<strong>da</strong> pelo símbolo vermelho,e “o” representan<strong>do</strong> que a posição encontra-se marca<strong>da</strong> pelo símbolo azul. O Quadro 12demonstra como é feita a verificação <strong>da</strong>s joga<strong>da</strong>s.Quadro 12 – Méto<strong>do</strong> responsável em executar uma joga<strong>da</strong>01 private void executarJoga<strong>da</strong>(Graphics g){0203 if (tecla == KEY_NUM1)04 this.posicaoAtual = 1;05 else if (tecla == KEY_NUM2)06 this.posicaoAtual = 2;07 else if (tecla == KEY_NUM3)08 this.posicaoAtual = 3;09 else if (tecla == KEY_NUM4)10 this.posicaoAtual = 4;11 else if (tecla == KEY_NUM5)12 this.posicaoAtual = 5;13 else if (tecla == KEY_NUM6)14 this.posicaoAtual = 6;15 else if (tecla == KEY_NUM7)16 this.posicaoAtual = 7;17 else if (tecla == KEY_NUM8)18 this.posicaoAtual = 8;19 else if (tecla == KEY_NUM9)20 this.posicaoAtual = 9;2122 if ((posicaoSimbolo[posicao] != 'x') ||23 (posicaoSimbolo[posicao] != 'o')){2425 if (servi<strong>do</strong>r == true)26 posicaoSimbolo[this.posicaoAtual] = 'x';25 else26 posicaoSimbolo[this.posicaoAtual] = 'o';Inicialmente, <strong>da</strong> linha 3 até a 19 são feitas às com<strong>para</strong>ções <strong>para</strong> saber qual tecla foipressiona<strong>da</strong> pelo usuário. Quan<strong>do</strong> uma <strong>da</strong>s premissas for ver<strong>da</strong>deira, a variável posicaoAtualreceberá o valor correspondente a posição que o dígito representa <strong>para</strong> o <strong>jogo</strong>. Na linha 22 éverifica<strong>do</strong> se a posição informa<strong>da</strong> pelo usuário não se encontra marca<strong>da</strong>. Caso isso sejaver<strong>da</strong>deiro é verifica<strong>do</strong> se quem está jogan<strong>do</strong> é o servi<strong>do</strong>r ou o cliente <strong>da</strong> aplicação. Caso sejao servi<strong>do</strong>r, o vetor de controle receberá o valor ‘x’ na posição informa<strong>da</strong>. Caso contrárioreceberá o valor ‘o’.Também dentro deste méto<strong>do</strong> é verifica<strong>do</strong> se o <strong>jogo</strong> é multi-joga<strong>do</strong>r ou único joga<strong>do</strong>r.Caso seja multi-joga<strong>do</strong>r, a marcação feita pelo usuário deve ser envia<strong>da</strong> ao outro dispositivo.


75Caso seja único-joga<strong>do</strong>r, após a marcação <strong>do</strong> usuário a aplicação deve efetuar sua joga<strong>da</strong>. OQuadro 13 demonstra como é executa<strong>do</strong> tal procedimento.Quadro 13 – Joga<strong>da</strong>s Multi-joga<strong>do</strong>r01 if (tipoJogo == MULTI_JOGADOR) {02 if (servi<strong>do</strong>r)03 setSimbolo(simboloX, g, this.posicaoAtual);04 else05 setSimbolo(simboloO, g, this.posicaoAtual);06 bloquearTecla<strong>do</strong> = true;07 conexao.send(posicaoAtual);08 verificaGanha<strong>do</strong>r(g);09 }A variável tipoJogo é seta<strong>da</strong> quan<strong>do</strong> o usuário escolhe o tipo <strong>do</strong> <strong>jogo</strong> (1P x 2P). Caso ovalor desta variável seja 1, ou seja, o valor <strong>da</strong> constante MULTI_JOGADO, indican<strong>do</strong> que éum <strong>jogo</strong> multi-usuário. Então na linha 2 é verifica<strong>do</strong> se quem <strong>jogo</strong>u foi o servi<strong>do</strong>r. Caso seja,através <strong>do</strong> méto<strong>do</strong> setSimbolo(Image símbolo, Graphics g, int posicao) é desenha<strong>do</strong> osímbolo vermelho na posição deseja<strong>da</strong>. Caso contrário, é desenha<strong>do</strong> o símbolo azul nestaposição. Após este procedimento, na linha 7 a variável bloquearTecla<strong>do</strong> recebe o valor true,indican<strong>do</strong> que enquanto esta variável for ver<strong>da</strong>deira, qualquer tecla pressiona<strong>da</strong> pelo usuárioserá ignora<strong>da</strong>. Na linha 9 é envia<strong>da</strong> a posição que foi seleciona<strong>da</strong> <strong>para</strong> o outro dispositivo e ométo<strong>do</strong> verifica ganha<strong>do</strong>r é aciona<strong>do</strong>. Este méto<strong>do</strong> identifica se houve algum ganha<strong>do</strong>r eincrementa o número de vitórias <strong>para</strong> o ganha<strong>do</strong>r. Seu funcionamento será descritoposteriormente.Caso a aplicação seja executa<strong>da</strong> com um único joga<strong>do</strong>r, é necessário que após ousuário fazer sua joga<strong>da</strong>, a aplicação execute a sua. Neste senti<strong>do</strong>, há necessi<strong>da</strong>de que aescolha <strong>da</strong> posição seja aleatória, sen<strong>do</strong> <strong>para</strong> tanto utiliza<strong>do</strong> o código apresenta<strong>do</strong> no Quadro14.Quadro 14 – Joga<strong>da</strong> único joga<strong>do</strong>r01 if (tipoJogo == UNICO_JOGADOR) {02 setSimbolo(simboloAtual, g, this.posicaoAtual);0304 if (verificaGanha<strong>do</strong>r(g) == false) {05 if ((to<strong>da</strong>sPosicaoMarca<strong>da</strong>() == false)) {06 Ran<strong>do</strong>m ran<strong>do</strong>m = new Ran<strong>do</strong>m();07 int posicao_comp = 0;0809 <strong>do</strong>{10 posicao_comp = ran<strong>do</strong>m.nextInt(9);11 }while((posicaoSimbolo[posicao] != 'x') ||23 (posicaoSimbolo[posicao] != 'o'));1213 setSimbolo(this.simboloO, g, posicao_comp);14 posicaoSimbolo[posicao_comp] = 'o';15 verificaGanha<strong>do</strong>r(g);16 }17 }18 }


76Conforme se observa no Quadro 14,, na linha 2 é marca<strong>da</strong> a joga<strong>da</strong> executa<strong>da</strong> pelousuário. Na linha 4 é verifica<strong>do</strong> se o usuário não ganhou o <strong>jogo</strong>. Caso esta premissa sejaver<strong>da</strong>deira, é utiliza<strong>do</strong> o objeto ran<strong>do</strong>m <strong>da</strong> classe Ra<strong>do</strong>m <strong>para</strong> escolher uma posição aleatória<strong>para</strong> que a aplicação faça sua escolha. Porém, a posição retorna<strong>da</strong> na linha 10 podeencontrar-se marca<strong>da</strong>. Para não deixar que a aplicação selecione uma posição que já estejaocupa<strong>da</strong>, é feito um laço até que a posição escolhi<strong>da</strong> esteja disponível. Após esta verificação,na linha 13 é desenha<strong>do</strong> o símbolo azul na posição váli<strong>da</strong>, a qual é resultante <strong>do</strong> méto<strong>do</strong>getNextInt(int n). Na linha seguinte é informa<strong>do</strong> <strong>para</strong> o vetor posicaoSimbolo qual foi aposição sinaliza<strong>da</strong> pela aplicação e então verifica<strong>do</strong> se a aplicação não venceu o <strong>jogo</strong>.Para identificar o ganha<strong>do</strong>r <strong>do</strong> <strong>jogo</strong>, como descrito anteriormente, foi utiliza<strong>do</strong> o méto<strong>do</strong>verificaGanha<strong>do</strong>r(Graphics g). Para dissertar sobre este méto<strong>do</strong> foi dividi<strong>do</strong> em duas partes oQuadro 15 e o Quadro 16. No primeiro Quadro é visualiza<strong>do</strong> como é realiza<strong>do</strong> <strong>para</strong> encontraro ganha<strong>do</strong>r. No outro, como é mostra<strong>do</strong> este ganha<strong>do</strong>r na tela.Quadro 15 – Méto<strong>do</strong> utiliza<strong>do</strong> <strong>para</strong> encontrar o ganha<strong>do</strong>r <strong>do</strong> <strong>jogo</strong>01 private boolean verificaGanha<strong>do</strong>r(Graphics g){02 char simbolo_ganha<strong>do</strong>r = 'n';0304 // -- Verifican<strong>do</strong> ganha<strong>do</strong>r nas linhas horizontais05 if ((this.posicaoSimbolo[1] == this.posicaoSimbolo[2]) &&06 (this.posicaoSimbolo[1] == this.posicaoSimbolo[3]))07 simbolo_ganha<strong>do</strong>r = this.posicaoSimbolo[1];08 else if ((this.posicaoSimbolo[4] == this.posicaoSimbolo[5]) &&09 (this.posicaoSimbolo[4] == this.posicaoSimbolo[6]))10 simbolo_ganha<strong>do</strong>r = this.posicaoSimbolo[4];11 else if ((this.posicaoSimbolo[7] == this.posicaoSimbolo[8]) &&12 (this.posicaoSimbolo[7] == this.posicaoSimbolo[9]))13 simbolo_ganha<strong>do</strong>r = this.posicaoSimbolo[7];1415 //-- verifican<strong>do</strong> ganha<strong>do</strong>r nas linhas verticais16 else if ((this.posicaoSimbolo[1] == this.posicaoSimbolo[4]) &&17 (this.posicaoSimbolo[1] == this.posicaoSimbolo[7]))18 simbolo_ganha<strong>do</strong>r = this.posicaoSimbolo[1];19 else if ((this.posicaoSimbolo[2] == this.posicaoSimbolo[5]) &&20 (this.posicaoSimbolo[2] == this.posicaoSimbolo[8]))21 simbolo_ganha<strong>do</strong>r = this.posicaoSimbolo[2];22 else if ((this.posicaoSimbolo[3] == this.posicaoSimbolo[6]) &&23 (this.posicaoSimbolo[3] == this.posicaoSimbolo[9]))24 simbolo_ganha<strong>do</strong>r = this.posicaoSimbolo[3];2526 // -- verifican<strong>do</strong> ganha<strong>do</strong> nas diagonais27 else if ((this.posicaoSimbolo[1] == this.posicaoSimbolo[5]) &&28 (this.posicaoSimbolo[1] == this.posicaoSimbolo[9]))29 simbolo_ganha<strong>do</strong>r = this.posicaoSimbolo[1];30 else if ((this.posicaoSimbolo[3] == this.posicaoSimbolo[5]) &&31 (this.posicaoSimbolo[3] == this.posicaoSimbolo[7]))32 simbolo_ganha<strong>do</strong>r = this.posicaoSimbolo[3];


77Na linha 1 a variável símbolo_ganha<strong>do</strong>r recebe o valor “n” <strong>para</strong> indicar que a princípionão existe nenhum vence<strong>do</strong>r. Após isso, são realiza<strong>da</strong>s to<strong>da</strong>s as combinações possíveis <strong>para</strong>indicar se houve algum ganha<strong>do</strong>r. Para entender como é realiza<strong>do</strong> este procedimento a Figura23 demonstra que o joga<strong>do</strong>r correspondente ao símbolo vermelho ganhou o <strong>jogo</strong>. Atravésdesta joga<strong>da</strong> será demonstra<strong>do</strong> como é verifica<strong>do</strong> que este joga<strong>do</strong>r obteve a vitória no <strong>jogo</strong>.Figura 23 – Símbolo vermelho ganha o <strong>jogo</strong>Como disserta<strong>do</strong> no capítulo 3, mais precisamente no que se refere as partes quecompõem os <strong>jogo</strong>s, relatou-se sobre suas regras. O estu<strong>do</strong> realiza<strong>do</strong> mostra que as regras <strong>do</strong><strong>jogo</strong> <strong>da</strong> <strong>velha</strong> são o enre<strong>do</strong> <strong>do</strong> <strong>jogo</strong>, sen<strong>do</strong> aplica<strong>da</strong>s na implementação <strong>do</strong> mesmo. Nestesenti<strong>do</strong>, <strong>para</strong> que um joga<strong>do</strong>r obtenha a vitória é necessário que este consiga alinhar trêssímbolos consecutivos no menor número de joga<strong>da</strong>s. Assim, <strong>para</strong> possibilitar que a aplicaçãoidentifique o ganha<strong>do</strong>r foi cria<strong>do</strong> o méto<strong>do</strong> verificaGanha<strong>do</strong>r(Graphics g) que está sen<strong>do</strong>demonstra<strong>do</strong> no Quadro 15. Desta forma, na linha 16 é verifica<strong>do</strong> se o símbolo existente naposição 1 é igual ao símbolo existente na posição 4, e por sua vez é igual ao existente naposição 7. Caso essa premissa seja ver<strong>da</strong>deira, significa que existem três símbolos iguais ealinha<strong>do</strong>s na primeira coluna <strong>do</strong> tabuleiro, conforme demonstra<strong>do</strong> na Figura 23. Então avariável símbolo_ganha<strong>do</strong>r receberá o valor “x” caso esses símbolos sejam vermelhos, e “o”caso sejam azuis.Porém, além <strong>da</strong> possibili<strong>da</strong>de de encontrar um ganha<strong>do</strong>r, a aplicação deve prever apossibili<strong>da</strong>de de to<strong>da</strong>s as posições estarem marca<strong>da</strong>s e não existir nenhum vence<strong>do</strong>r. OQuadro 16 demonstra como é realiza<strong>da</strong> esta verificação e como são exibi<strong>do</strong>s os resulta<strong>do</strong>s <strong>do</strong><strong>jogo</strong> na tela.


78Quadro 16 – Identificação de empate e exibição <strong>do</strong>s resulta<strong>do</strong>s01 if ((simbolo_ganha<strong>do</strong>r == 'n') && (to<strong>da</strong>sPosicaoMarca<strong>da</strong>() == true)) {02 g.drawString("EMPATE!!!",100,230,Graphics.TOP|Graphics.LEFT);03 situacao = TELA_FIM_JOGO;04 }05 else {06 if (simbolo_ganha<strong>do</strong>r == 'x'){07 if (servi<strong>do</strong>r == true)08 g.drawImage(getGanha<strong>do</strong>r(), 200, 230,Graphics.TOP|Graphics.LEFT);09 else10 g.drawImage(getPerde<strong>do</strong>r(), 180, 230,Graphics.TOP|Graphics.LEFT);11 vitoriasX++;12 }13 else if (simbolo_ganha<strong>do</strong>r == 'o'){14 if (servi<strong>do</strong>r == false)15 g.drawImage(getGanha<strong>do</strong>r(), 200, 230,Graphics.TOP|Graphics.LEFT);16 else17 g.drawImage(getPerde<strong>do</strong>r(), 180, 230,Graphics.TOP|Graphics.LEFT);18 vitoriasO++;19 }20 situacao = TELA_FIM_JOGO;Na linha 1 é verifica<strong>do</strong> se o símbolo ganha<strong>do</strong>r é igual a “n” e se to<strong>da</strong>s as posiçõesencontram-se marca<strong>da</strong>s. Para fazer essa verificação foi cria<strong>do</strong> o méto<strong>do</strong>to<strong>da</strong>sPosicaoMarca<strong>da</strong>. Este é composto de um laço que verifica se to<strong>da</strong>s as posições <strong>do</strong> vetorposicaSimbolo são diferentes de “n”. Caso isso seja ver<strong>da</strong>deiro, o retorno deste méto<strong>do</strong> será ovalor true, retornan<strong>do</strong> false em situação contrária. Sen<strong>do</strong> ver<strong>da</strong>deira a com<strong>para</strong>ção realiza<strong>da</strong>na linha 1, será mostra<strong>da</strong> na tela <strong>do</strong> dispositivo celular a mensagem “EMPATE” conformedemonstra a Figura 24.Figura 24 - Ocorrência de um empate no <strong>jogo</strong>Na linha seguinte, a variável situacao recebe o valor <strong>da</strong> constante TELA_FIM_JOGO<strong>para</strong> que a aplicação tenha conhecimento que o <strong>jogo</strong> acabou. Na linha 6 é verifica<strong>do</strong> se osímbolo ganha<strong>do</strong>r é igual ao valor ‘x’. Isso indica que o símbolo vermelho é o vence<strong>do</strong>r <strong>da</strong>parti<strong>da</strong>. Quan<strong>do</strong> isso ocorre, o servi<strong>do</strong>r <strong>do</strong> <strong>jogo</strong> (correspondente aos símbolos vermelhos)


79visualizará na tela <strong>do</strong> celular a imagem correspondente ao ganha<strong>do</strong>r <strong>do</strong> <strong>jogo</strong>, conformedemonstra a Figura 25 item a).a) ganha<strong>do</strong>r b)perde<strong>do</strong>rFigura 25 – Visualização <strong>do</strong> vence<strong>do</strong>r <strong>do</strong> <strong>jogo</strong>Como o joga<strong>do</strong>r correspondente ao símbolo vermelho venceu o <strong>jogo</strong>, o joga<strong>do</strong>r cliente(correspondente ao símbolo azul) receberá a imagem equivalente ao perde<strong>do</strong>r <strong>do</strong> <strong>jogo</strong>, quecorresponde a Figura 24 item b). Após isso, na linha 11 será incrementa<strong>do</strong> o número devitórias <strong>do</strong> joga<strong>do</strong>r correspondente aos símbolos vermelhos. Na linha 13 é feita a com<strong>para</strong>çãoinversa, ou seja, se o símbolo ganha<strong>do</strong>r é igual ‘o’, indican<strong>do</strong> que o ganha<strong>do</strong>r foi o joga<strong>do</strong>rcorrespondente aos símbolos azuis. Então no dispositivo cliente será visualiza<strong>da</strong> a imagemcorrespondente ao vence<strong>do</strong>r e no dispositivo servi<strong>do</strong>r será apresenta<strong>da</strong> a Figura <strong>do</strong> perde<strong>do</strong>r<strong>do</strong> <strong>jogo</strong>. Posteriormente, na linha 18 será incrementa<strong>do</strong> o número de vitórias <strong>do</strong> <strong>jogo</strong>. Por fim,na linha 20 a variável situacao recebe o valor <strong>da</strong> constante TELA_FIM_JOGO indican<strong>do</strong> que o<strong>jogo</strong> terminou.5.3 CONCLUSÃO DO CAPÍTULOAtravés <strong>da</strong> implementação <strong>do</strong> protótipo proposto foi possível adquirir conhecimentosobre a utilização <strong>da</strong> tecnologia J2ME e a tecnologia de comunicação bluetooth. Também sepode aplicar os conceitos sobre partes e características <strong>do</strong>s <strong>jogo</strong>s, os quais foramapresenta<strong>do</strong>s no capítulo 3.Além disso, foi possível verificar que apesar <strong>da</strong> complexi<strong>da</strong>de <strong>do</strong> processo decomunicação utilizan<strong>do</strong> bluetooth, o protótipo teve resulta<strong>do</strong>s satisfatórios, não apresentan<strong>do</strong>demora na transmissão <strong>do</strong>s <strong>da</strong><strong>do</strong>s, evitan<strong>do</strong> que o usuário desista <strong>da</strong> diversão. Estatransmissão foi testa<strong>da</strong> em um emula<strong>do</strong>r e foi possível constatar que quan<strong>do</strong> uma joga<strong>da</strong> é


80executa<strong>da</strong>, a sinalização ocorre de forma quase que instantânea em ambos os celulares queestão participan<strong>do</strong> <strong>do</strong> <strong>jogo</strong>.Outra constatação que foi realiza<strong>da</strong> é que uma parti<strong>da</strong> demora em média entre um e<strong>do</strong>is minutos. Porém é importante ressaltar que este tempo depende muito <strong>do</strong>s usuários queestão jogan<strong>do</strong>, pois ca<strong>da</strong> um pode esperar o tempo que achar conveniente <strong>para</strong> sinalizar suajoga<strong>da</strong>.Como cita<strong>do</strong> anteriormente, os teste foram executa<strong>do</strong>s em um emula<strong>do</strong>r. Foi incessantea tentativa de executar a aplicação em um dispositivo celular, porém não foi obti<strong>do</strong> êxito.Durante o estu<strong>do</strong> realiza<strong>do</strong> na tentativa de executar o <strong>jogo</strong> em um celular, foi constata<strong>do</strong> que énecessária a utilização de pacotes desenvolvi<strong>do</strong>s pelos fabricantes <strong>do</strong>s aparelhos <strong>para</strong> utilizarse<strong>do</strong> bluetooth como forma de comunicação. Contu<strong>do</strong>, os mesmos não foram adquiri<strong>do</strong>s,além de não encontrar <strong>do</strong>cumentação referente a estes pacotes.Neste senti<strong>do</strong>, a tecnologia J2ME demonstrou-se robusta, por her<strong>da</strong>r conceitosimportantes <strong>da</strong> linguagem Java como a orientação a objeto, o que facilita a organização <strong>do</strong>código, bem como evita reescrever rotinas desnecessárias.


6 CONCLUSÃOO presente trabalho apresentou três tecnologias <strong>para</strong> desenvolvimento de aplicações<strong>para</strong> <strong>dispositivos</strong> celulares sen<strong>do</strong> elas Java 2 Micro Edition (J2ME), BREW e SYMBIAN OS.Além destas foram relata<strong>da</strong>s às tecnologias Bluetooth, Wireless Application Protocol (WAP) eInfravermelho que são utiliza<strong>da</strong>s <strong>para</strong> comunicação destes <strong>dispositivos</strong>. Através <strong>do</strong> estu<strong>do</strong>realiza<strong>do</strong> sobre as mesmas foi possível definir quais delas apresentavam as melhorescaracterísticas <strong>para</strong> o desenvolvimento <strong>do</strong> protótipo. Com isso foi utiliza<strong>da</strong> a tecnologia J2ME<strong>para</strong> desenvolvimento <strong>do</strong> protótipo, devi<strong>do</strong> à facili<strong>da</strong>de de aprendiza<strong>do</strong> e a portabili<strong>da</strong>deexistente na linguagem. No que se refere à conexão foi usa<strong>do</strong> Bluetooth. Esta escolha foi feitalevan<strong>do</strong> em consideração que não se faz necessário uma opera<strong>do</strong>ra de celular <strong>para</strong> prover acomunicação entre os <strong>dispositivos</strong>, como é o caso <strong>da</strong> tecnologia WAP. Além disso, a mesmanão exige que os celulares mantenham-se alinha<strong>do</strong>s durante a execução <strong>do</strong> <strong>jogo</strong> o que nãoacontece com a tecnologia de infravermelho.Nesse senti<strong>do</strong> o estu<strong>do</strong> demonstrou que é possível estabelecer uma conexão Bluetoothentre <strong>do</strong>is aparelhos celulares de maneira simples e satisfatória, obten<strong>do</strong> sucesso no que sepropôs o presente trabalho.O estu<strong>do</strong> sobre a tecnologia J2ME comprovou sua eficiente no desenvolvimento deaplicações <strong>para</strong> <strong>dispositivos</strong> móveis, além de possuir a vantagem <strong>da</strong> portabili<strong>da</strong>de, sen<strong>do</strong> queesta característica não se encontra disponível nas demais tecnologias estu<strong>da</strong><strong>da</strong>s. Além disso,esta é uma versão reduzi<strong>da</strong> <strong>da</strong> linguagem Java e her<strong>do</strong>u um conceito importante como aorientação a objetos. Isso facilitou o entendimento de códigos. Vale ressaltar que a mesma foiprojeta<strong>da</strong> respeitan<strong>do</strong> as limitações existentes nos <strong>dispositivos</strong> móveis se com<strong>para</strong><strong>do</strong> acomputa<strong>do</strong>res pessoais.Além <strong>do</strong>s estu<strong>do</strong>s realiza<strong>do</strong>s sobre tecnologias e formas de comunicação existentes<strong>para</strong> o desenvolvimento de aplicações <strong>para</strong> <strong>dispositivos</strong> móveis, foi necessário adquirirconhecimento sobre as partes e características que compõem um <strong>jogo</strong> e identificá-las no <strong>jogo</strong>proposto. Sem esse conhecimento o processo de codificação <strong>do</strong> protótipo estariacomprometi<strong>do</strong>, devi<strong>do</strong> à dificul<strong>da</strong>de de traduzir as regras <strong>do</strong> <strong>jogo</strong> em um meio virtual.Com isso, o trabalho conseguiu propor uma mo<strong>da</strong>li<strong>da</strong>de de diversão diferente, e não tãousa<strong>da</strong> pelos usuários de aparelhos.Além <strong>da</strong> diversão, o protótipo conseguiu realizar uma conexão destes aparelhos everificar que é possível que tal entretenimento aconteça de forma satisfatória sem que as


82respostas entre uma joga<strong>da</strong> e outra sejam demora<strong>da</strong>s a ponto <strong>do</strong> usuário desistir <strong>do</strong> momentode lazer.6.1 TRABALHOS FUTUROSLevan<strong>do</strong> em consideração o crescente potencial existente no merca<strong>do</strong> <strong>para</strong>desenvolvimento de <strong>jogo</strong>s <strong>para</strong> <strong>dispositivos</strong> móveis, são apresenta<strong>da</strong>s algumas sugestões demelhoramentos e desenvolvimento de trabalhos futuros. São estes:• utilização <strong>da</strong> tecnologia WAP <strong>para</strong> desenvolvimento <strong>do</strong> <strong>jogo</strong>, com o intuito decom<strong>para</strong>r com bluetooth. Assim poder-se-á definir a melhor forma decomunicação a ser utiliza<strong>da</strong> no desenvolvimento de <strong>jogo</strong>s <strong>para</strong> celulares. Éimportante ressaltar que <strong>para</strong> utilizar a tecnologia WAP faz-se necessário o usode uma opera<strong>do</strong>ra <strong>para</strong> efetuar a conexão <strong>do</strong>s <strong>dispositivos</strong>, o que pode acarretara existência de custo <strong>para</strong> executar o <strong>jogo</strong>;• desenvolvimento de um <strong>jogo</strong> <strong>para</strong> <strong>dispositivos</strong> móveis onde a comunicaçãotenha uma carga maior sobre a rede, ou seja, um <strong>jogo</strong> onde <strong>do</strong>is usuáriospossam executar suas joga<strong>da</strong>s sem a necessi<strong>da</strong>de de uma seqüência. Acomplexi<strong>da</strong>de desta implementação será muito maior, pois utiliza novas técnicasde programação como threads. Vale mencionar que a tecnologia J2ME já possuia classe Thread, a qual apresenta to<strong>da</strong>s as premissas necessárias <strong>para</strong> amanipulação <strong>da</strong>s mesmas;• utilizar outra tecnologia de programação <strong>para</strong> desenvolvimento <strong>do</strong> protótipo,como BREW ou Symbian OS, a fim de verificar qual delas apresenta melhorperformance na execução <strong>do</strong> protótipo. Porém, as tecnologias Symbian OS eBREW são proprietárias, o que pode acarretar em um custo maior <strong>para</strong> odesenvolvimento <strong>do</strong> protótipo, além de existir dificul<strong>da</strong>de na aquisição <strong>da</strong><strong>do</strong>cumentação por não serem tão difundi<strong>da</strong>s quanto J2ME. Contu<strong>do</strong>, estastecnologias têm uma característica importante: são linguagens nativas e o seudesempenho podem ser superiores a linguagem J2ME.• efetuar testes em um dispositivo celular a fim de obter resulta<strong>do</strong>s reais quanto acomunicação e transmissão <strong>do</strong>s <strong>da</strong><strong>do</strong>s. Como foi relata<strong>do</strong> na conclusão <strong>do</strong>


83capítulo 5, os testes executa<strong>do</strong>s no presente trabalho foram realiza<strong>do</strong>s em umemula<strong>do</strong>r e os resulta<strong>do</strong>s obti<strong>do</strong>s em testes em aparelhos celulares podemapresentar diferenças se com<strong>para</strong><strong>do</strong>s aos realiza<strong>do</strong>s. Uma fonte importante <strong>para</strong>aquisição <strong>da</strong> <strong>do</strong>cumentação sobre a implementação <strong>do</strong> bluetooth em <strong>dispositivos</strong>celulares foi adquiri<strong>da</strong> em www.bluetooth.org. Neste mesmo endereço eletrônicofoi adquiri<strong>do</strong> conhecimento de que ca<strong>da</strong> dispositivo possui pacotes específicos<strong>para</strong> implementação <strong>da</strong> conexão bluetooth, o que inviabilizou os teste emcelulares no presente trabalho.


7 REFERÊCIASAs Dobras <strong>do</strong> Hakama. Disponível em: .Acesso em: 18 set. 2005.BARROS, Tiago Guedes Ferreira. SYMBG(R)AF – symbian games framework. Monografia(Bacharela<strong>do</strong> em Ciência <strong>da</strong> Computação). Universi<strong>da</strong>de Federal de Pernambuco. Recife,Agosto de 2003.BATTAIOLA, André Luiz; et al. Desenvolvimento <strong>da</strong> interface de um softwareeducacional com base em interfaces de <strong>jogo</strong>s. 2002. Disponível em. Aceso 22 deSet. 2005.BATTAIOLA, André Luiz; et. al. Desenvolvimento de <strong>jogo</strong>s em computa<strong>do</strong>res ecelulares. Outubro de 2001. Disponível em. Acesso em 07 de Nov2005.BATTAIOLA, Prof. Dr. André Luiz. Jogos por computa<strong>do</strong>r – histórico, relevânciatecnológica e merca<strong>do</strong>lógica, tendências e técnicas de implementação. 2000 Disponívelem: < http://www.design.ufpr.br/lai/Publicacoes/JogosComputa<strong>do</strong>res.pdf>. Acesso em 12Ago. 2005.BORGES, Ana Cláudia Da Costa et. al, Tecnologia em redes móveis – 3G/4G. Tese(Mestra<strong>do</strong>) - Instituto de Pesquisas Tecnológicas <strong>do</strong> Esta<strong>do</strong> de São Paulo, São Paulo, 2005.Disponível em: .Acesso em: 15 nov. 205.BRITO, Robison Cris. Desenvolvimento de aplicativos <strong>para</strong> celular – java 2 microedition. Disponível em:.Acesso em: 15 nov. 2005.CÂMARA, Márcio Alex Reis; JUNIOR, Nehemias Guedes Valentim; COSTA, Tiago ViniciusVolpato <strong>da</strong>. Construção de aplicações wireless <strong>para</strong> a WEB. Monografia (Bacharel e


85Ciência <strong>da</strong> Computação). Universi<strong>da</strong>de Da Amazônia, Belém, 2003. Disponível em :. Acesso em : 30 Set. 2005.DIAS, Klessis Lopes; FONTES, Wescley Pimentel. Desenvolvimento de aplicações <strong>para</strong><strong>dispositivos</strong> móveis utilizan<strong>do</strong> a plataforma J2ME. Monografia (Bacharel e Ciência <strong>da</strong>Computação). Universi<strong>da</strong>de Federal <strong>do</strong> Pará, Belém, 2003. Disponível em:. Acesso em 3 Set. 2005.FIGUEIREDO, Carlos Maurício Serôdio; NAKAMURA, Eduar<strong>do</strong>. Computação móvel:novas oportuni<strong>da</strong>des e novos desafios. T&C Amazônia, Ano 1, nº2, Junho 2003.Disponível em . Acesso em:30 Ago. 2005.JUNIOR, Wanderley Ravagnani. Bluetooth. Setembro de 2001. Disponível em:.Acesso 18 Out. 2005.LAUDON, Kenneth C.; LAUDON, Jane Price. Sistemas de informação. Tradução DaltonConde de Alencar. Rio de Janeiro: LTC, 1999.LINS, Anthony José Da Cunha Carneiro. Desenvolvimento de <strong>jogo</strong>s inteligentes.Monografia (Bacharel em Sistemas de Informação) - Facul<strong>da</strong>de Integra<strong>da</strong> <strong>do</strong> Recife, Recife2003. Disponível em:. Acesso em 21 deSet. 2005.MAGALHÃES, Keuller; Crian<strong>do</strong> aplicações J2ME com eclipse. Disponível em . Acesso 26 de Set.2005.MARTIN, James; ODELL, James J. Análise de projeto orienta<strong>do</strong>s a objeto. Tradução:José Carlos Barbosa <strong>do</strong>s Santos. São Paulo, Makron Books, 1995.MEGA WEB HOSTING. Disponível em:. Acesso em: 15 nov. 2005.MIRANDA, Renato Barbosa; MARCONDES, Valeska Pivoto Patta. Prime: uma soluçãoJava <strong>para</strong> acesso móvel a informações utilizan<strong>do</strong> GSM/GPRS. Disponível em:. Acesso em 01 Out. 2005.


86MOON, Peter. O futuro é agora. IstoÉ, São Paulo, n.1579, janeiro 2000. Disponível em. Acesso em: 29 Ago. 2005.NOGUEIRA, Wallace Franco; FILHO, Emerson Cavalcante Loureiro; ALMEIDA, HyggoOliveira de. Plataformas <strong>para</strong> desenvolvimento de <strong>jogo</strong>s <strong>para</strong> celulares. Abril de 2005.Disponível em : . Acesso em 07 Nov.2005.PALUDO, Lauriana. Um estu<strong>do</strong> sobre as tecnologias java de desenvolvimento deaplicações móveis. Monografia (Bacharel e Ciência <strong>da</strong> Computação). Universi<strong>da</strong>de Federalde Santa Catarina (UFSC), Florianópolis, Agosto de 2003. Disponível em . Acesso em: 14Out. 2005.PEKUS Cons. E Desenvolvimento lt<strong>da</strong>. Dispositivos móveis, São Paulo, 2002. Disponívelem: . Acesso em: 29 Ago. 2005.PINHEIRO, Cristiano; J2ME – Java <strong>para</strong> os portáteis. Artigo publica<strong>do</strong> dia 18 de novembrode 2003. Disponível em . Acessoem 26 de Set. 2005.PRIESS, Werner. Mecanismos de escalonamento com quali<strong>da</strong>de de Serviço em redescom tecnologia bluetooth. Dissertação (Mestra<strong>do</strong> em informática), Universi<strong>da</strong>de Federal<strong>do</strong> Rio de Janeiro - UFRJ, Rio de Janeiro, 2003. Disponível em: . Acesso em: 18 Out.2005.REZENDE, Denis Alcides; ABREU, Aline França de. Tecnologia <strong>da</strong> informação aplica<strong>da</strong> asistemas de informação empresariais: o papel estratégico <strong>da</strong> informação e <strong>do</strong>ssistemas de informação nas empresas. São Paulo: Atlas, 2001.REZENDE, Pedro Antônio Doura<strong>do</strong> de. Segurança <strong>do</strong> wireless aplication protocol (WAP).Agosto de 2003. Disponível em: .Acesso em 29 Out. 2005.SABINO, Vanessa Cristina. Game API simplici<strong>da</strong>de e poder em <strong>jogo</strong>s <strong>para</strong> celulares.Java Magazine. Edição 10, Ano 2, v.18, n.1. 2003.


87SILVA, Abraão Balbino e; MOREIRA, Luiz Roberto Borges. Telemetria em sistemas decomunicação móvel celular. Monografia (Engenheiro Engenharia de Redes deComunicação). Universi<strong>da</strong>de de Brasília, Facul<strong>da</strong>de de Tecnologia, Brasília, 2005. Diponívelem < http://www.labredes.unb.br/PFG.162004.pdf >. Acesso 18 Nov. 2005.SOARES, Luiz Fernan<strong>do</strong> Gomes; LEMOS, Gui<strong>do</strong>; COLCHER, Sérgio. Redes decomputa<strong>do</strong>res. Das LANs MANs e WAN’s às redes ATM. Rio de Janeiro: Campus, 1995.SZMIT, Ricar<strong>do</strong>. Programação orienta<strong>da</strong> <strong>para</strong> ojetos com turbo pascal 6.0. – Rio deJaneiro: LCT-Livros Técnicos e Científicos Ed., 1993.TANEMBAUM, Andrew.S. Redes de computa<strong>do</strong>res. Rio de Janeiro: Campus, 1997. 4ªedição.TONIAZZO, José Carlo. Protótipo <strong>para</strong> coleta e transmissão de <strong>da</strong><strong>do</strong>s de produtivi<strong>da</strong>dena construção civil utilizan<strong>do</strong> <strong>dispositivos</strong> móveis. Monografia (Bacharela<strong>do</strong> em Ciência<strong>da</strong> Computação) Universi<strong>da</strong>de Comunitária Regional de Chapecó, Chapecó 2005.TORRES, Grabiel. Redes de computa<strong>do</strong>res curso completo. Rio de Janeiro: Ed. AxcelBooks <strong>do</strong> Brasil Editora, 2001.UOL. História <strong>do</strong> videogame. 2004. Disponível em . Acesso em: 5 Set. 2005.Wikipedia, La Enciclopedia Librem. Holografia, 2005. Disponível em:. Acesso em 18 Nov. 2005.ZEINDIN, Denise Carla A et al. A tecnologia <strong>do</strong> futuro Wi-Fi (Wireless Fidelity). FURB -Universi<strong>da</strong>de Regional de Blumenau, 2003. Disponível em:. Acesso em:30 Ago. 2005.RICARTE, Ivan Luiz Marques. Programação orienta<strong>da</strong> a objetos: uma abor<strong>da</strong>gem comjava, 2001. Disponível em:. Acesso em: 10 Abr.2006

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!