Home

universidade do vale do itajaí centro de ciências tecnológicas da

image

Contents

1. Cliente envia mensagem para o servidor Servidor recebe a mensagem Se tiver mais mensagens Servidor manda retorno para o cliente Cliente processa retorno Acabou as ypensagens Finaliza conex o Figura 35 Diagrama de Estado Comunica o Entre Computadores 79 A 3 DIAGRAMA DE SEQU NCIA O jogador informa o endere o do servidor para o cliente logo o servidor deve responder informando que est pronto para receber e enviar mensagens Em seguida o cliente e o servidor ficam trocando mensagens e assim se atualizando Ap s todas as mensagens forem trocadas o cliente finaliza a conex o 1 Informa IP Servidor 1 1 Consulta Servidor 4 1 1 1 Retorna dizendo que est on line 1 2 Solicita o a 1 2 1 Resposta da solicita o 1 3 Fecha conex o y Figura 36 Diagrama de Seq ncia Comunica o Cliente Servidor 80 A 4 ARVORES DE DECISAO A 4 1 Arvore Gen rica A rvore gen rica serve para ser utilizada pelos decis o pr pria a Figura 37 ilustra isso objetivos que n o possuem uma rvore de Repor ex rcitos N o Sim para repor Tem territ ria com mais de Sim gt 1 ex rcito Tem territ rio que faz divisa com territ rio Terminou DIM pm Nay Inimigo e com menos de tr s ex rcitos Faz divisa com territ rio inimigo Sim Nad
2. Figura 14 rvore de Decis o Atacar Outro Ex rcito Reposi o A Figura 15 apresenta a segunda parte da rvore de decis o do objetivo de Atacar Outro Ex rcito Essa parte mostra as regras para que seja efetuado um ataque O Objetivo Atacar Outro Ex rcito Repor Ex rcitos Tem lugar quo fa a divisa com o jogador Tem lugar pr ximo do inimigo que A quantidade de ex rcitos maior que do inimigo A quantidade de ex rcitos maior que a do inimigo Figura 15 rvore de Decis o Atacar Outro Ex rcito Atacar A Figura 16 apresenta a terceira parte da rvore de decis o do objetivo de Atacar Outro Ex rcito Essa parte mostra as regras para a movimenta o de ex rcitos no final da rodada O Objetivo Atacar Outro Ex rcito Repor Ex rcitos Tem territ rio que pode ser atacado e que tenha 1 ex rcito inimigo Tem territ rio que pode ser atacado e com menos de tr s ex rcitos Da pra repassar para um territ rio que fa a divisa com o ex rcito Nad Da pra repassar para um territ rio mais pr ximo do inimigo Repassar o m ximo poss vel que pode ficar que pode ficar com tr s ex rcitos Nao N Tem territ rio com poucos ex rcitos e pode ser atacado Repassar o m ximo poss vel Passar o m ximo poss vel
3. AgentController agent controller container controller createNewAgent jogador br com tcc war Agente Componentes JogadorVirtual new Object new Objetct agent controller start agent controller activate Figura 18 C digo para criar e iniciar um agente JADE Para a implementa o foram criadas duas classes Figura 19 onde a classe Agente estende funcionalidades da classe Agent do framework e tamb m a classe ComportamentoPadr o que estende as funcionalidades da classe SimpleBehaviour O sistema trabalha com somente um objeto da classe Agente n o importando quantos jogadores virtuais foram adicionados ao jogo Como cada jogador executa suas a es no jogo um de cada vez n o h a necessidade de ter v rios agentes um para cada jogador virtual bastando que ao consultar a base de conhecimento seja definida a sua rvore de decis o conforme o seu objetivo Para isso foi criado um m todo no comportamento padr o chamado setArvoreDecisao que atribu do toda a vez que se troca o jogador que est jogando Dessa forma um nico agente gerencia todos os jogadores virtuais do jogo Agente ComportamentoPadrao terminou boolean false decisao Arvore null id jogador atual int 1 setupQ void actiong void setldJogadorAtual id int void getldJogadorAtuald int doneQ boolean setArvoreDecisao arvore Arvore void getArvoreDecisaod Ar
4. System out println JClips getVersion JClips jClips JClips getInstance jClips init jClips addObserver new JClipsExample try URL fileUrl JClipsExample class getResource base conhecimento if fileUrl null throw new FileNotFoundException base conhecimento File file new File new URI fileUrl toString jClips load file getPath jClips reset jClips run jClips executeCommand assert ola mundo jClips run catch Exception e e printStackTrace System err jClips deallocate Figura 20 C digo de Exemplo de Conex o com o JCLIPS Z Ao gerar um arquivo de regras necess rio passar as informa es para as regras como par metros na string que executa a regra jClips executeCommand assert ola mundo Figura 20 As regras s o inclu das em JCLIPS a partir de um arquivo texto onde para isso h uma estrutura previamente definida Figura 21 52 defrule assert result initial fact gt printout t Firing rule assert result crlf assert result The answer to life the universe and everything Figura 21 Regra em JCLIPS Como s o inclu das em um arquivo texto elas ficam fixas tanto as regras quanto os valores que devem ser avaliados nas regras A resolu o para esse problema seria gerar estat sticas no sistema e associa l s a marca es como por exemplo lt QNTDEXER gt onde QNTDEXER o
5. Sim N o Adiciona um ex rcito para o territ rio que tem menos ex rcitos e que faz divisa com territ rio inimigo Adiciona at completar 3 ex rcitos inimigo Transferir o m ximo possivel Tem territ rio que ossa transfenr ex rcitos e n o fa a divisa com territ rio N o Movimentar Zim Nao Tem territ rio com menos de 3 ex rcitos e que faz diviza com territ rio inimigo N o Tem territ rio que fa a diviza com territ rio inimigo e que tenha a quantidade de ex rcitos menor que o inimigo Nad Tem temt rio que Venfica possa transferir territ ex rcitos e n o fa a divida com territ rio inimigo Transferir o m ximo Verifi territ rio outro Figura 37 Arvore de Decis o Arvore Gen rica 81
6. getSimbolos ArrayList lt Simbolo gt Jogador Nome String Exercito Exercito IP long Exercito JogadorHumano boolean Cor String setNome nome String void setExercito exer Exercito void setip ip long void getNome String getExercito Exercito getlp long setCor cor String void getCor String Figura 12 Diagrama de Classes Demais diagramas que expliquem melhor o funcionamento do sistema como os diagramas de atividades de estado e de segii ncia est o descritos nos ap ndices A l AZ e A3 respectivamente 3 1 3 rvore de Decis o A intelig ncia dos agentes representada atrav s de rvores de decis o Essas rvores t m uma estrutura inicial formada pelo objetivo em seguida pela a o que deve ser tomada sendo elas repor ex rcitos no mapa atacar ou movimentar tropas e em seguida as regras para efetuar tal a o Figura 13 45 In cio O Objetivo Atacar Outro Ex rcito Sim Ex rcitos Nac Sim m nia ex rcitos Tem lugar a pala repor que fa a Sim divisa com o WM im Nadi Jogador Tem territ rio que pode ser atacado e que tenha 1 ex rcito ay E inimigo Tem territ rio que faz Terminou divisa com o ex rcito inimigo Tem lugar inimigo j A quantidade pr ximo do in Nagi de ex rcitos inimigo que 0 A Colocar 25 Repor 25 maior que pode
7. public boolean done return getTerminou Retorna se o comportamento terminou ou n o return true se terminou e false se n o terminou Ef public boolean getTerminou return terminou Seta para o comportamente se terminou ou n o param ter terminou true ou n o terminou false TEA public void setTerminou boolean ter terminou ter Figura 17 C digo para o comportamento padr o do agente Conforme a vari vel acao Atual ser executada uma a o ao qual far a consulta na base de conhecimento do agente Para a cria o do agente s o utilizadas classes do JADE que controlam o funcionamento do mesmo Para o funcionamento necess rio utilizar a classe Runtime ProfileImpl que fornecem o local para cria o do agente chamado de container Com essas duas classes instaciadas poss vel criar um ContainerController que serve para criar e agrupar os agentes conforme mostra a Figura 18 Em controller createNew Agente efetivada a cria o do agente onde passado em seus par metros o nome do agente dentro do JADE a classe que serve como base e os argumentos para cria o em seguida o agente iniciado e ativado dessa forma entrando em execu o 50 Runtime runtime Runtime instance Profile profile new ProfileImpl Cria o agente dentro do container de agentes ContainerController container controller runtime createMainContainer profile
8. em cada territ rio ou at o jogador parar a sua jogada e Ap s cada ataque o atacante pode invadir o territ rio conquistado apenas com os ex rcitos que participaram da batalha e que sobreviveram a ela Ao t rmino da jogada o jogador tem a possibilidade de movimentar seus ex rcitos se assim desejar Para isso o jogador pode transferir um ex rcito de um territ rio outro somente se ele fizer divisa ou for ligado por pontilhados sendo que cada ex rcito n o pode ser movimentado mais do que um territ rio por rodada Ao final de sua jogada caso o jogador tenha conquistado algum territ rio concedida a primeira carta territ rio do monte onde deve ser guarda at uma eventual troca Cada carta territ rio traz consigo um s mbolo que pode ser um quadrado c rculo ou tri ngulo A combina o desses s mbolos ou seja tr s cartas cada uma com um s mbolo ou todas as tr s com o mesmo s mbolo da ao jogador a possibilidade de receber mais ex rcitos No meio das cartas territ rio existe duas cartas coringa que contem todos os tr s s mbolos impressos que pode ser combinado para fazer uma troca Essa combina o s pode ser efetuada no in cio da jogada antes dos ataques onde o jogador deve devolver as cartas que estiver utilizando no processo A quantidade de ex rcitos que o jogador vai receber depende de quantas trocas foram realizadas no jogo independente de qual jogador tenha efetuado a troca Tabela 1 Se dentre as
9. los nos territ rios Ap s distribuir os ex rcitos nos territ rios o jogador deve escolher onde deseja jogar As jogadas se restringem em ataque e defesa O jogador anuncia onde deseja atacar e com quantos ex rcitos pretende faz lo O ataque segue as seguintes regras O territ rio que est atacando deve ter no m nimo dois ex rcitos o de ocupa o e o de ataque O ex rcito de ocupa o serve para defender o territ rio e identificar que o ocupa O ex rcito de ataque para em caso de vit ria ocupar o territ rio atacado O atacante pode realizar o ataque com quantos ex rcitos quiser sendo que deve faz lo sempre usando o m ximo de tr s por cada vez O ataque se dar com o sorteio de n meros entre 1 e 6 onde a quantidade de n meros a serem sorteados representam a quantidade de ex rcitos do jogador at 3 ex rcitos para os dois lados ataque e defesa A an lise da jogada realizada com o comparativo dos n meros sorteados entre si sendo feita em ordem crescente ou seja o maior resultado dos n meros sorteados para o atacante com o maior resultado dos n meros sorteados para o defensor e assim sucessivamente O atacante s pode atacar territ rios que fazem divisa com o territ rio de ocupa o do mesmo ou que estejam ligados por um pontilhado e com a quantidade de ex rcitos que tiver nesse territ rio O atacante pode realizar quantas batalhas quiser at que haja somente um ex rcito
10. Sendo assim para efetuar a troca de informa es entre o sistema cliente e servidor seria necess rio padronizar as mensagens a fim de identificar quais informa es est o sendo transmitidas atualizando objetos do sistema e ainda executando opera es dentro do sistema e retornando o seu resultado para o sistema que requisitou a informa o Outra forma de conex o entre sistemas e a escolha para o desenvolvimento do projeto foi o RMI A forma de conex o entre os sistemas a mesma oferecida pela troca de mensagens por endere o IP e sockets Mas a forma de intera o entre os sistemas feita por interm dio de m todos que s o compartilhados pelo servidor e que s o acessados pela aplica o cliente Com isso em vez de enviar mensagens ao servidor para executar uma determinada 63 opera o o servidor compartilha a opera o e o cliente a executa diretamente Al m disso poss vel transferir nesta conex o objetos instanciados tanto do cliente quanto do servidor e assim n o h a necessidade de padroniza o das informa es tendo em vista que elas j est o no formato dos objetos que s o esperados Al m disso a conex o com base em IP e a utiliza o de socket facilitam o trabalho de comunica o entre os sistemas pois n o necessita outra configura o al m do IP da porta e do nome do servi o que o servidor est utilizando Ao analisar como seriam criados os agentes optou se pela utiliza o do JADE
11. human ides e computadores inteligentes para serem usados em filmes que mostravam guerra no espa o com direito a rob s como guias soldados etc assim eram vistos como figuras de um futuro pr ximo 21 Para Clark 1968 mostrar que a era da intelig ncia estava aflorando era muito importante e foi atrav s do filme em 1968 2001 a space odyssey que comprovou atrav s do computador HAL 9000 que futuramente os computadores teriam emo es atitudes e tomariam decis es pr prias Conforme Turing 1950 o teste de Turing veio propor que m quinas seriam inteligentes se um ser humano n o pudesse distinguir o comportamento de uma m quina de outro ser humano Essencialmente o teste proposto por Turing era que por meio de um terminal um ser humano deveria se comunicar com algu m num local remoto como num Chat se ap s um determinado tempo ele n o fosse capaz de perceber que se esse algu m era uma m quina ent o a hip tese da exist ncia de Intelig ncia Artificial estaria confirmada Conforme diz Reingold e Nightingale 1999 com vontade de realizar o sonho de ter m quinas imitando o ser humano foi na d cada de 1950 que um grupo de criativos e jovens cientistas se reuniram no Dartmouth Summer Reseach Project para discutir uma nova e revolucion ria id ia como construir m quinas inteligentes O grupo era composto por Marvin Minsky Herbert Simon Allen Newell e John McCarthy entre outros onde seus esfor
12. os abririam portas para desvendar o projeto de m quinas inteligentes Newell e Simon apresentaram no encontro de 1956 um programa chamado LT o Logic Theorist O programa era revolucion rio para a poca pois conseguia provar certos teoremas da aritm tica Esse foi um dos primeiros programas que foram empregados na manipula o de informa o n o num rica E conforme Newell amp Simon 1976 Um sistema simb lico f sico tem os meios necess rios e suficientes para a a o inteligente gen rica Mas no in cio n o tiveram o xito esperado sendo que continuaram as suas buscas atrav s dos anos E segundo Negroponte 1995 foi na d cada de 1990 que iniciaram a suas atividades no campo dos agentes inteligentes na rea de computa o aut noma Com a explos o da Internet na rede World Wibe Web em 90 que surgiu necessidade de desenvolver agentes inteligentes para auxiliar os usu rios da rede onde os mesmos poderiam ajudar em sites de consultas jogos pesquisas processamento de informa es mais r pidas e consequentemente agilizando e aproveitando os benef cios da rede E atrav s dos estudos e ponto de vista de cada pesquisador criaram v rias defini es para o termo agente como forma de entendimento do processo e aspectos que envolvam o termo Segundo Bax 2001 embora n o haja uma defini o universal para o termo agente no mbito da computa o pode se considerar o conceito disseminado de age
13. se estiver no time policial impedir que os terroristas plantem uma bomba em certo alvo ou salvar ref ns que est o em poder dos terroristas e caso esteja no time terrorista o contr rio plantar uma bomba ou n o deixar os ref ns serem resgatados Para a realiza o de uma partida faz se necess rio no m nimo dois jogadores um em cada time sendo que quanto mais jogadores participarem mais empolgante fica a partida Logo os jogadores virtuais auxiliam nesse exemplo sendo adicionados ao jogo e permitindo que haja um misto de jogadores virtuais com jogadores humanos Esses jogadores virtuais s o programas desenvolvidos para interagirem com o ambiente do jogo e reagem ao que acontece nele Conforme o exemplo do Counter Strike os jogadores virtuais utilizando como exemplo o time policial sair o atr s dos terroristas para impedir que eles plantem uma bomba ou ir o ao resgate de ref ns e reagem conforme as situa es que aparecem no decorrer da partida Ent o se aparecer algum terrorista em seu caminho ele tentar elimin lo sendo que para isso ele pode utilizar um ataque direto esperar que o inimigo saia de onde est ou at escolher outro caminho para passar Ainda esses jogadores virtuais podem ter n veis de dificuldade passando do mais f cil onde se parecem com jogadores iniciantes ou mais dif cil onde parecem ter mais experi ncia no jogo e dessa forma permite que v rios tipos de jogadores humanos possam jogar de
14. ssssssiisisssssssssssssssoevoussssssoussssssosssssssossssssssssssssssosusisidestso 1 1 1 PROBLEMATIZA O seessessssssessosscossoscoseossoreosscoseoseossoseossossesssosesseoseoseeseesse 3 1 1 1 Formula o do Problema osocsesssocoosesseoosossessoccsosesssoosesessscossesessoossesssssse 3 1 1 2 Solu o PLO POStA iosndsscaseussdesseuscisanedsbavavascassonaswibeseucsiuasuassucovdeusvene sabasetoveacsoude 3 1 2 OBJETIVOS was scseasidecesassesaehiosscacain ecatstacsssasneeseseastuausadssbassdocseansesasavestgaetsavesnas 3 1 22 11 Objetivo Geral senso cctsescsaswsacssisnsscatieccdasvcteusibes LOM IATA cao POUCAS Cia 3 1 2 2 Objetivos HSpPechicos ieicccscissssescedssseevnceservesedvonteossessvevevenvedesvorsavessvesesvevensvnvesees 4 1 3 METODOLOGIA isa asno ncuni ada tada do banca ESTAR ia ia de Saad ad Ca inda un carai 4 1 4 ESTRUTURA DO TRABALHO sisi cisscseiccssscsetssiscaussssesabaacencseactesevesodensiesestene 5 2 FUNDAMENTA O TE RICA cscssssssssssssssssssssesessesssessssessssseees 7 2 1 O JOGO WAR sisissasscsceiacstadeudsersssescenasseande iasdeasscsusasusaebssevestsneansubscenetiatecacestaes 7 Ded oh a DETT PICO PRADO ARNO PRA casita RAPINA RN RR RDNS cass OTRA 7 2 1 2 Componentes do Jogo si ccicdsscccsscccccccsecscaccsvctsccdceccosenesdsdsccocscsasasesecouctessetesvceeuts 7 2 1 3 Funcionamento do Jogo sesssoososesssoosesesssooseesesscoesesessooosesssssoosessssosessesssssssse 8 Deh he IRCOEAS vicuksdssnssscsviesegncessu
15. tamb m tem uma variedade de defini es como tamb m faz uso de in meras t cnicas para alcan ar o seu objetivo A Intelig ncia Humana caracteriza se por fun es psicol gicas ou conjuntos de fun es gra as s quais o organismo se adapta ao seu meio produzindo combina es originais de condutas adquire e explora conhecimentos novos e eventualmente raciocina e resolve os problemas de uma maneira conforme s regras destacadas pelas formaliza es da l gica Doron amp Parot 2001 E conforme Lino 2004 dito por outras palavras a intelig ncia um conjunto de fun es que o homem inatamente possui que ao longo da vida vai desenvolvendo e crescendo que o ajudam a adaptar se ao meio em que vive bem como a tomar decis es e a escolher perante os obst culos que se apresentam O racioc nio a mem ria a linguagem e as emo es s o componentes da intelig ncia humana sem os quais o humano n o se tornaria aut nomo e apto a sobreviver E ainda defende Lino 2004 que a Intelig ncia Artificial por seu lado uma nova ci ncia que bebe teorias tanto da inform tica como das experi ncias da psicologia cognitiva tendo como objetivo geral reproduzir por meio de m quinas nomeadamente computadores atividades humanas qualificadas como inteligentes Cabe assim Intelig ncia Artificial o tratamento de informa es simb licas n o num ricas utilizando heur sticas a resolu o geral de problemas o reconheciment
16. 28 mensagens como tamb m uma linguagem de representa o do conhecimento conte do codifica o das mensagens e um meio para transportar essa mensagem Para um software ser definido como agente basta implementar as caracter sticas que definem um agente Dessa forma s o gerados agentes com padr es pr prios de cada desenvolvedor sendo assim dificultando a intera o entre agentes de diferentes desenvolvedores A FIPA Foundation for Intelligent Physical Agents define padr es para a implementa o de agentes e facilitando a comunica o entre eles 2 4 5 FIPA Conforme Silva 2003 a FIPA uma funda o sem fins lucrativos para a padroniza o de agentes heterog neos e interativos mas que tamb m padroniza agentes rob ticos Foi fundada em 1996 em Genebra com a miss o oficial Fipa 2003 A promo o de tecnologia e especifica es de interoperabilidade que facilitem a comunica o entre sistemas de agentes inteligentes no contexto comercial e industrial moderno E para essa equipe formalizar todos os crit rios necess rio que seja composta por companhias e organiza es membro que se encontram em reuni es para discutir e produzir padr es para a tecnologia de agentes E conforme Fipa 2003 segue a divis o desse comit e suas fun es O Comit Executivo respons vel por executar as atividades a ele confiadas pela Reuni o Plen ria do FIPA O Comit Executivo composto pelo Presidente do
17. Uma Proposta de Uso de Agentes e Mapas Conceituais para Representa o de Conhecimentos Altamente Contextualizados Universidade Federal de Minas Gerais Departamento de Ci ncia da Informa o Belo Horizonte MG 2001 BELLIFEMINE F CAIRE G TRUCCO T RIMASSA G JADE Programmer s Guide 2003 Dispon vel em http sharon cselt it projects jade doc programmersguide pdf BIGUS J P BIGUS J Constructing Intelligent Agents Using Java Second Edition Wiley Computer Publishing 2001 BINET A Testes para a Medida do Desenvolvimento da Intelig ncia S o Paulo Melhoramentos 1929 BRADSHAW J M Kaos An open agent Architecture Supporting Reuse Interoperability and Extensibility Knowledge Acquisition Workshop Know 96 Banff Alberta Canada 1996 CLARK A C A Space Odyssey Editora Express o e Cultura 1968 CONAI Tutorial Intelig ncia Artificial In CONGRESSO NACIONAL DE AUTOMA O INDUSTRIAL Anais S o Paulo 1994 CORCHADO J et al Hybrid instance based system for predicting ocean temperature International Journal of Computational Inteligence and Applications v 1 n 1 p 35 52 2001 COSTA M T C da Uma Arquitetura Baseada em Agentes para Suporte ao Ensino a Dist ncia Tese Doutorado em Engenharia da Produ o UFSC Florian polis 1999 CRIPPA M Sistemas Especialistas A Engenharia do Conhecimento Aplicada s Organiza es Trabalho de Conclus o de Curso de Administra o da Universida
18. cartas territ rio usadas na troca houver uma que cujo o territ rio representado est em seu poder o jogador ganha dois ex rcitos que devem ser colocados naquele territ rio O jogador pode acumular at cinco cartas territ rio ap s isso imperativo que o jogador fa a uma troca Tabela 1 Trocas de cartas por ex rcitos N mero da Troca Quantidade de N mero da Troca Quantidade de Ex rcitos Ex rcitos 1 4 5 12 2 6 6 15 3 8 TS 20 4 10 Em seguida 25 30 35 40 45 ex rcitos Fonte Grow 1997 Em caso de um jogador eliminar o outro as cartas que estiverem de posse do perdedor passam para o ganhador no caso de o total das cartas territ rio serem maior que cinco devem ser retiradas s cartas em excesso sendo que essa retirada deve ser feita pelo jogador seguinte 10 Tamb m faz parte do jogo o sigilo onde imprescind vel que algumas informa es sejam ocultas dos outros jogadores como o seu objetivo como tamb m as cartas que foram recebidas para troca Uma forma de fazer com que seja garantido esse sigilo fazer com que cada jogador participe do jogo em computadores diferentes Para isso o jogo deve permitir que v rios jogadores se conectem a mesma partida a partir de uma conex o multiplayer como apresentado a seguir 2 2 Conex o Multiplayer O jogo permite que at seis jogadores humanos participem da mesma partida Onde cada jogador deve estar em seu pr prio compu
19. em arquivo texto onde as regras devem avaliar alguns valores que o sistema fornece para gerar as decis es At o presente momento n o foram encontradas formas de atualizar esses valores conforme o andamento do jogo utilizando a ferramenta A solu o encontrada seria gerar marca es que devem ser inclu das nas regras e que representam os valores que deveriam ser avaliados Um objeto antes de executar a consulta das regras leria esse arquivo e substituiria as marca es pelos valores e assim a consulta seria feita com valores atualizados Al m desse problema ao se testar o funcionamento do JCLIPS com uma regra de c lculo de m dia a ferramenta n o reconhece o formato em que foi escrita a regra e ocorre um erro de sintaxe Ao se tentar o uso da regra de exemplo do JCLIPS n o ocorreu nenhum erro Foi feito consulta no manual do CLIPS que apresentou a mesma sintaxe utilizada no exemplo Para solucionar o problema foram implementadas as regras na pr pria linguagem em que foi desenvolvido o sistema Com a implementa o do jogo em meio computacional foi poss vel criar dispositivos para facilitar a intera o do jogador com o jogo disponibilizando apenas as op es que podem ser executadas no momento al m de barrar algumas a es como tentar movimentar ex rcitos que n o fazem fronteira e possibilitar a retirada de uma carta territ rio apenas se for conquistado um territ rio durante o ataque Dessa forma facilitando o desenv
20. em um lugar e Agentes M veis tem habilidade de locomo o pela rede E outro t pico diz respeito quanto a sua Aquisi o de Intelig ncia onde Nwana 1996 apud Giese 1998 afirma que eles podem ser classificados a partir dos passos abaixo Deliberativos os agentes possuem um modelo simb lico de racioc nio interno planejam e negociam tarefas para alcan ar coordena o com outros agentes Eles prev em que a es ser o necess rias para alcan ar o objetivo para ent o execut las e Reflexivos Reativos esses t m um mapeamento de situa es e respostas associadas Utilizam o est mulo resposta O ltimo t pico fala do Quanto nfase dada a Alguns Atributos Prim rios e conforme diz Nwana 1996 apud Kern 1998 que sucedem coopera o aprendizado e autonomia e ainda afirma que estas etapas n o s o definitivas No presente projeto os agentes foram implementados como jogadores virtuais A Tabela 3 mostra como os jogadores virtuais atendem as caracter sticas de um agente inteligente Tabela 3 Agente Inteligente X Jogadores Virtuais Caracter sticas de Um Agente Inteligente Jogadores Virtuais Reativo Intera o com o ambiente Analisar o estado atual do jogo e executar a es baseado nesta an lise Pr Ativo Independente e orientado a um Atacar e defender os territ rios conforme o objetivo objetivo Social Intera o com outros agentes ou Possibilidade de cria
21. ficando com 3 ex rcitos Repassar o m ximo poss vel Figura 16 rvore de Decis o Atacar Outro Ex rcito Movimentar Foi criada uma rvore gen rica Ap ndice A 4 1 que al m de ser utilizada para testar o funcionamento do agente inteligente tamb m utilizada para os objetivos que n o possuem uma rvore de decis o At o momento s foi desenvolvida essa rvore gen rica e a rvore para o objetivo de atacar outro ex rcito 3 1 4 An lise de Riscos A op o de o jogo rodar em diversos computadores um risco a ser considerado pois o servidor poder demorar a responder por algum motivo no meio da partida ou mesmo os clientes ficarem fora de sincronismo durante o jogo Para resolver esse problema a classe que gerencia a conex o ficar mantendo um di logo com o servidor verificando se o mesmo est no ar Caso o servidor n o responda durante certa quantidade de tempo ser cancelada a conex o e finalizado o jogo Al m de manter uma lista de atualiza es para cada cliente em separado sendo essa lista anexada a classe jogador ent o o cliente ter uma classe jogador e o servidor ter a mesma classe sendo que as altera es realizadas na classe jogador do servidor ser o repassadas para a classe jogador do cliente e assim atualizando o jogo para o cliente 48 Com a resolu o do risco de se perder a conex o criado um novo risco da partida ser interrompida inesperadamente
22. negro segundo Martin et al 1999 uma estrutura de dados persistente onde existe uma divis o em n veis visando facilitar a busca de informa es por ali que os agentes se comunicam interagem E conforme Lemos et al 2002 os agentes que necessitam de alguma informa o escrevem seu pedido no quadro espera que outro agente acesse e responda Segundo Lucena 2003 a comunica o por troca de mensagens consiste na comunica o direta entre os agentes Por isso faz se necess rio que cada agente saiba os nomes e endere os de todos os agentes que formam o sistema para que as mensagens possam ser trocadas E segundo Helin e Laukkanen 2002 a simplifica o da comunica o feita atrav s de agentes facilitadores que armazenam os endere os e servi os oferecidos pelos agentes do sistema Nesse caso quando um agente necessita se comunicar com outro agente esse pode solicitar que o agente facilitador encontre o agente procurado pelo nome atrav s das p ginas brancas pages White ou pelo tipo de agente ou servi o oferecido atrav s das p ginas amarelas pages Yellow E segundo Helin e Laukkanen 2002 os agentes podem tamb m acessar os servi os diretamente das p ginas amarelas ou brancas sem a necessidade de agentes facilitadores Sendo assim preciso algum meio de comunica o para a troca de mensagens atrav s das p ginas Brancas e Amarelas Os agentes precisam de uma linguagem para representa o das
23. nomo e um processo independente que tem uma identidade e requer comunica o com outros agentes seja ela por colabora o ou por competi o para executar totalmente seus objetivos JADE 2003 Em outros termos o agente de JADE emprega m ltiplas fun es ou comportamentos ele implementado na classe chamada Agent no pacote jade core Onde est o definidos tarefas b sicas como passagens de informa es mensagens suporte no ciclo de vida dos agentes escalonamento e intera o com sistemas de agentes da FIPA Na Figura 9 h uma descri o da arquitetura interna de um agente gen rico em JADE Na parte superior os comportamentos ativos do agente que representariam as a es e ou inten es que cada agente tem O modelo computacional de um agente em JADE multitarefa onde tarefas ou 32 comportamentos s o executadas concorrentemente Cada funcionalidade ou servi o provido por um agente deve ser implementado como um ou mais comportamentos Comportamentos Ativos do Agente behaviour 1 behaviour 2 behaviour n Gerenciador Fila da Privativa ir Ciclo de Comportamentos de Mensagens Vida ACL Recursos de Agentes dependentes da aplica o Figura 9 Arquitetura interna de um agente gen rico em JADE Fonte Silva 2003 Esses modos s o citados da seguinte forma AP_INIATED o agente n o tem nome nem endere o AP ACTIVE o agente esta inscrito no AMS AP SUSPENDED o o
24. o jogador virtual que est jogando Para isso ao se determinar qual jogador deve jogar no momento o gerenciador do servidor verifica que qual o tipo do jogador humano ou virtual e determina para o comportamento do agente a rvore que deve ser utilizada pelo jogador virtual A classe ComportamentoPadr o por sua vez n o identifica classes de rvores de decis es espec ficas somente classes que implementam os m todos da interface Arvore sendo assim ao se 64 criar uma nova classe para representar uma rvore de decis o necess rio incluir na declara o da classe a cl usula implements Arvore Com isso o comportamento do agente fica independente da forma em que a rvore foi implementada possibilita o uso de qualquer tecnologia para esse fim que interage com JAVA Outra ferramenta que auxilia na robustez e na velocidade de implementa o do sistema o JCLIPS Com ele poss vel criar as regras independente do sistema sendo assim de f cil manuten o tendo em vista que para acertar alguma regra do agente ou mesmo refinar a rvore de decis o basta alterar o arquivo onde est o escritas as regras sem a necessidade de recompilar o sistema Dessa forma poss vel criar novas vers es da intelig ncia dos jogadores virtuais como tamb m permite que terceiros criem as suas pr prias rvores de decis es Alguns problemas foram encontrados ao se tentar utilizar essa ferramenta no sistema As regras s o mantidas
25. para amenizar esse problema pode ser criado um mecanismo que salve o jogo em um certo per odo de tempo e possibilitando a continua o de um jogo salvo Os jogadores virtuais t m a mesma base de conhecimento logo podendo jogar da mesma forma inicialmente pelo jogo ser voltado ao objetivo cada jogador tende a atacar e defender de forma diferenciada mas caso haja uma tend ncia de os jogadores virtuais jogarem da mesma forma h a possibilidade de incluir uma personalidade a cada um sendo ela defensiva agressiva ou normal Ainda h a possibilidade de incluir objetivos secund rios como por exemplo atacar outro jogador somente para enfraquec lo j que o pr prio objetivo pare a imposs vel de alcan ar 3 2 Implementa o A implementa o do jogo foi dividida em dois sistemas sendo um o sistema servidor que gerencia parte do jogo provendo m todos compartilhados para o cliente e o sistema cliente que deve gerenciar a intera o do jogador e o jogo liberando as a es e atualizando o mapa conforme o passar do jogo Os jogadores virtuais s o implementados utilizando se o JADE Java Agent Development Framework um framework para auxiliar o desenvolvimento de agentes voltado para a linguagem Java e que implementa padr es definidos pela FIPA Foundation for Intelligent Physical Agents 3 2 1 Implementa o dos Agentes A implementa o dos agentes foi feita com a linguagem Java e com o auxilio do framework JADE Pa
26. para quem ataca sempre levando em conta que o ex rcito atacante utiliza a quantidade que h no territ rio menos um ex rcito sendo no m ximo 3 ex rcitos de cada vez o qual deve ficar no territ rio O resultado ser apurado comparando os dados com maior resultado do ex rcito que est atacando com o dado de maior resultado do ex rcito que est sendo atacado sendo que o maior entre eles ser o vencedor Em caso de empate a vit ria declarada para o ex rcito de defesa Em caso de confronto entre territ rios onde h quantidades de ex rcitos inferiores a tr s ser o feitos os confrontos conforme a regra de quantidade de 39 dados mas sendo descartados os dados cujo resultado tenha o menor valor at equivaler a quantidade de dados do outro jogador n o importando se est atacando ou defendendo Em caso de vit ria do ex rcito atacante o mesmo deve movimentar os ex rcitos usados para ataque ao territ rio de conquista O envio de ex rcitos a um territ rio ocupado s conta com os ex rcitos que est o atacando caso o jogador possua mais ex rcitos no territ rio que est atacando estes devem ficar no territ rio at o momento oportuno para movimenta o de ex rcitos O jogador poder atacar por tempo indefinido parando somente se sobrar um ex rcito em cada territ rio ocupado por ele ou quando o jogador atacante assim o desejar permitido movimentar ex rcitos de um territ rio ocupado para outro ter
27. prov de fatos heur sticos que por sua vez constituem um corpo de informa o que largamente compartilhado publicamente dispon vel e geralmente aceito pelos especialistas em um campo J as heur sticas na maioria das vezes s o privadas e inerentes que caracterizam a tomada de decis o em n vel de especialista na rea Conforme afirma Sellitto 2002 Sistemas especialistas s o sistemas computacionais que resolvem problemas de forma similar ao modo como um especialista humano os resolveria possuindo capacidade de 19 decis o em campos espec ficos do conhecimento Um sistema especialista resolve problemas em uma rea limitada de conhecimento n o se devendo esperar do mesmo que possa ter capacidade de resolver qualquer tipo de problema Flores 2003 explica que um SE formado basicamente por base de conhecimento mecanismo de infer ncia explana o e aquisi o de conhecimento Figura 6 Base de Mem ria Conhecimento de Trabalho Mecanismo de Infer ncia Aquisi o de X Interface Conhecimentos Explana ag Da K Ferramenta de Constru o Figura 6 Arquitetura b sica dos sistemas especialistas Fonte Flores 2003 A base de conhecimento representa o conhecimento do especialista O mecanismo de infer ncia respons vel pela busca na base do conhecimento e transfere os fatos e regras utilizadas durante a cons
28. que permitiu que o sistema fosse implementado de forma mais r pida e eficaz j que o JADE possui classes que atendem aos requisitos para a cria o de agentes inteligentes al m de ser um framework consolidado assim aumentando a robustez do sistema Al m disso por implementar padr es internacionais de desenvolvimento de agentes permite que o sistema entre em um n vel de padroniza o que facilite futuras implementa es por parte do autor ou por terceiros Com a utiliza o do JADE foram criadas classes que servem para gerenciar os jogadores virtuais sendo elas Classe Agente estendendo as funcionalidades da classe Agent do JADE e cont m o comportamento que o jogador virtual deve obedecer Classe ComportamentoPadr o que estende as funcionalidades do comportamento SimpleBehaviour e controla as a es que o jogador deve realizar como tamb m executa as consultas na base de conhecimento do agente Ent o durante a execu o do jogo ap s os jogadores humanos se conectarem ao servidor s o criados objetos da classe jogador um para cada jogador virtual onde s o identificados a partir de um atributo que difere o jogador humano do virtual Ap s essa opera o criado um objeto da classe Agente onde incorporando o comportamento do agente que um objeto da classe ComportamentoPadr o Como n o necess rio criar um agente para cada jogador virtual fica a cargo do ComportamentoPadr o reagir conforme
29. ser Da pra repassar para dos ex rcitos em um do inimigo atacado um territ rio que fa a divisa com o ex rcito inimigo territ rio pr ximo dos ex rcitos Tem territ rio que pode ser atacado e com menos de tr s ex rcitos im im Nab Parar ataque de ex rcitos Para ataque e malor que a do inimigo Repassar o m ximo poss vel Da pra repassar para um territ rio mais pr ximo do inimigo Tem territ rio amigo que pode ficar que pode ficar com tr s ex rcitos Parar Bim Nay Atacar Para ataque Tem territ rio com poucos ex rcitos e pode ser atacado Repassar o m ximo poss vel Passar o m ximo poss vel ficando com 3 ex rcitos Parar Repassar o m ximo poss vel Figura 13 Arvore de decis o para atacar um outro ex rcito A Figura 14 demonstra como o funcionamento da rvore O primeiro n vel avalia o objetivo no caso atacar outro ex rcito O seguinte verifica qual o tipo de a o a ser executada que pode ser repor ex rcitos atacar ou movimentar Os n veis seguintes s o as regras que determinam quais a es o agente tomar no jogo O Objetivo Atacar Outro Was Nao ex rcitos para repor Tem territ rio que faz divisa com o ex rcito Colocar 25 dos ex rcitos N o Repor 25 emum territ rio pr ximo dos ex rcitos
30. FIPA dois representantes de cada uma das sub regi es e um representante do pa s anfitri o da pr xima Reuni o Plen ria Comit s T cnicos Technical Comittees TC Essa equipe fica respons vel pela parte do trabalho t cnico criando ou alterando as especifica es existentes Atuam na arquitetura do agente sua descri o localiza o permiss es e obriga es e tamb m na conformidade que s o as especifica es da FIPA Grupos de trabalho Working Groups WG Essa equipe divulga informativos ou propostas de altera es s especifica es existentes na Fipa Comiss o de diretores Board of Directors BD Respons veis pela gest o da FIPA definindo pol ticas e procedimentos que a FIPA adota para os ambientes de desenvolvimentos de agentes e 29 Comiss o de arquitetura Architecture Board AB Respons veis por assegurar a consist ncia e precis o do trabalho t cnico a ser desenvolvido Ent o conforme Fipa 2003 antes dessa padroniza o havia cerca de 60 sistemas propriet rios de agentes em competi o mas n o tinha padroniza o atrasando o desenvolvimento da tecnologia de agentes Por isso a utiliza o de um padr o julgava se de suma import ncia na rea Algumas das linguagens de desenvolvimento de agentes que est o relacionadas com a FIPA s o Agent Development Kitz FIPA OS Lightweight Extensible Agent Plataforms LEAP ZEUS e o JADE O JADE um conjunto d
31. PS a fim de encontrar a solu o do problema citado implementando as regras do jogo nessa ferramenta Fazer pesquisas no campo de estrat gia com o intuito de utiliz las para aperfei oar as rvores de decis es dos agentes Pesquisar a tecnologia CORBA e o seu uso com RMI possibilitando a implementa o do sistema cliente em outras linguagens Pesquisar t cnicas para otimizar a conex o entre os sistemas como tamb m desenvolver um m todo para salvar um jogo possibilitando a continua o de uma partida Avaliar e implementar formas para aumentar a intera o entre os jogadores como uma forma de envio e recebimento de mensagens atrav s do jogo e mostrar para cada jogador o que est acontecendo no jogo Pesquisar novas formas de ataque e defesa como incluir n vel de energia para os ex rcitos tipos de ex rcitos diferentes como infantaria atiradores de elite e m dicos Onde cada um tem uma especializa o incluindo percentual de acerto no alvo for a e taxa de recupera o 66 REFERENCIAS BIBLIOGRAFICAS AAMODT A and PLAZA E Case based Reasoning foundational issues methodological variations and system approaches AI Communications 7 1 39 59 1994 ARARIBOIA G Intelig ncia Artificial Um curso pr tico Rio de Janeiro Livros T cnicos e Cient ficos 1988 BARR A FEIGENBAUM E A The Handbook of Artificial Intelligence volume I I Willian Kaufmann Inc Los Altos Calif rnia 1981 BAX M P
32. Para McCarthy 2002 intelig ncia a parte computacional da habilidade de alcan ar objetivos percebendo se diversos tipos e graus de intelig ncia em pessoas em muitos animais e em m quinas H uma grande diverg ncia quanto ao significado de intelig ncia e dessa forma definir precisamente o que intelig ncia artificial uma tarefa se n o imposs vel pelo menos extremamente dif cil Entretanto podemos definir Intelig ncia Artificial IA enquanto disciplina do conhecimento humano 16 Segundo Russell amp Norvig 1995 as defini es de IA encontradas na literatura cient fica podem ser agrupadas em quatro categorias Sistemas que pensam como humanos Sistemas que agem como humanos Sistemas que pensam corretamente de acordo com as leis da L gica e Sistemas que agem corretamente de acordo com as leis da L gica Segundo Pereira 2003 as duas primeiras categorias s o essencialmente emp ricas e envolvem formula o de hip teses e confirma o experimental enquanto as outras duas s o te ricas e envolvem matem tica e engenharia Embora essas duas linhas de pesquisa muitas vezes pare am antag nicas os resultados obtidos em ambas t m contribu do bastante para o desenvolvimento da rea de IA A seguir t m se algumas defini es de IA A arte da cria o de m quinas que fazem fun es que requerem intelig ncia quando feito por pessoas KURZWEIL 1990 Campo
33. Q Territorio getQuantidadeExercitosMovimentarg int Interface territorio origem ataque Territorio null territorio destino ataque Territorio null territorio origem movimenta Territorio null territorio destino movimenta Territorio null getTrocarCarta ArrayList lt CartaTerritorio gt getTerritorioColocarExecito Territorio getQuantidadeExercitosDistribuir int TemLugarAtaque boolean getTerritorioAliadoAtaque Territorio getTerritoriolnimigoAtaque Territorio MovimentarExercitos boolean getMovimentarExercitoDe Territorio getMovimentarExercitoPara Territorio getQuantidadeExercitosMovimentar int getServidor Servidorlmpl getJogadorVirtual Jogador verificarCartasTroca ArrayList lt CartaTerritorio gt getOndeColocarTerritorio Territorio getDivisaComMenos3Exercitos Territorio getTerritorioMenosExercitos Territorio getVerificarAtaque boolean getTerritoriosPodemaAtacar ArrayList lt Territorio gt getTerritoriosAtaque territorios ArrayList lt Territorio gt ArrayList lt Territorio gt getVerificarMovimentarExercitos boolean getTerritoriosMenor3Exercitos ArrayList lt Territorio gt getTerritoriosMenorInimigo ArrayList lt Territorio gt Classe para rvore geral Figura 23 Interface e Classe para rvore de decis o Com essa solu o poss vel con
34. Reasoning Morgan Kaufmann Publishers San Mateo CA 1993 KURZWEIL R The age of Intelligent Machines MIT Press Cambridge Massachusetts 1990 LEMOS A GIRARDI R FERREIRA S ABARFI Uma Arquitetura Reutiliz vel para a Recupera o e Filtragem de Informa o 2002 LINDEMANN V Sociedades Artificiais a nova fronteira da intelig ncia nas m quinas Organizado por Dante Augusto Couto Barone Porto Alegre Bookman 2003 LINO T A L R Intelig ncia Artificial Humana e a Emo o Universidade de Lisboa Portugal 2004 LOH S amp GARIN R S Web Intelligence Intelig ncia Artificial Para Descoberta de Conhecimento Na Web 2004 LUGER G F STUBBLEFIELD W A Artificial Intelligence Structures and Strategies for Complex Problem Solving Benjamim Cummings Redwood City Calif rnia second edition 1993 LUSTOSA V G O Estado da Arte em Intelig ncia Artificial Colabor Revista Digital da CVA Ricesu ISSN 1519 8529 vol 2 n 8 Brasilia D F 2004 LUCENA P Semantic Agent uma plataforma para desenvolvimento de agentes inteligentes USP Sao Carlos 2003 MAES P Artificial Life Meets entertainment lifelike autonomous agents communications of ACM 1995 MCCARTHY J What is Artificial Intelligence Dispon vel em lt http www formal stanford edu jmc whatisai whatisai html gt Acesso em out 2002 MARTIN D L CHEYER A J and MORAN D B The open agent architecture a framework for build
35. UI ou Graphical User Interface Interface visual que gerencia v rios agentes e containeres de agentes inclusive remotamente 30 Ferramentas de Debugging ferramentas para o desenvolvimento e depura o de aplica es multiagentes baseados em JADE Suporte a execu o de m ltiplas paralelas e concorrentes atividades de agentes atrav s dos modelos de comportamentos Behaviours Ambiente de agentes complacentes a FIPA No qual incluem o sistema gerenciador de agentes AMS Agent Management System o diret rio facilitador DF Directory Facilitator e o canal de comunica o dos agentes ACC Agent Communication Channel Todos esses tr s componentes s o automaticamente carregados quando o ambiente iniciado Transporte de mensagens Transporte de mensagens no formato FIPA ACL dentro da mesma plataforma de agentes Biblioteca de protocolos FIPA Para intera o entre agentes JADE disp e uma biblioteca de protocolos prontos para ser usados Automa o de registros Registro e cancelamento autom tico de agentes com o AMS fazendo com que o desenvolvedor se abstraia disso Servi os de nomes Naming Service em conformidade aos padr es FIPA na inicializa o dos agentes estes obt m seus GUID Globally Unique Identifier da plataforma que s o identificadores nicos em todo o ambiente e Integra o Mecanismo que permite aplica es externas carregarem agentes aut nomos JADE 2 4 6 2 Arquitetur
36. UNIVERSIDADE DO VALE DO ITAJAI CENTRO DE CIENCIAS TECNOLOGICAS DA TERRA E DO MAR CURSO DE CIENCIA DA COMPUTACAO JOGADORES VIRTUAIS PARA O JOGO WAR Intelig ncia Artificial e Jogos por Rodrigo Bona Rudimar Luis Scaranto Dazzi M Sc Orientador Itaja SC Junho de 2007 UNIVERSIDADE DO VALE DO ITAJAI CENTRO DE CIENCIAS TECNOLOGICAS DA TERRA E DO MAR CURSO DE CIENCIA DA COMPUTACAO JOGADORES VIRTUAIS PARA O JOGO WAR Intelig ncia Artificial e Jogos por Rodrigo Bona Relat rio apresentado Banca Examinadora do Trabalho de Conclus o do Curso de Ci ncia da Computa o para an lise e aprova o Orientador Rudimar Lu s Scaranto Dazzi M Sc Itaja SC Junho de 2007 DEDICATORIA Dedico o meu trabalho primeiramente a Deus a minha fam lia incluindo os meus amigos e especialmente minha esposa pois sem eles n o teria for as para realiz lo li AGRADECIMENTOS Agrade o a Deus por colocar as pessoas certas na hora que mais precisei e por me mandar o seu esp rito santo pra iluminar o meu caminho Agrade o tamb m aos meus pais Altair e Sonia pois por causa dos esfor os deles que pude estudar inform tica e seguir nessa rea como tamb m por toda minha forma o pessoal que formou a pessoa que sou hoje Agrade o especialmente a minha esposa M rcia que sempre teve f em mim e na minha capacidade que esteve ao meu lado principalmente nos momentos dif ceis que me deu for as pa
37. a Interna do JADE A base da arquitetura da plataforma JADE est na exist ncia de v rias m quinas virtuais Java JVM sendo distribu da por diversas m quinas independente de sistema operacional que cada uma utiliza Conforme SILVA 2003 a Figura 8 demonstrando a distribui o da plataforma em 3 host s Sendo que a JRE 1 2 Java Run time Enviroment vers o 1 2 para enfatizar o conceito de independ ncia de plataforma A Figura 8 mostra que a estrutura de comunica o entre agentes do JADE transparente ao desenvolvedor e que seus containeres fornecem todo o suporte para o funcionamento de um ou mais agentes por m quina A distribui o dos containeres se utiliza de um 31 container principal definido como Main Container onde est o RMI que nada mais que um servidor de nomes usado para registrar e recuperar refer ncias de objetos atrav s do nome e onde se encontram tamb m o AMS e o DF Esse RMI a forma que JADE utiliza para manter os containeres de agentes que se conectam a plataforma O Container de Agentes JADE fornece um ambiente completo para a execu o dos agentes em um computador de forma concorrente Host Host 3 Plataforma de Agentes JADE Distribuida RMI Registry Jade Main Container Container de Agentes Jade Container de Agentes Jade Figura 8 Plataforma de agente JADE Fonte Silva 2003 2 4 6 3 Especifica es dos Agentes em JADE Para o JADE um agente aut
38. a de ser uma linguagem que utiliza o paradigma orientado a objeto para o desenvolvimento do software Outra caracter stica citada diz respeito a variedade de classes para trabalho em redes que comp e o Java Outra caracter stica importante fala sobre a forma que s o executados os programas onde em vez de o sistema operacional executar diretamente o programa utilizado um programa intermedi rio chamado de Java Virtual Machine 36 JVM que por sua vez interpreta o que foi desenvolvido pelo programador Assim o mesmo programa pode ser executado em plataformas diferentes desde que haja uma JVM para a plataforma na qual se deseja executar o programa Devido a natureza de execu o do programa Java ser interpretada a sua performance n o t o boa mas h a possibilidade de se gerar o programa para uma plataforma em espec fico fazendo com que a performance fique similar a programas desenvolvidos em C Cita Silva 2003 tamb m a robustez da linguagem onde s o impostas restri es para evitar erros do programador e assim minimizando os custos de desenvolvimento E em rela o ao desenvolvimento de sistemas multiagentes Bigus e Bigus 2001 relaciona algumas caracter sticas importantes no desenvolvimento de Java Autonomia Aplica es em Java s o processos separados e podem executar por um longo per odo de tempo E poss vel implementar um agente como uma thread separada A comunica o pode ser feita atrav
39. ada Figura 22 Regras para calcular de m dia 53 3 2 3 2 Solu o Para implementar as regras da intelig ncia do agente foi criado uma interface que serve como base para a implementa o de novas rvores de decis o que a interface Arvore Figura 23 Interface A utiliza o dessa interface n o descarta o uso de JCLIPS mas serve para definir uma forma nica de acesso as consultas na base de conhecimento Isso poss vel pela interface conter m todos que devem ser implementados pela classe que representa a rvore a ser escrita e que s o acionados pelo sistema no momento em que deve ser tomada uma decis o pelo agente A classe ArvoreGeral Figura 23 Classe para rvore geral implementa os m todos da interface e mais alguns m todos espec ficos Ent o o sistema aciona os m todos da interface que por sua vez acionam os m todos internos da rvore executando a consulta nas regras e retornando os resultados para o agente permitindo que possa executar as suas a es no jogo Arvore Geral quantidade exercitos distribuir int O getTrocarCartad ArrayListsCartaTerritoria getTerritorioColocarExecitoQ Territorio getQuantidadeExercitosDistribuirQ int TemLugarAtaque boolean getTerritorioAliadoAtaqueQ Territorio getTerritoriolnimigoAtaqued Territorio MovimentarExercitosQ boolean getMovimentarExercitoDed Territorio geiMovimentarExercitoPara
40. amado sempre que o intervalo de tempo transcorrido e Z jade core behaviours OneShotBehaviour Comportamento at mico que executado uma nica vez Essa classe abstrata pode ser herdada para a cria o de comportamentos para tarefas que precisam ser executadas em apenas uma nica vez Tem como classe filha a classe SenderBehaviour jade core behaviours SenderBehaviour um comportamento do tipo OneShotBehaviour para envio de mensagens ACL No desenvolvimento do projeto foi utilizado a linguagem JAVA a qual apresentada na pr xima se o 2 4 7 Linguagem JAVA A linguagem JAVA foi desenvolvida em 1995 por Sun Microsystems com intuito de criarem programas desenvolvidos em rede Segundo Deitel 2000 o primeiro objetivo era ser utilizada em sistemas isolados com quantidade m nima de mem ria Mas com a explos o da internet e da World Wide Web a linguagem Java gerou um interesse maior onde se percebeu um grande potencial da linguagem na cria o de p ginas web com conte do din mico Conforme Deitel 2000 Java composto basicamente por tr s elementos uma linguagem orientada a objetos um conjunto de bibliotecas e uma m quina virtual na qual os programas s o interpretados Silva 2003 caracteriza o Java como uma linguagem simples por seus autores se basearam na linguagem C para desenvolv la mas retirando as caracter sticas de orienta o a objetos por serem raramente utilizadas Tamb m por caus
41. araco 1998 a capacidade de comunica o do agente com outros e as pessoas Capacidade de Coopera o agentes podem se comunicar entre si formando uma comunidade de agentes a fim de resolver um problema est ligada a Intelig ncia Distribu da uma das primeiras reas que fizeram usos dos agentes Para Nwana 1996 apud Costa 1999 acredita que a coopera o fundamental para a exist ncia de um ambiente multiagente Capacidade de Racioc nio o conhecimento dos agentes pode ser expresso simbolicamente ou atrav s de dados processados por meio da IA de formas diferentes como redes neurais algoritmos gen ticos etc 25 Planejamento para atingir metas os agentes precisam de planejamento como HTN Hierarchical Task Networks entre outros e Adaptabilidade analisar o ambiente e reagir s situa es que possam ocorrer Como visto pode se verificar a exist ncia de v rias defini es para o termo agente e suas caracter sticas em comum mas tamb m faz se necess rio a classifica o dos mesmos para um entendimento maior Conforme Giese 1998 os agentes podem ser classificados de diversas formas x como n vel de intelig ncia tarefas que executam quanto mobilidade quanto aquisi o de intelig ncia e a nfase dada a alguns atributos prim rios O primeiro deles diz respeito quanto ao N vel de Intelig ncia segundo River 1994 apud Souza 1996 s o classi
42. asta reservar um n mero Para alguns desses sockets s o reservados servi os como acesso a web envios e recebimentos de e mails entre outros Por exemplo para envio de e mail o programa gerenciador de e mails deve usar a porta l gica 25 quanto para receber e mails o mesmo programa deve utilizar a porta l gica 110 j o navegador de Internet se utiliza da porta 80 Segundo Franco amp Yoshida 2004 para a utiliza o de sockets basta haver processo que deve estar rodando e esperando solicita es na porta l gica que est ocupando sendo esse chamado de servidor em contra partida um processo cliente contata o servidor por interm dio da porta l gica que ele est ocupando a fim de requisitar algum servi o ent o o cliente e servidor ficam trocando mensagens ap s o cliente ser atendido pelo servidor ele encerra a rela o com servidor A Figura 4 mostra um c digo fonte desenvolvido em linguagem Java onde criada uma classe cliente que cont m o c digo para abrir uma conex o com o servidor enviar uma segii ncia de caracteres e receber um retorno do servidor mostrando o ao usu rio A linha 09 cria uma conex o com o servidor definido em hostservername na porta 6789 e envia uma seqii ncia de 22 caracteres para o mesmo contido em sentence n na linhal4 recebendo o retorno do servidor por interm dio de inFromServer readLine e armazenando em modifiedSentence na linha 15 e mostrando
43. bjeto da classe esta no momento interrompido AP WAITING o objeto esta no momento bloqueado esperando algo AP DELETED o agente est deletado ou encerrado AP TRANSIT o agente est migrando para algum destino AP COPY este estado para o agente clonado e AP GONE est em um estado est vel 33 Nessas especifica es est descrito o ciclo de vida dos agentes em JADE onde os mesmos t m alguns modos descritos pela FIPA 2003 como segue na Figura 10 Cada agente tem uma troca de estado tendo alguns termos que expressam o estado como public void doActivate ativo ou espera public void doSuspend suspenso public void doWait faz passar do ativo para a espera public void doWake passa do estado espera para o ativo public void doDelete passa do estado ativo espera ou suspenso para o deletado public void doMove Local destino passa para o estado transito e public void doClone passa do estado ativo para o copy Suspenso Reiniciar Suspender Desconhecido Destruir Invocar Figura 10 Ciclo de Vida de um agente definido pela FIPA Fonte Silva 2003 Conforme Silva 2003 no entanto permitido ao agente executar seus comportamentos behaviours apenas quando estiver no estado ativo e se em qualquer dos comportamentos de um agente for chamado o m todo doWait o agente como um todo e todas suas atividades ser o bloqueadas n o s o comportamento qu
44. buindo as cartas territ rio para os participantes e logo em seguida distribui os objetivos para os participantes A seguir o sistema distribui um ex rcito de cada participante nos seus devidos territ rios O sistema determina quem deve come ar a jogar e permite a cada jogador um por vez repor ex rcitos nos seus devidos territ rios O sistema far a verifica o das cartas que o jogador tem para troca e dessa forma liberando uma op o para 75 ele trocar ou n o as cartas sendo que quando a quantidade de cartas for de 5 ele for ar a troca das mesmas Em seguida o jogador ter a op o de parar a sua jogada ou atacar um territ rio inimigo Se optar por atacar ele dever escolher um territ rio origem de sua posse e um territ rio destino de posse de outro ex rcito para o ataque Ap s cada ataque que o jogador fizer ter a op o de parar ou continuar sendo que ficar impossibilitado de atacar caso conquiste o territ rio ou fique sem ex rcitos para ataque Caso o jogador opte por parar sua rodada de ataques ele poder movimentar os ex rcitos pelos territ rios de sua posse e eventualmente pegar uma carta para troca Ap s essa a o ser permitido ao pr ximo jogador realizar todo o processo e assim por diante at que um dos jogadores alcance o seu objetivo Sistema libera para os participantes um de cada vez a quantidade de ex rcitos para cada um repor nos territ rios de posse S
45. das a partir do servidor O cliente consulta o servidor para saber se a vez do seu jogador jogar e qual a a o que pode ser liberada a ele No decorrer da partida conforme as jogadas ele vai definindo de quem a vez de jogar e o que esse jogador pode fazer em contrapartida o cliente libera as op es ao jogador para ele poder realizar as suas jogadas O servidor mant m o mapa desde a distribui o dos territ rios como tamb m as fronteiras continentes e ex rcitos que est o ocupando cada territ rio Basicamente o servidor mant m quase todas as opera es e informa es do jogo ficando a cargo do cliente mostrar os resultados ao 56 jogador como tamb m interagir no jogo Ficou a cargo do servidor manter os agentes que est o funcionando no momento e gerenci los 3 2 5 1 Telas do Programa Servidor Ao se iniciar o servidor apresentada a tela principal do programa Servidor Figura 24 essa tela disponibiliza o menu Jogo ao qual poss vel criar um jogo parar um jogo em execu o ou sair do sistema amp WAR Server 2 0 eee logo Cria Servidor Parar Servidor Sair Figura 24 Tela principal do Servidor Ao acessar o menu Jogo op o Cria Servidor apresentada uma tela com as configura es do servidor como mostrado na Figura 25 amp Cria Servidor Porta Nome Servidor 1049 war Jogadores Virtuais Cria Cancela Figura 25 Te
46. de do Estado de Santa Catarina UDESC 2004 DEITEL H M amp P J Deitel Java Como Programar 3a Edi o 2000 DORON R e PAROT F Dicion rio de Psicologia Lisboa Climepsi Editores 2001 FARACO R A Uma Arquitetura de Agentes para negocia o dentro do Dominio do Comercio Eletr nico Florian polis 1998 FARRENY H Les Systemes Experts principles et exemples Toulouse CEPADUES Editions 1985 FEIGENBAUM E A The Handbook of Artificial Intelligence Vol II Addison Wesley Publishing Inc Massachusetts 1988 FERREIRA A B de H Dicion rio da Lingua Portuguesa Rio de Janeiro Editora Nova Fronteira 1993 FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS 2002 FIPA Communicative Act Library Specification FIPA Specification SC00037 http www fipa org specs fipa0003 Acesso em Jun 2003 FLORES C D Sociedades Artificiais a nova fronteira da intelig ncia nas m quinas Organizado por Dante Augusto Couto Barone Capitulo 6 Fundamentos dos Sistemas Especialistas Porto Alegre Bookman 2003 FRANCO C B S de M YOSHIDA P S Universidade Java S o Paulo Editora Digerati Books 2004 GASSER L B Identity and Aggregation Plurality issuees in multiagent systems In Eric Werner e Yves Demazeau editors Decentralized Artificial Intelligence p ginas 199 212 Elsevier Science Amsterdam NL 2002 GIESE L F Estrutura de Agentes para os Processos de Compra e Venda Utilizando Tomada de Decis
47. de estudo que procura explicar e emular comportamento inteligente em termos de processos computacionais SCHALKOFF 1990 Um ramo da ci ncia da computa o que se dedica automa o de comportamento inteligente LUGER amp STUBBLEFIELD 1993 e A parte da Ci ncia da Computa o que compreende o projeto de sistemas computacionais que exibam caracter sticas associadas quando presentes no comportamento humano intelig ncia BARR amp FEIGENBAUM 1981 Segundo Lustosa 2004 o termo Intelig ncia Artificial surgiu em 1956 de uma reuni o feita nos Estados Unidos que contou com cientistas de v rias reas do conhecimento todos interessados no mesmo objetivo no estudo de como poderiam ser criadas m quinas inteligentes e de como estas afetariam os processos existentes Percebe se que cada especialista na rea de IA aponta uma explica o para a mesma Segundo Arariboia 1988 a Intelig ncia Artificial um campo que usa t cnicas de programa o que procuram por interm dio de m quinas resolver problemas do mesmo modo que um ser 17 humano os resolveria J para McCarthy 2002 a Intelig ncia Artificial a ci ncia e a tecnologia de constru o de m quinas inteligentes especialmente programas de computador A intelig ncia dif cil de definir podendo diferir conforme o ponto de vista de cada autor e sendo a IA uma rea que tenta recriar a intelig ncia de maneira sint tica
48. determinado para o servidor ao se criar um jogo 60 Esses dados devem ser informados conforme as configura es definidas no servidor para que os programas possam estabelecer uma conex o e assim poder se comunicar Ap s o servidor aceitar a conex o do cliente e informar que todos os jogadores est o conectados ent o poss vel continuar com partida Eb WAR Cliente 20 ES ESB Jogo Jogadores Jogadores Player1 Informa es Cartas Para Troca Territ rio S mbolo Figura 29 Mapa do Jogo A Figura 29 possui v rios quadros cada um com sua fun o conforme listado abaixo Mapa No mapa s o apresentados os territ rios e os ex rcitos sendo estes representados por quadrados coloridos conforme a cor selecionada pelo jogador Esses quadrados possibilitam que o jogador possa repor ex rcitos selecionar mais de um territ rio ao mesmo tempo para poder realizar ataques e tamb m movimentar ex rcitos pelo mapa Jogadores Mostra a lista dos jogadores que fazem parte da partida A es As a es s o bot es que aparecem para o jogador conforme a a o que pode ser realizada no momento Na Figura 29 o programa est aguardando que um outro jogador termine a sua jogada e passe a vez de jogar ao pr ximo jogador Por exemplo quando o 61 jogador est no in cio da jogada s o apresentados dois bot es um com o nome trocar para trocar a carta e outro terminar para infor
49. dores virtuais 2 3 Outros Jogos Muitos jogos fazem uso de jogadores virtuais sendo alguns exemplos os jogos Couter Strike Sierra The Sims Eletronic Arts Total Annihilation CaveDog Entertainment entre outros Os jogadores virtuais s o usados para diversas finalidades seja para uma partida em singleplayer como em uma partida em multiplayer Em modo singleplayer o desenvolver do jogo faz uso desses jogadores virtuais para auxiliar e ou dificultar a participa o do jogador humano na partida a fim de desenvolver a hist ria do jogo e efetivamente chegar ao final do jogo Esses jogadores virtuais podem ser usados em modo multiplayer sendo que podem ser utilizados tamb m para auxiliar ou dificultar a partida e em muitos casos confundido com um jogador humano tendo rea es e tomando decis es como tal Alguns jogos s o desenvolvidos para executar partidas somente no modo multiplayer ou seja onde os jogadores interagem sem que haja uma hist ria a se desenvolver que o caso do jogo Counter Strike Quake 3 arena e Unreal Tournament entre outros Muitos desses jogos feitos somente para partidas em multiplayer n o possuem jogadores virtuais ou seja todos os participantes s o jogadores humanos sendo que h a possibilidade de incluir jogadores virtuais externos ao jogo como o caso do jogo Couter Strike Em sua maioria os jogos de tiro em primeira pessoa como os citados anteriormente possibilitam a entrada de jogadores no decor
50. e String void setTerritorio terr Territorio void getCodigoObjetivo int setQuantidadeExercitosTotalidade qntd int void setSimbolo simb Simbolo void getNome String getTerritorio Territorio getQuantidadeExercitosTotalidade int getSimbolo Simbolo GerenciaConexao Territorio Ip long CodigoMensagem int Mensage String MensagemEnviada boolean MensagemRecebida boolean Nome String ExercitoOcupante Exercito Simbolo QuantidadeExercitos int Simbol FazemDivisa ArrayList lt Territonio gt Simbolo int setSimbolo simb int void getSimbolo int setip ip long void setCodigoMensagem codi int void setMensagem mens String void recebeMensagem void enviaMensagem void getCodigoMensagem int getMensagem String mensagemRecebida boolean mensagemEnviada boolean setNome nome String void setExercitoOcupante exer Exercito void setQuantidadeExercitosTotalidade qntd int void setQuantidadeExercitos qntd int void setTerritorioF azDivisa terr Territorio void getQuantidadeExercitos Totalidade int getNomef String getExercitoOcupante Exercito CartaCoringa getQuantidadeExercitos int getTerritoriosFazemDivisa ArrayList lt Territorio gt Simbolos ArrayList lt Simbolo gt setSimbolo simb Simbolo void
51. e a In cio e Durante a In cio Partida Jogadores Partida Partida Normalmente os jogos do g nero de estrat gia exigem que os jogadores estejam presentes no in cio da partida como o caso do WAR onde h a distribui o dos territ rios e ap s esta distribui o n o h espa o para a inclus o de um novo jogador que tenha eventualmente chegado no meio da partida Alguns jogos utilizam a Intelig ncia Artificial para dar maior realismo para os personagens e maior emo o ao jogo A seguir ser o apresentados os conceitos de Intelig ncia Artificial 2 4 Intelig ncia Artificial Conforme Lustosa 2004 a partir da filosofia come ou o estudo da intelig ncia e dos processos de aprendizagem onde estudiosos gregos j produziam textos sobre o tema S crates em 400 a C testou o conhecimento das pessoas afim de saber quem era a mais s bia do mundo Hoje em dia os testes de Quoeficiente de Intelig ncia QI tentam entender e categorizar a intelig ncia humana Ainda conforme Lustosa 2004 no final do s culo XIX os pesquisadores aprofundaram os seus estudos de forma mais sistem tica embasando se na psicologia educa o sociologia medicina entre outras Nestes cem anos foram apresentadas muitas teorias sobre o funcionamento 15 da mente humana muitas baseadas em fatores fisiol gicos passando pelas baseadas em est mulos externos Em geral os dicion rios da l ngua portuguesa como Michaelis 1998 def
52. e chamou o m todo Ao inv s disso o m todo block da classe Behaviour evitaria essa bloqueio total uma vez que permite a suspens o de apenas um comportamento e al m de se desbloquear caso uma mensagem for recebida 34 No entanto existem m todos importantes e particulares no framework de JADE mas um dos principais m todos da classe agent precisa ser esclarecido principalmente a classe public void addBehaviour Segundo Silva 2003 adiciona um novo comportamento ao agente Ele sera executado com outros comportamentos Geralmente usado no m todo setup para disparar algum comportamento inicial por m pode ser usado tamb m para gerar comportamentos dinamicamente O m todo removeBehaviour faz justamente o inverso remove determinado comportamento do agente 2 4 6 4 Classe Behaviour Conforme j explicado no tema acima o conceito de Behaviour Silva 2003 explica ainda que uma classe abstrata do JADE dispon vel no pacote jade core behaviours Onde essa classe abstrata possui alguns m todos implementados e outros n o e n o pode ser instanciada diretamente Ela tem como finalidade prov r a estrutura de comportamentos para os agentes JADE serem programados no m todo action que as a es ser o desenvolvidas sendo que o m todo done informa o estado do comportamento retornando true caso o comportamento tenha terminado e este removido da fila de comportamentos caso retorne false indica que o comportame
53. e classes e funcionalidades chamado de framework desenvolvido em Java e que implementa os padr es da FIPA afim de facilitar a implementa o de agentes inteligentes em Java 2 4 6 JADE O JADE Java Agent DEvelopment framework uma estrutura de desenvolvimento de software que auxilia no desenvolvimento de agentes e que entra em conformidade com os padr es de FIPA Foundation for Intelligent Physical Agents Foi desenvolvido e suportado pelo CSELT da Universidade de Parma na It lia open source desenvolvida sob a licen a LGPL Lesser General Public License permitindo que possa ser ligada a programas propriet rios inclui dois produtos principais uma plataforma FIPA compliant do agente e um pacote para desenvolver agentes em Java De acordo com Bellifemine 2003 o JADE foi codificado em Java devido a caracter sticas espec ficas da liguagem como a programa o orientada a objeto em ambientes heterog neos 2 4 6 1 Caracter stica do JADE No JADE existem algumas caracter sticas principais para a programa o de multiagentes que ser o abordadas a seguir de acordo com Bellifemine et al 2003 Plataforma distribu da de agentes JADE pode ser dividida em v rios hosts ou m quinas desde que conectados via RMD Os agentes s o implementados como threads Java e inseridos dentro de reposit rios de agentes chamados de containeres Agent Containers que prov m todo o suporte para a execu o do agente G
54. ens como o C e o FORTRAN Para que possa ser utilizado com outras linguagens h a necessidade de se utilizar uma API que faz a conex o com o CLIPS e a linguagem ao qual deseja interagir Para interagir com o Java existem duas API s sendo elas o JESS e o JCLIPS O JESS produzido pela Sandia National Laboratories e possui uma licen a para uso comercial sendo sem custos para uso acad mico J o JCLIPS de dom nio p blico sem custos de licen a mas n o permite mais do que uma consulta a base de conhecimento por vez Para o projeto ser utilizado o JCLIPS por se tratar de uma ferramenta livre de licen a tanto para desenvolvimento quanto para distribui o sendo que o sistema n o precisar fazer mais do que uma consulta por vez na base de conhecimento n o necessitando de uma ferramenta que permita ISSO 2 4 3 Agentes Inteligentes Segundo Lucena 2003 atrav s dos tempos a humanidade preocupou se muito em desenvolver a rea da fic o e da engenharia tentado criar agentes inteligentes que pudessem imitar o comportamento humano Com esse in cio a rea da Intelig ncia Artificial acreditou ser poss vel iniciar as pesquisas dos mesmos e assim inventaram os primeiros agentes alguns bem conhecidos como secret rias eletr nicas brinquedos que tocavam sozinhos algum tipo de m sica trenzinhos eletr nicos etc E como cita Bradshaw 1996 por anos seguidos foram criados personagens como andr ides cyborgs rob s
55. ente segue as mesma regras de pacotes e nomenclaturas dessa forma os pacotes pertencentes ao cliente come am com br com tcc war client Ent o no sistema cliente ter o os pacotes iniciando em br com tcc war continuando a nomenclatura como segue 58 client controle neste pacote est o as classes que realizam opera es que intermediam a tela com outras classes S o elas que executam a maioria das regras de neg cio client gui s o classes que disponibilizam telas para o usu rio client servico este pacote foi criado especificamente para manipular a conex o com o servidor server base este pacote originado do sistema servidor cuja as classes devem ser implementadas somente no servidor e n o podem ser alteradas no cliente s o as classes que formam a base do jogo como classes que modelam os territ rios continentes cartas entre outras server servidor este pacote tamb m originado do servidor o qual tem as classes que com os m todos remotos disponibilizados no servidor e que podem ser acessados pelo cliente e componentes este pacote diferente dos outros pois n o segue a mesma regra de uso do dom nio de internet nesse pacote est o classes que estenderam suas funcionalidades de algum componente do Java e que foram customizadas para melhor se adequarem ao sistema A organiza o dos pacotes foi montada para permitir uma melhor manuten o do sistema visando uma prog
56. entes No entanto a intelig ncia dos agentes sempre foi motivo de intensivas pesquisas no ramo de IA e tamb m no que diz respeito a outras faculdades como a filosofia e a psicologia onde n o se pode dizer com precis o se a intelig ncia apresentada nos agentes a mesma intelig ncia vista nos seres humanos MINSKY 2000 Esses organismos inteligentes t m uma especial aten o ao n vel perceptual aquele n vel que consegue por exemplo discriminar uma ma de um tomate Intelig ncia requer tamb m o equivalente de um corpo f sico que permita ao agente explorar suas circunvizinhan as e assim obter uma oportunidade de intera o CLARK 1997 Por isso alguns pesquisadores como Nissen 1995 iniciaram trabalhos com intuito de esclarecerem os comportamentos dos agentes e classific los E para tanto fez se uma rela o de t picos essenciais a esses agentes podendo assim conhecer o seu comportamento a seguir Z Autonomia a capacidade em que o agente tem de tomar decis es sozinhos sem interfer ncias dos usu rios E conforme Wooldridge amp Jennings 1994 apud Costa 1999 o elemento chave da autonomia a pr atividade habilidade de tomar iniciativa sem a necessidade de agir a mudan a de seu ambiente Capacidade de comunica o ela necess ria para um agente conseguir atingir seus objetivos podendo se comunicar com outros agentes ou com o usu rio Para Franklin et al 1990 apud F
57. er to fulfill an objective and in this way win the game Game WAR presents diverse rules that must be fulfilled along the game and this represent and obstacle for beginners Other difficulties that may be found in this game is the minimum amount of players necessary therefore the participants must have certain level in its strategical abilities The present project created an electronic version of game WAR and used for this the Java language allowing that players can participate of games in computers distributed in a net with the employ of the RMI technology Remote Method Invocation Moreover virtual players are implemented to which can be added in the game to complete the minimum amount of players or even to increase the amount of participants Therefore Artificial Intelligence Al techniques and Intelligent Agents are applied in order to make the virtual players to represent human players in its actions once that to represent the knowledge of these players the technique of Expert Systems ES was applied simulating the decisions that a person would take according to the actions to be carried through in the game Keywords Artificial Intelligence Intelligent Agents Games 1 INTRODUCAO A maioria dos jogos tem por finalidade entreter pessoas sendo eles eletr nicos ou n o Em grande parte desses jogos h a possibilidade de se jogar com dois jogadores e em alguns casos dif cil achar outra pessoa para poder dar in cio a uma par
58. ex rcitos As disputas por territ rio devem ser feitas com o m nimo de dois ex rcitos para quem est atacando e um ex rcito para quem est defendendo o territ rio Quando o jogador ataca e vence a jogada ele deve movimentar os ex rcitos atacantes para ocupar o territ rio que acabou de ganhar logo deve ficar no territ rio de origem o m nimo de um ex rcito e por isso deve ser contada a quantidade de ex rcitos para ataque o total no territ rio atacante menos um o que fica no territ rio atacante J quando se defende h a possibilidade de perder o territ rio ou seja todos os ex rcitos sa rem do territ rio ent o conta se com todos os ex rcitos do territ rio para defesa As disputas por territ rio podem ser realizadas com o m ximo de quatro ex rcitos por vez para quem est atacando sendo usados somente tr s para o ataque e tr s por vez para quem est defendendo o territ rio Um ex rcito s poder atacar territ rios que fazem divisa com o territ rio ocupado ou apontado por setas As disputas se dar o por interm dio de dados virtuais sendo que ser o utilizados dados de cor vermelha para representar o ataque e dados amarelos para representar a defesa Cada dado representa um ex rcito ou seja se quem estiver defendendo tiver em seu territ rio somente dois ex rcitos ser o utilizados para defesa somente dois dados caso tenha mais de tr s ex rcitos ser o utilizados tr s dados o mesmo
59. ficados da seguinte forma Baixo neste est gio executam tarefas rotineiras n o se adaptam a mudan as n o alteram suas regras M dio estes agentes utilizam se de uma base de conhecimento para desempenharem suas fun es Podem adaptar se a mudan as e manipular novas condi es mas n o desenvolvem novas regras e Alto os softwares de agentes utilizam o aprendizado quanto base de conhecimento Aprendem com o comportamento dos usu rios Criam novas regras e mudan as de condi es Outro fator de classifica o de agentes diz respeito aos tipos de tarefas que esses agentes executam Wooldridge e Jennings 1995 apud Souza 1996 afirmam ter tr s classes de agentes segundo a tarefa que estiverem executando ent o Gopher termo dos agentes que executam tarefas simples baseando se em suposi o Ex agenda eletr nica e de compromissos Prestadores de Servi o s o aqueles agentes que executam tarefas definidas quando solicitadas pelo usu rio Eles podem negociar datas com os usu rios e Pr ativo preditivo esses agentes efetuam as tarefas mais dif ceis apresentando informa es volunt rias para o usu rio sem ser solicitado ou seja faz isso quando achar necess rio 26 E de acordo com Nwana 1996 apud Giese 1998 os agentes s o classificados tamb m pela sua Mobilidade que segue dois itens Agentes Est ticos s o agentes que n o se locomovem pela rede est o fixo
60. ializa Jogo Servidor ia 74 Figura 31 Diagrama de Atividade Inicializa Jogo Cliente 75 Figura 32 Diagrama de Atividade Partida rece eer cena acerea encara 76 Figura 33 Diagrama de Estado Iniciar Jogo 200 eeesecceesesceeceeseeeeecessaceeecsaceeeeseeeecesseaeeecesaeeeees 77 Figura 34 Diagrama de Estado Durante o Jogo rece eererecerenra acena 78 Figura 35 Diagrama de Estado Comunica o Entre Computadores seceeeeceeceeeeeeeecesneeeeees 19 Figura 36 Diagrama de Sequ ncia Comunica o Cliente Servidr e eeceeeeeceeceeseeeeeeeeneeeees 80 Figura 37 rvore de Decis o rvore Gen rica c ccccccscssessssesscsessssessesessssesscssscssscscsuesceucsceeees 81 vii LISTA DE TABELAS Tabela 1 Trocas de cartas por ex rcitos erre rosies ae TEER Tabela 2 Caracter sticas de Outros Jogos X WAR rr eereeecereneacara Tabela 3 Agente Inteligente X Jogadores Virtuais c ecc eerereeerenr acena viii RESUMO BONA Rodrigo Jogadores Virtuais para o Jogo War Itaja 2007 92 f Trabalho de Conclus o de Curso Gradua o em Ci ncia da Computa o Centro de Ci ncias Tecnol gicas da Terra e do Mar Universidade do Vale do Itaja Itaja 2007 WAR um jogo do g nero de estrat gia onde em um tabuleiro com o mapa mundi impresso os jogadores disputam territ rios com seus ex rcitos a fim de cump
61. iana ana ata a CER Ra COUT atoa 75 A 2 DIAGRAMAS DE ESTADO ccssssssssossssssssencccssessssvensossesssssescssessssssssossesees 77 A21 Iniciar JOGO Sctesaesbscsinccescecackslsecssesscasacdecsnescusnuasesesstsocendbacevedach osscsdscossubsessseeerte 77 A22 Durante O JODO cesar av cctuscNcdasaeusitneisctieGs a Ta suadsieaccsddsccducusssvedecssactiectuiee 78 A 2 3 Comunica o entre COMputadOres sccccccccsccccccsccssscsecseecsssssssseseesscees 79 A 3 DIAGRAMA DE SEQUENCIA cccsssssssssssssssssssussascaseasssscsucsessaseascaceasssssaees 80 A 4 RVORES DE DECIS O nsssssseeessssseecccsssssseeccosssssseeccossssssssceoossssssereeessssseeee 81 A 4 1 rvore Gen rica c cccsssssssssssssssssssssssssssssssssesssssessssssssssssssesssessssessscsesssseessees 81 ACC AMS CLIPS DF FIPA GUI GUID IA IP JADE JRE JVM NASA QI RBC RMI SBC SE TCC UNIVALI USP HTN LISTA DE ABREVIATURAS Agent Communication Channel Agent Management System C Language Integrated Production System Directory Facilitator Foundation for Intelligent Physical Agents Graphical User Interface Globally Unique Identifier Intelig ncia Artificial Internet Protocol Java Agent Development Framework Java Run time Enviroment Java Virtual Machine National Aeronautics and Space Admistration Quoeficiente de Intelig ncia Raciocinio Baseado em Casos Remote Method Invocation Invoca o Remota de M todos Sistemas Baseados em Conhecimento Siste
62. idor Definir o nome do servidor para conex o Permitir o jogador distribuir os ex rcitos em qualquer territ rio que esteja ocupado por ele Permitir selecionar dois territ rios ao mesmo tempo um de sua posse e outro inimigo a fim de atac lo 41 Ao fim de suas jogadas permitir a movimenta o de ex rcitos entre territ rios de sua ocupa o e que fazem divisa Permitir o jogador adquirir uma carta territ rio ao final de sua jogada de ataque para poss vel troca caso tenha ganhado algum territ rio durantes os ataques e Permitir a troca de cartas recebidas de tr s em tr s cujo s mbolo seja igual nas tr s cartas ou totalmente diferentes 3 1 1 3 Requisitos n o Funcionais Os requisitos n o funcionais determinam quais restri es o projeto ter como tamb m O sistema deve ser composto por dois m dulos um servidor e outro cliente O sistema deve ser desenvolvido em linguagem Java O desenvolvimento do sistema deve utilizar uma interface de desenvolvimento livre de cobran a de licen a O m dulo cliente deve se conectar somente com o servidor e A implementa o dos agentes inteligentes utiliza o framework JADE 3 1 2 Casos de Uso Para modelagem do sistema foi utilizada a UML O diagrama de caso de uso Figura 11 mostra quais a es o jogador poder realizar no sistema Cada um dos realizam fun es distintas e que se complementam e que por isso possuem
63. igos e publica es Dispon vel em http www comp ufla br undersun Acesso em 18 de Nov de 2002 ROOK F W GROGHAN J W The Knowledge Acquisition Activity Matrix a System Engeneering Conceptual Framework Systems Man and Cybernetics Vol 19 1989 RUSSEL S NORVIG P Artificial Intelligence A Modern Aproach Ed Prentice Hall 1995 SCHALKOFF R J Artificial Intelligence An Engineering Approach McGraw Hill New York 1990 SELLITTO M A Artificial Intelligence an application in a continuous process industry Gest Prod vol 9 no 3 S o Carlos Dec 2002 SELKER T Afetando o Humanity Vol 44 Imprensa York EUA 2001 SILVA L A M Estudo e Desenvolvimento de Sistemas Multiagentes usando JADE Java Agent Development framework Trabalho de Conclus o de Curso UNIFOR 2003 SOUZA E M S de Uma Estrutura de Agentes para Asseoria na Internet Disserta o Mestrado em Engenharia de Produ o Centro Tecnologico UFSC Florian polis 1996 TURING A The imitation game Computing Machinery and Intelligence Mind Vol 59 n 236 1950 WOOLDRIDGE M Intelligent Agents In Weiss G ed Multiagent Systems A Modern Approach to Distributed Artificial Intelligence The MIT Press 1999 WOOLDRIDGE M JENNINGS N Agent Technology Foundations Applications and Markets Springer Verlag Berlin Heidelberg New York 1998 70 WANGENHEIM C G Von Case Based Reasoning A Short Introduction Relat r
64. inem intelig ncia como sendo a faculdade de aprender compreender e adaptar se e apresentam pelo menos mais tr s acep es distintas para esse termo Teol gica dom divino que nos torna semelhantes ao Criador Filos fica princ pio abstrato que a fonte de toda a intelectualidade e Psicol gica capacidade de resolver problemas novos com rapidez e xito Existem muitas defini es sobre intelig ncia como segue Intelig ncia julgar bem compreender bem raciocinar bem BINET 1929 Humberto Maturana uma das abordagens Representa um atributo ou propriedade distintiva de alguns organismos MATURANA 1998 e Capacidade de adapta o do organismo a uma situa o nova PIAGET 1982 A Intelig ncia Artificial IA tenta entender o comportamento de entidades inteligentes Mas ao contr rio da filosofia e da psicologia que est o mais preocupadas com o estudo da intelig ncia dentro de um contexto de rela es humanas a IA mais focada em como essas entidades podem ser criadas e utilizadas para determinados fins LUSTOSA 2004 A intelig ncia a demonstra o por resultados de princ pios coerentes em escala de tempo verific vel a natureza inteligente em escala de tempo inacess vel para os humanos O oposto da intelig ncia o caos em um sistema ca tico duas entradas muito pr ximas resultam em duas sa das sem qualquer conex o CONAI 1994 Z
65. ing distributed software systems Applied Artificial Intelligence 1999 MATURANA H R Da Biologia Psicologia Artmed Editora LTDA 1998 MICHAELIS Dicion rio da Lingua Portuguesa Companhia Melhoramentos 1998 MINSKY M A Framework for Representing Knowledge In Winston Patrick H Ed The Psychology of Computer Vision McGraw Hill New York 1975 NEGROPONTE N Beeing Digital Ed Vintage 1995 NEWELL A SIMON H Computer Science as Empirical Enquiry Symbols and Search In Haugeland John ed MIT Press Massachusetts 1976 69 NISSEN Mark Intelligent Agents A Technology and Business Application Analysis Disponivel na Internet via WWW URL http haas berkele y edu heilmann agents 1995 PEREIRA S do L Intelig ncia Artificial Artigo Cientifico Area de Intelig ncia Artificial USP 2003 PIAGET J O Nascimento da Intelig ncia na Crian a 4 ed Rio de Janeiro Zahar 1982 QUIBEL J ROGER M Les Syst mes Experts dans Entreprise pourquoi comment Paris Les Editions d Organisation 1989 REINGOLD E NIGHTINGALE E Works in AI 1999 REZENDE S O Sistemas Inteligentes Fundamentos e Aplica es Barueri SP Manole 2003 RICH E KNIGHT K Intelig ncia artificial S o Paulo Markron Books do Brasil 1994 RILEY G CLIPS a tool for building expert systems Home P a g e 2 0 0 5 Dispon vel em http www ghg net clips CLIPS html Acessado em Abr 2007 ROCHA A de R Opini es art
66. io T cnico Universidade do Vale do Itajaf UNIVALI 2002 71 5 GLOSARIO Multiplayer Termo usado em jogos para designar um modo em que jogadores participam de um jogo em uma mesma partida Repor Momento em que o jogador adquiri mais ex rcitos e os distribui no mapa Rodada Parte do jogo em que o jogador rep e ex rcitos no mapa ataca e movimenta o seu ex rcito Singleplayer Termo usando em jogos para designar um modo em que um jogador desenvolve a hist ria do jogo sozinho Socket Portas virtuais para conex o de programas em um computador via um protocolo de rede 72 APENDICES Diagramas Segue diagramas do sistema que demonstram como o sistema deve funcionar A 1 DIAGRAMAS DE ATIVIDADES Este diagrama mostra as a es que o usu rio pode realizar no sistema e como ele deve responder A 1 1 Inicializa Jogo Servidor O servidor serve para gerenciar a partida o diagrama abaixo mostra como ser o funcionamento do sistema ao ser criado um novo jogo O usu rio entra com dados como nome e cor de ex rcito a ser utilizado na partida e defini quantos jogadores far o parte dela Em seguida deve esperar os participantes se conectarem de mostrarem que est o prontos para que o servidor possa dar in cio a partida Usu rio Coloca o Nome Usu rio Seleciona Cor de Ex rcito Dispon vel Usu rio Libera Quantidade de Jogadores a Participarem da Partida Usu rio Define Quantos Humano
67. ipante deve colocar um ex rcito no territ rio correspondente a carta que recebeu sendo que ao final desse processo todos os territ rios devem estar ocupados com o ex rcito de um dos participantes e todas as cartas territ rio devem ser agrupadas todas em mesmo monte onde devem permanecer por todo o jogo A rodada inicia com o jogador seguinte ao que recebeu a ltima carta territ rio Na primeira rodada cada jogador deve receber e colocar ex rcitos nos seus devidos territ rios de acordo com a sua estrat gia e cada um na sua vez A partir da segunda rodada o jogo segue uma regra b sica o jogador recebe ex rcitos e os distribui nos territ rios de seu poder ataca os advers rios se desejar desloca os ex rcitos conforme conveni ncia e recebe carta se fizer jus a ela 2 1 4 Regras Conforme Grow 1997 o jogo segue uma s rie de regras quanto a recebimento de ex rcitos ataque oponentes movimenta o conquista e troca de cartas e elimina o de um concorrente O recebimento de ex rcitos segue a seguinte regra ao in cio de cada jogada o jogador deve contar a quantidade de territ rios que est o em seu poder devendo dividir esse valor por dois e a quantidade inteira resultante ser a quantidade de ex rcitos que esse jogador pode distribuir em qualquer territ rio de seu poder nesse momento o jogador deve verificar se h a possibilidade de fazer trocas de cartas onde poder obter mais ex rcitos e distribu
68. ipantes do jogo se conectam ao servidor que deve ser antes do in cio da partida Al m da utiliza o de um ambiente de rede que imprescind vel para o funcionamento do jogo por requerer que algumas informa es sejam de conhecimento somente do jogador que as possui como por exemplo o seu objetivo e as cartas para efetuar uma troca adquiridas durante o jogo O que n o seria poss vel caso os jogadores compartilhassem a mesma tela para visualizar a partida tendo em vista que essas informa es seriam de dom nio comum entre os jogadores e assim inviabilizando a partida Para implementar o projeto foi escolhida a linguagem Java levando em conta que al m da utiliza o do paradigma de programa o orientado a objetos mas principalmente a facilidade de encontrar informa o sobre um determinado tema Como tamb m a quantidade de f runs sites e desenvolvedores que auxiliaram na pesquisa de solu es a problemas como comunica o transfer ncia de informa es entre sistemas e implementa o de agentes Al m disso a linguagem disponibiliza uma grande variedade de classes para os mais diversos tipos de opera es a que podem ser realizadas em meio computacional A conex o entre os sistemas cliente e servidor fora cogitado o uso de duas t cnicas A primeira por troca de mensagens onde dois sistemas se conectam por interm dio de um endere o IP e sockets efetuando a comunica o pelo interm dio de mensagens textuais
69. istema determina o primeiro jogador Sistema distribui cartas territ rio para os participantes Sistema distribui carta objetivo para os participantes Jogador ganha ex rcitos conforme quantidade de territ rios Quantidade dg cartas para trdca igual a 5 Tem troca a N o fazer gt Trocar carta Jogador conquistou territ rios Jogador movimenta E N o lt gt Jogador seleciona territ rio origem 4 ji Continuar Jogador seleciona territ rio destino Jogador solicita ao sistema para sortear os valores de ataque e defesa Nao H como o Sistema compara o jogador fazer resultado e retira os ataques ex rcitos perdedores Figura 32 Diagrama de Atividade Partida 76 A 2 DIAGRAMAS DE ESTADO Os diagramas de estado mostram o comportamento do sistema conforme o decorrer do tempo A seguir ser o mostrados diagramas que mostram o comportamento do sistema ao iniciar uma partida durante o jogo e a comunica o entre computadores A 2 1 Iniciar Jogo O sistema oferece dois tipos de in cio de jogo como servidor e como cliente Quando o sistema iniciado como servidor necess rio que fique aguardando at que os demais jogadores se conectem e sinalizem que est o prontos para iniciar a partida Em contra partida o cliente deve conectar com o servidor e logo estando pronto deve mandar uma mensagem ao servidor e dessa forma o se
70. jogo possui uma s rie de regras que devem ser cumpridas sendo elas Somente o jogador que estiver criando uma partida pode definir quantos jogadores podem participar da mesma e quantos ser o humanos e quantos ser o virtuais Os jogadores n o poder o ter ex rcitos com a mesma cor ou seja ao se conectar o sistema servidor gerencia as cores que ainda est o liberadas para uso No in cio da partida devem ser distribu das as cartas objetivo Ap s a distribui o das cartas objetivo devem ser distribu das as cartas territ rio e distribuir os ex rcitos dos jogadores no mapa A primeira rodada do jogo serve somente para os jogadores reporem os ex rcitos no mapa A quantidade de ex rcitos que o jogador pode colocar no mapa a cada rodada e na sua vez relativa quantidade de territ rios ocupados dividido por dois sendo considerada apenas a parte inteira do resultado ou seja caso o jogador tenha 17 territ rios em seu poder o valor de sua metade de 8 5 como n o h uma metade de ex rcito a quantidade de ex rcitos a ser colocada de 8 38 A quantidade minima de ex rcitos que devem ser colocados a cada rodada e na vez do jogador de tr s ex rcitos ou seja se o jogador tiver somente 4 ou cinco territ rios a quantidade de ex rcitos que ele deveria repor conforme a regra de 2 ex rcitos como o resultado menor que a quantidade m nima dessa forma o jogador dever repor 3
71. la Cria Servidor Os campos e suas fun es s o relacionadas a seguir Porta Nesse campo deve ser informada a porta ao qual ser utilizada para conex o dos clientes ao servidor 57 Nome Servidor O nome do servidor serve para definir o nome do servi o que estar funcionado na porta informada Jogadores Define a quantidade de jogadores humanos far o parte do jogo e Virtuais Define quantos jogadores virtuais devem fazer parte do jogo Ap s as configura es serem informadas ao servidor e confirmadas caso fora indicado jogadores humanos para a partida apresentada uma tela Figura 26 onde aguardado os jogadores humanos se conectarem Jogadores Conectados Jogadores ID Nome Jogador Cor Dk Cancela Figura 26 Aguardando conex o de outros jogadores Ap s os clientes estarem conectados ao jogo a tela fechada e um processo gerenciador iniciado e mant m o jogo em funcionamento 3 2 6 Cliente O cliente um sistema que serve para fazer a interface entre o jogador e o jogo Para tanto o cliente se conecta ao servidor a fim de consultar informa es e apresent las na tela e tamb m para liberar as a es que o mesmo pode realizar em um determinado momento Ao conectar se o cliente inicia uma thread que fica consultando o servidor para saber que a es ele pode tomar sendo que pode ser uma atualiza o de tela ou mesmo a vez do jogador jogar Como o servidor o cli
72. m estar impresso na carta onde somente a carta coringa cont m os tr s s mbolos 40 As trocas de cartas s o contadas sequencialmente ou seja um jogador fez uma troca contado como a primeira o pr ximo faz outra troca contado como a segunda e assim sucessivamente Ao obter cinco cartas obrigat rio ao jogador realizar a troca de tr s dessas cinco cartas na pr xima rodada impossibilitando o de adquirir novas cartas Na troca de cartas por ex rcitos caso o jogador cujo ex rcito estiver ocupando uma das cartas territ rio que est o sendo trocadas tem por direito colocar um ex rcito no territ rio representado pela carta e QO jogador que alcan ar o objetivo primeiro considerado vencedor 3 1 1 2 Requisitos Funcionais O sistema deve oferecer dois m dulos onde seja poss vel criar uma nova partida sendo esse chamado de servidor e outro onde o jogador possa conectar com o servidor e fazer parte de uma partida sendo esse chamado de cliente No m dulo servidor o sistema deve Definir a quantidade de jogadores que far o parte do jogo optando por jogadores humanos e virtuais Definir a porta para conex o do servidor e Definir o nome do servidor para que o cliente possa se conectar a ele No m dulo cliente o sistema deve Definir um nome para o jogador que o representar na partida Definir a cor de ex rcito a ser distribu do no mapa Definir o endere o IP do serv
73. ma Especialista Trabalho de Conclus o de Curso Universidade do Vale do Itaja Universidade de S o Paulo Hierarchical Task Networks vi LISTA DE FIGURAS Figura 1 Mapa do Jogo WAR crie e deaet aiaa Tear ea eea a aae ER anda 7 Figura 2 Outros Componentes do Jogo WAR a ex rcitos b cartas territ rio c cartas objetivo Mie obed setae osu clea a PR DOR O o T qd AUD Dna tats RARAS SA OR DROGA SUR SAD Ea 8 Figura 3 Escopo da conex o multiplayer cccccessccccessseceesssceecesseseeecesaececessceceeseseeeceesuaeeesesaeeeees 11 Figura 4 Cliente Socket Java usando a classe TCPClient 13 Figura 5 Servidor Socket Java utilizando a classe TCPServer ssccccessscecceseeeeeceeseaceecesaeeeees 13 Figura 6 Arquitetura b sica dos sistemas especialistas cesssececesseceeeeesececesseeeecesseaeeesesaeeeees 20 Figura 7 Caracter sticas de Agentes erre aceraenace ceara cercar nacarenaa acena 24 Figura 11 Diagrama de USE CASE curosament EE e i aer E EEs ee i aniti 43 Figura 12 Diagrama de ClaSSESssssis cirerer ianari i ne e aE S a aa 45 Figura 13 rvore de decis o para atacar um outro Ex rcito 46 Figura 14 rvore de Decis o Atacar Outro Ex rcito Reposi o ccccccssescssessssesesseetsscsesseseees 47 Figura 15 rvore de Decis o Atacar Outro Ex rcito Atacar ementa 47 Figura 16 rvore de Decis o Atacar Outro Ex rcit
74. mar que a a o de repor ex rcitos foi terminada Objetivo Nesse painel apresentado o objetivo que o jogador deve alcan ar para ser o vencedor da partida Pr xima Troca de Neste campo apresenta a quantidade de ex rcitos dispon veis para a pr xima troca de carta Cartas para a troca Conforme o andar do jogo o jogador adquire cartas para poder efetuar sua troca onde s o apresentadas neste painel e por onde o jogador pode selecionar as cartas para troca no in cio de cada jogada e Informa es E o painel que apresenta dados diversos apresenta informa es como quantidade de ex rcitos a serem colocados nos territ rios valores sorteados no ataque de um territ rio como tamb m a vit ria de um dos jogadores da partida O cliente sempre faz requisi es ao servidor seja para saber quantos ex rcitos o jogador tem para colocar nos seus territ rios como para atualizar a sua tela e manter o jogador informado das movimenta es de seu oponentes 62 4 CONCLUSAO O desenvolvimento do projeto teve seu in cio com a an lise das regras do jogo WAR onde foi poss vel identificar como o sistema deve atuar determinando assim suas a es que devem ser executadas de forma autom tica como por exemplo a distribui o de cartas objetivo ao in cio do jogo e a distribui o dos ex rcitos no inicio do jogo o qual o sistema realiza de forma autom tica Outro ponto importante a forma que os partic
75. mericanos trabalhavam numa m quina eletr nica que se pudesse conduzir por um programa armazenado de instru es e fosse feita para executar c lculos num ricos complexos o que hoje se chamaria computador E segundo Flores 2003 o conhecimento humano prov m de tarefas que s o realizadas tendo elas sucesso ou n o e que esses conhecimentos adquiridos s o armazenados em forma de regras pr ticas a fim de utiliz las em um momento oportuno A modelagem de um sistema computacional para resolver problemas que utilizam conhecimento humano chamados de Sistemas Baseados em Conhecimento SBC requer a captura dessas regras heur sticas em um processo chamado de aquisi o de conhecimento Esse processo torna se o mais dif cil em um projeto de SBC tendo em vista que o conhecimento humano a soma de toda a experi ncia de vida da pessoa FLORES 2003 Conforme Rezende 2003 os SBC v em sendo utilizados a mais de 20 anos a fim de resolver problemas que de forma computacional seria complexa e na maioria das vezes requer a presen a de um especialista humano para resolv lo Flores 2003 diz que um SBC chega ao status de SE quando sua base de conhecimento tenha maturado a um status especialista Segundo Feigenbaum 1988 apud HARMON e KING 1988 um SE um programa para resolver problemas dif ceis e para tal utiliza o conhecimento e procedimentos que s o inerentes aos melhores profissionais do ramo Esse conhecimento
76. mesma partida definindo qual ser utilizada Pesquisar e selecionar t cnicas para conex o externa de outros computadores Definir as t cnicas de JA para a implementa o dos jogadores virtuais Modelagem do processo decis rio dos jogadores virtuais Modelagem do Jogo Implementar o Jogo Testar e validar o jogo 1 3 Metodologia Os jogos que fazem uso de jogadores virtuais foram analisados quanto a forma que esses jogadores s o incorporados aos jogos se s o externos a eles ou j est o impl citos no jogo e como se d a inclus o dos mesmos em uma partida se durante a partida pode se incluso mais jogadores ou se somente no in cio de cada partida As t cnicas para cria o de diversos jogadores virtuais levaram em conta que no uso de orienta o a objetos necess rio apenas criar uma classe jogador virtual e no jogo basta instanciar essa classe quantas vezes forem necess rias Quanto s t cnicas para conex o entre computadores foi levado em conta a forma que os jogos se conectam por meio de endere os Internet Protocol IP e sockets As t cnicas de Intelig ncia Artificial IA para implementa o dos jogadores virtuais foram definidas levando em conta que os jogadores virtuais possuem as caracter sticas de agentes e que a forma como eles interagem no jogo definido pelo objetivo escolhido A modelagem do processo decis rio foi realizada conforme cada objetivo existente no jogo e o
77. ne quais m todos ser o compartilhados com o cliente sendo essa classe chamada Servidor java no sistema Outra classe que cont m a implementa o desses m todos que deve ser definida como implements dessa classe sendo ela a classe ServidorImpl java Ao compilar o sistema o Java gera um arquivo com o nome da classe que implementou os m todos incluindo no nome o sufixo stub class esse arquivo deve ser inclu do ao projeto do cliente juntamente com a classe que serve de interface e cont m o cabe alho dos m todos compartilhados Com o RMI al m da possibilidade de executar um m todo remoto h a possibilidade de transferir objetos entre os sistemas sendo que a classe desses objetos deve conter em sua declara o implements Serializable que permite o envio do objeto utilizando essa conex o 3 2 5 Servidor E um sistema que gerencia o jogo e para isso prove m todos que s o executados pelo cliente remotamente via RMI Somente o servidor disponibiliza m todos para acesso sendo a transmiss o de informa es feita pela passagem de par metros aos m todos e recebendo os seus retornos 55 Al m do RMI a linguagem disp e de caracter stico para organizar o c digo fonte gerado sendo um deles o pacote poss vel criar reas para armazenar certos tipos de c digo fonte e dessa forma podendo ser classificados por tipos de c digos No caso do jogo foram classificados conforme a fun o que realizam no sis
78. no momento de repor ex rcitos caso o jogador obtenha a totalidade dos territ rios que faz parte Classe Territ rio Agrega a classe Continente e representa os territ rios do mapa contendo o nome do territ rio que representa o ex rcito ocupante quantidade de ex rcitos que est o ocupando o territ rio e uma lista dos territ rios que fazem divisa com o mesmo Classe Carta Territ rio Representa um territ rio com um s mbolo Classe S mbolo S o os s mbolos que combinados em uma carta territ rio possibilitam uma troca por ex rcitos ao jogador Classe Carta Coringa Cont m todos os s mbolos e pode ser combinada com outras duas cartas para proporcionar uma troca de ex rcitos para o jogador Classe Carta Objetivo Cont m o c digo do objetivo o qual deve ser cumprido para que o jogador seja vencedor Classe Jogador Cont m nome ex rcito escolhido IP do computador e se o jogador humano ou virtual representando assim o jogador Classe Gerencia Conex o Cont m o IP c digo da mensagem mensagem status do envio da mensagem e um status do recebimento servindo para fazer a liga o cliente servidor e servidor cliente Classe Ex rcito Cont m a cor do ex rcito 44 Continente CartaTerritorio CartaObjetivo TotalidadeQuantidadeExercitos int Territorio Territorio CodigoObjetivo int Nome String Simbolo Simbolo setCodigoObjetivo codi int void setNome nom
79. nome do marcador que antes de fazer a consulta na base de conhecimentos o sistema pegaria o arquivo texto contendo a regra a ser avaliada verificando se acha algum marcador a ser substitu do ao final do processo gerando um novo arquivo texto com os valores atualizados e prontos para serem avaliados Dessa forma a intelig ncia poderia ser aperfei oada criando novas estat sticas no sistema e novas marca es e tamb m alterando o arquivo texto contendo a intelig ncia a ser modificada e assim aperfei oando as regras do agente 3 2 3 1 Problemas no Uso do JCLIPS Ap s ser testado as regras de exemplo que est no site do JCLIPS n o foi encontrado problema em sua execu o Ao se tentar executar uma regra para c lculo de m dia Figura 22 o JCLIPS retorna um erro de sintaxe na defini o da regra sendo que esse erro acontece no momento em que carregado o arquivo de regras Conforme consulta feita na documenta o do CLIPS a sintaxe est correta e n o foi achado uma alternativa para poder se contornar o erro Devido a esse problema optou se por criar uma classe com as regras aninhadas em testes l gicos para poder fazer o agente interagir com o jogo defrule send result result result gt printout t Firing rule send result crlf send to java result defrule primeiraEtapa verificarMedia 11 12 13 assert media 11 712 213 3 test gt media 7 gt assert result Media Aprov
80. ntes como assistentes de 22 tarefa ou seja entidades de software que empregam t cnicas de Intelig ncia Artificial com o objetivo de assistir ao usu rio na realiza o de uma determinada tarefa agindo de forma aut noma e utilizando a met fora de um assistente pessoal Z E como cita Costa 1999 o termo agente utilizado na literatura computacional para determinar diversos tipos de programas n o necessitando apresentar comportamento inteligente Sabe se que dado um determinado sistema denomina se agente cada uma de suas entidades ativas O conjunto de agentes neste ambiente constitui uma sociedade Tal ambiente formado pelas entidades passivas A um agente cabe raciocinar sobre o ambiente sobre outros agentes bem como decidir racionalmente objetivos a seguir e a es a tomar FERREIRA 1993 Uma defini o segundo Maes 1995 apud Costa 1999 diz que agentes s o componentes de software que atuam automaticamente de forma que atendam os interesses dos usu rios E segundo Heidlmann et al apud Faraco 1998 diz informalmente que agentes s o tidos com algu m ou alguma coisa que age como procurador com o prop sito especifico de realizar a es tarefas que podem ser compreendidas como ben ficas a parte que esta representando Um agente um sistema de computador que est situado em algum ambiente e que capaz de executar a es aut nomas de forma flex vel neste ambiente a fim de sati
81. nto n o tenha terminado obrigando o m todo action a ser executado novamente Al m dos m todos citados acima que s o a parte principal do agente existem outros m todos para auxiliar na manipula o dos comportamentos como segue protected Agent myAgent Retorna o agente a qual esse comportamento pertence void block Bloqueia esse comportamento Pode ser passado como par metro um o tempo de bloqueio em milisegundos void block long tempo void restart Reinicia um comportamento bloqueado void reset Restaura o estado inicial do comportamento e boolean isRunnable Retorna se o comportamento est bloqueado ou n o No entanto conforme Silva 2003 existem outras classes derivadas do Behaviour que alteram a forma como o comportamento do agente executada e que s o listadas a seguir jade core behaviours CyclicBehaviour Comportamento at mico que deve ser executado sempre No caso o m todo done herdado da super classe Behaviour 35 sempre retorna false o que faz com que o comportamento se repita como se estivesse em um loop infinito Jjade core behaviours TickerBehaviour tarefas espec ficas No caso o desenvolvedor redefine o m todo onTick e inclui o trecho de c digo que deve ser executado periodicamente jade core behaviours WakerBehaviour executado depois de determinado tempo expirado No caso a tarefa inserida no m todo handleElapsedTimeout ch
82. o Movimentar c ccccssesessesesseseeseeseseseees 48 Figura 17 C digo para o comportamento padr o do agente rir 50 Figura 18 C digo para criar e iniciar um agente JADE renan 51 Figura 19 Classes para instanciar o agente no JOQO ee ceeseseecceeseeeecesseececsceccesseeeecesseaeeesesaeeeees 51 Figura 20 C digo de Exemplo de Conex o com 0 JCLIPS 52 Figura 21 Regra em JCLIPS ssusbessssca casei counkdtessenceseastvengta chance bay ohms adsa o ORORO TESE acesso ETIEN R SEs 53 Figura 22 Regras para calcular de m dia rr eree crer cer een nacerenaacanaa 53 Figura 23 Interface e Classe para rvore de decis o eeeesccceesesceecesseceeecesceceesesaceceeseneeeeessaeeees 54 Figura 24 Tela principal do Servidor rir erre ce ceraaacacenenanarernanananes 57 Figura 25 Tela Cria Seryidor neraet ionn s Oaet e oE OESS Sor EEn ESEAS Eoee ORINE aSa 57 Figura 26 Aguardando conex o de outros jogadores essesseeseeseesssressssretsseressssressssreessrteesesresss 58 Figura 27 Tela principal do programa cliente seesesseeeeeeeeseseeesseeeesssressssietssrtresesresssereessreresesresss 60 Figura 28 Conectar com o ServidOl esssccesssseceeesssceceesesceecesseaeeecesaecececsaececeseneeecesseaeescesaaeeeees 60 Figura 29 M pado JOSO nsien neras ea aeaea Penso so eesse e Nea EE re TEDER Eai 61 Figura 30 Diagrama de Atividade Inic
83. o de formas e o reconhecimento autom tico da linguagem natural De fato a Intelig ncia Artificial assemelha se em muitas coisas intelig ncia humana pois outros dos seus dom nios o desenvolvimento de sistemas base de representa o de conhecimento e a modeliza o de racioc nios Assim tal como a intelig ncia humana tamb m a Intelig ncia Artificial utiliza o racioc nio l gico a mem ria e a linguagem mas falta lhe um componente bastante importante da intelig ncia humana a emo o Na sec o de Sistemas Especialistas ser apresentada uma das in meras t cnicas existentes para representar o conhecimento humano e que ser utilizada no desenvolver deste projeto 2 4 1 Sistemas Especialistas Quibel e Roger 1989 iniciam sua defini o da engenharia do conhecimento pela defini o da pr pria palavra engenharia A engenharia comporta os m todos para estudo de um projeto e realiza o de um trabalho complexo por equipes diversas de especialidades complementares e 18 continua dizendo que desenvolver um SE aplicar uma engenharia do conhecimento a constru o de uma inform tica l gica refere se fatos e id ias e a capacidade de trat los os quais receber do exterior para deduzir um diagn stico uma preconiza o ou de fato uma decis o E conforme Crippa 2004 os SE t m sua origem no fim da Segunda Grande Guerra Nessa poca grupos independentes de cientistas ingleses e norte a
84. o Difusa Disserta o em Ci ncias da Computa o Florian polis 1998 GRIMSHAW D Artificial Intelligence Topics with Agents 2001 Original Notes of CPS 720 Dispon vel em http www ryerson ca dgrimsha courses cps720 index html Acesso em 13 fev 2003 GON ALVES C A Aquisi o e Representa o do Conhecimento para Sistemas Especialistas Faculdade de Economia e Administra o da Universidade de S o Paulo SP 1986 GROW Hist rico do Jogo 1997 Dispon vel URL http www grow com br historia centro htm acessado em 03 09 2005 HARMON P KING D Sistemas Especialistas A intelig ncia artificial chega ao mercado Rio de Janeiro Campus 1988 HELIN H LAUKKANEN M Performance Analysis of software agent comunication in slow Wirelerss IEEE International Conference on Computer Communications and Networks 2002 IBM Antivirus online scientific papers 1998 Dispon vel site IBM anti virus online URL http www av ibm com InsideTheLab Bookshelf ScientificPapers index html Consultado em 19 ago 1999 JADE Cselt http sharon cselt it projects jade Parma It lia 2003 68 JENNINGS N R WOOLDRIDGE M KINNY D A Methodology for Agent Oriented Analysis and Design Proc 3rd Int Conference on Autonomous Agents Agents 99 Seattle WA 28 1998 KERN E Uma Estrutura de Agentes para o Processo de Licita o Disserta o Mestrado em Ci ncia da Computa o UFSC 1998 KOLODNER J Case Based
85. o na linha 16 e em seguida fechando a conex o na linha 17 12 01 import java io 02 import java net 03 04 class TCPClient 05 public static void main String arqv throws Exception 06 07 String modifiedSentence 08 BufferedReader inFromUser new BufferedReader new InputStreamReader System in 09 Socket clientSocket new Socket hostservername 6789 0 DataOutputStream outToServer DataOutputStream clientSocket getOutputStream ie BufferedReader inFromServer new BufferedReader new 2 InputStreamReader clientSocket getInputStream 3 sentence inFromUser readLine 4 outToServer writeBytes sentence An 5 modifiedSentence inFromServer readLine 6 System out printin Resposta modifiedSentence 7 clienteSocket close 8 19 Figura 4 Cliente Socket Java usando a classe TCPClient Fonte Franco amp Yoshida 2004 A Figura 5 mostra um c digo fonte desenvolvido em linguagem Java onde criada uma classe servidora tendo por objetivo receber uma seqii ncia de caracteres de um cliente por interm dio da porta 6789 transformar esses caracteres em letra mai scula e enviar novamente ao cliente Na linha 08 criada uma escuta na porta 6789 com ServerSocket 6789 sendo que na linha 10 feito o recebimento das informa es da porta por welcomeSocket accept sendo colocado em inFromClient na linha 11 sendo colocado em uma vari vel do tipo carac
86. o que chamamos intelig ncia RICH amp KNIGHT 1994 Foram avaliados jogos que fazem uso de jogadores virtuais a fim de analisar o funcionamento t cnicas de intelig ncia artificial empregadas e o m todo de cria o desses Jogadores virtuais no jogo A execu o deste projeto de pesquisa tamb m se justifica em n vel de Trabalho de Conclus o de Curso para o Curso de Ci ncias da Computa o uma vez que trata do desenvolvimento de uma solu o computacional que faz uso de muitas tecnologias conceitos e teorias relevantes a essa rea tais como utiliza o de t cnicas de intelig ncia artificial para os jogadores virtuais reagirem as jogadas tomar decis es e tamb m aprender com jogadas de advers rios armazenamento dos dados obtidos no jogo jogadas movimentos modelagem de sistemas O jogo foi desenvolvido para a plataforma Windows sendo limitado em at seis jogadores humanos ou virtuais e o m nimo de tr s jogadores um humano e os demais podem ser humanos e ou virtuais podendo ser realizado em apenas uma m quina com somente um jogador humano e os demais virtuais como tamb m em uma rede local ou internet com v rios jogadores sejam virtuais ou humanos respeitando o limite m nimo e m ximo de jogadores Tendo dois modos servidor e cliente sendo que o modo servidor serve para criar um novo jogo e definir a quantidade de jogadores humanos e virtuais que ser utilizado no jogo O modo cliente serve para c
87. olvimento da partida tendo em vista que as regras j est o implementadas e o jogador n o poder executar a es que n o s o permitidas em um dado momento e assim o jogador precisa somente de um conhecimento b sico das regras Ao se analisar alguns jogos que permitem partidas em rede foi poss vel determinar como implementar o jogo com rela o aos m dulos que deveriam ser desenvolvidos tendo em vista que 65 os jogos em rede normalmente possuem um m dulo servidor que aceita as conex es de seus clientes Al m disso foi poss vel determinar como e quando os jogadores poderiam se conectar ao jogo Com a cria o do jogo foi poss vel entender na pr tica o funcionamento de sistemas distribu dos como tamb m t cnicas para depurar erros para esse tipo de sistema al m de ampliar o entendimento em intelig ncia artificial com a pesquisa e implementa o de agentes inteligentes e sistemas especialistas Tamb m foi poss vel aumentar o conhecimento sobre a utiliza o de processamento paralelo com o uso de threads E por fim foi poss vel identificar defeitos e acertos na gerencia e execu o de projetos agregando conhecimento para execu o de futuros projetos 4 1 Trabalhos Futuros O projeto possui muitos pontos que podem ser alterados para melhorar o seu desempenho como tamb m aperfei oamentos para aumentar a sua jogabilidade Algumas sugest es para trabalhos futuros s o Continuar a pesquisa sobre JCLI
88. onectar um outro jogador humano que estar em outro computador ligado em rede a um jogo criado pelo modo servidor a fim de possibilitar a participa o de outros jogadores 1 1 PROBLEMATIZA O 1 1 1 Formula o do Problema Para a execu o de uma partida no jogo WAR faz se necess rio a participa o de 3 ou mais jogadores sendo um m ximo de 6 onde para ter uma partida no m nimo interessante os participantes devem ter o mesmo n vel de conhecimento no jogo Ent o para iniciar uma partida s o necess rios 3 jogadores ou mais e um balanceamento no n vel dos mesmos 1 1 2 Solu o Proposta Com o intuito de facilitar o in cio de uma partida o presente projeto prop s o desenvolvimento de uma vers o eletr nica do jogo WAR com jogadores virtuais que participam de uma partida preenchendo assim o n mero m nimo de jogadores sendo que esses jogadores tem n veis de dificuldade afim de nivelar se com os demais jogadores humanos 1 2 OBJETIVOS 1 2 1 Objetivo Geral O objetivo geral deste projeto desenvolver uma vers o eletr nica do jogo WAR implementando jogadores virtuais para v rios jogadores simult neos 1 2 2 Objetivos Espec ficos Para atingir o objetivo geral proposto foram alcan ados os seguintes objetivos espec ficos Analisar e implementar as regras do jogo Analisar jogos que fazem uso de jogadores virtuais Pesquisar t cnicas para cria o de diversos jogadores virtuais em uma
89. op es diferentes O m dulo servidor oferece as seguintes fun es Criar Servidor cria um novo jogo onde define quantos jogadores poder o fazer parte da partida verifica se todos j est o conectados e prontos e defini a quantidade de jogadores virtuais que participar o do jogo Par metros de Jogo o jogador define todos os mesmo par metros do modo cliente e tamb m a quantidade de jogadores que podem fazer parte do jogo quantos ser o jogadores virtuais e que a partida deve iniciar O m dulo cliente possui as seguintes fun es 42 Conectar possibilidade do jogador participar de uma partida em inicio onde define o nome do mesmo no jogo qual sua cor de ex rcito e que est pronto para iniciar a partida Par metros de Jogo em modo cliente o jogador define o nome cor de ex rcito e se est pronto para o in cio da partida Em modo servidor o jogador define todos os mesmo par metros do modo cliente e tamb m a quantidade de jogadores que podem fazer parte do jogo quantos ser o Jogadores virtuais e que a partida deve iniciar Usu rio Parametros Pegar Carta do Jogo Objetivo Parametros de Jogo Trocar Carta Territ rio por ex rcitos Movimentar Ex rcitos M dulo Servidor M dulo Cliente Figura 11 Diagrama de USE CASE Pegar Carta Objetivo o jogador no in cio do jogo deve pegar uma carta objetivo sendo jogador humano ou virtual o qual o jogador deve cumpri
90. ore de Decis o cccsccsssssssssssesssssesssssssssssssssssssssesssssssssssesessssesssssseesssssees 45 3 1 4 An lise de RISCOS cessar sa iara st scctsavsevaetasscdaabsovbacsaetscutseduatiasseadeess 48 3 2 IMPLEMENTA O cara A aaa 49 3 2 1 Implementa o dos Agentes s iss ccccccccsssesscvccosasssssoeasecedesesvecosesseccusvebesadeveses 49 3 2 2 Implementa o das Regras esseesssosessesssossesessscosesesssoosessessoossesssssoesesssssso 52 3 2 3 Usando o JCLIPS isisscccissvisuvstccssisessssssavecsidcessusnsnievatesdasessedscesseseceseeeseduvenveunse 52 3 2 4 Comunica o entre Sistemas esesssossssesssocsesesssocsesesssooseesessoossesssssoesesssssoo 55 RE E A O TET E EE EEE E EET 55 352100 E E nas E EE EE E E EEE E 58 4 MOON GE SAO rasciashaistasissninecsnnnsisics ccsscssececcesecccsesaussnssecnccesecccsesavanesies 63 4 1 TRABALHOS FUTUROS sccssssscnsiesicscssevssccvevcccssnsavtinentessesestevnsevesivesguvcevevsivs 66 REFER NCIAS BIBLIOGRAFICAG ccsssssssssssssssssssssssasensescsssensers 67 EEE E TS TES 72 DIASRANAS srcsano rasante anta RANCOR SST 656k 5 5 GG ESSEE SSES EEES SS S STAN SOS 74 A 1 DIAGRAMAS DE ATIVIDADES ccsssssssssssssssssscccsssssssssccssssssssessssssees 74 Ad Inicializa Jogo SErVICOL siscscsesssessseiesecosesesencnesevesndesesesesesessasecesovesevesseasenns 74 A 1 2 Inictaliza Jogo Cliente ivcascessisvcssscostsssvecisseiensendcesevasduaiersiessssrcisyucpavcdevedesosihe 75 Pi MS PAU ONG ini ar
91. ornou se o primeiro jogo do Brasil destinado para o p blico adulto 2 1 2 Componentes do Jogo Inicialmente h um mapa Figura 1 semelhante ao mapa do mundo dividido em seis continentes sendo que cada continente tamb m dividido em um determinado n mero de territ rios Figura 1 Mapa do Jogo WAR Fonte Grow 1997 Juntamente com o mapa h outros elementos Figura 2 que comp e o jogo sendo eles Ex rcitos s o pe as coloridas que representam onde o jogador est situado no jogo e o seu poder de ataque e defesa Cartas territ rio onde cada territ rio do mapa cont m a sua carta correspondente Cartas objetivo onde est o impressos os objetivos ao qual cada jogador ter que alcan ar conforme a carta que escolher f an rA b c Figura 2 Outros Componentes do Jogo WAR a ex rcitos b cartas territ rio c cartas objetivo Fonte Grow 1997 2 1 3 Funcionamento do Jogo Segundo a Grow 1997 cada participante deve escolher um ex rcito da cor que preferir Logo ap s sorteado uma carta objetivo para cada participante que por sua vez n o poder revel lo aos demais jogadores at o final da partida Em seguida cada participante joga um dado sendo que aquele que obtiver o maior valor dever distribuir as cartas territ rio Esse processo dever iniciar se por si mesmo e em seguida ao jogador mais a esquerda Ap s a distribui o das cartas territ rio cada partic
92. que pode ser feito para alcan ar esse objetivo A modelagem do jogo foi desenvolvida no modelo de UML usando os diagramas de caso de uso de classes de segii ncia A implementa o do jogo foi utilizado a interface de desenvolvimento NetBeans 5 0 da Sun Microsystens e a linguagem de programa o JAVA onde foi utilizado RMI para permitir a comunica o entre cliente e servidor o framework JADE para implementar os jogadores virtuais e tamb m a APIJCLIPS para manter as regras que formam a intelig ncia Os testes foram realizados conforme o desenvolvimento de novas funcionalidades A execu o foi realizada em um computador executando um servidor e dois a tr s clientes Ap s o sistema permitir a execu o de uma partida completa foram utilizados tr s computadores sendo que um deles iniciou o servidor e um cliente e os demais somente o sistema cliente 1 4 Estrutura do trabalho O presente documento est dividido em quatro cap tulos sendo que no cap tulo 1 est a Introdu o que traz uma abordagem geral do trabalho o problema relatado os objetivos a serem alcan ados e a metodologia empregada O Cap tulo 2 Fundamenta o Te rica apresenta uma revis o bibliogr fica sobre as regras do jogo WAR forma de conex o entre computadores voltada ao jogo Intelig ncia Artificial o qual ser empregado a t cnica de Sistemas Especialistas para modelar o conhecimento dos jogadores virtuais Agentes Inteligentes a fo
93. r alian as com outros humanos jogadores Os agentes inteligentes devem ter um certo grau de comunica o seja entre eles com o sistema ou mesmo com os jogadores humanos na sec o a seguir ser o apresentadas t cnicas para comunica o de agentes inteligentes 27 2 4 4 Comunica o entre Agentes Da mesma maneira que os seres humanos precisam interagir com as demais pessoas que as cercam a fim de realizar uma tarefa a mesma necessidade os agentes sentem na hora de se comunicar para atingir um objetivo E essa situa o inclui consultar outros agentes responder a perguntas de outros agentes participantes aceitar sugest es propostas desafios e impedimentos dividir as experi ncias vividas no meio virtual etc LUCENA 2003 E conforme Loh e Garin 2004 quando existem v rios agentes inteligentes atuando de forma integrada e cooperativa o sistema chama se de sistema de multiagentes Geralmente cada agente inteligente possui conhecimentos pr prios e diferentes Estes indiv duos interagem entre si compartilhando informa es e conhecimento para solu es de problemas mais complexos os quais dificilmente seriam resolvidos por qualquer um dos indiv duos de maneira isolada Para tanto os agentes possuem meios de comunica o entre eles e cada modelo tem uma caracter stica para a troca de informa o que pode ser o uso do quadro negro ou a troca de mensagens como p ginas amarelas e p ginas brancas O quadro
94. r para poder vencer a partida Repor Ex rcitos no in cio da jogada o jogador coloca mais ex rcitos no mapa refor ando o seu ex rcito e possibilitando ataques Cancelar Jogo somente no servidor o jogador pode cancelar uma partida Atacar O jogador seleciona o territ rio do qual vai atacar e depois seleciona o territ rio a ser atacado Logo ap s o atacante seleciona a op o de atacar onde o sistema sorteia os valores de ataque e defesa conforme a quantidade de ex rcitos de cada territ rio O sistema compara os resultados de ataque e defesa avaliando o dado com maior valor de ataque com o dado de maior valor de defesa sendo que ganha aquele que obtiver o maior valor em casos de empate a vit ria declarada para o ex rcito defensor 43 Movimentar Ex rcitos O jogador que estiver atacando indica que n o vai mais continuar a sua jogada e movimenta os ex rcitos de um territ rio a outro desde que elas fa am fronteiras sendo que a quantidade de ex rcitos a serem movimentados n o deve ultrapassar 3 ex rcitos por rodada Pegar Carta Territ io Ap s terminar a jogada e movimentar os ex rcitos o jogador tem direito a pegar uma carta caso tenha ganhado novos territ rios durante sua jogada retirando ela do monte de cartas territ rio e coringa misturados Na Figura 12 s o apresentadas as classes que comp e o projeto Classe Continente Conter o nome do continente e a quantidade de ex rcitos a ser recebido
95. ra que eu pudesse levantar e seguir em frente Agrade o ainda ao meu amigo Marcos que foi uma pessoa que conheci por acaso na faculdade e se tornou uma das nicas amizades verdadeiras que tenho na vida n o esquecendo de sua noiva Zahie que entrou na fam lia a pouco tempo mas que considerada com uma velha amiga N o posso esquecer todos os professores que de uma forma ou de outra agregaram conhecimento e li es que levarei para o resto de minha vida Dentre eles destaco o professor Rudimar que al m de me orientar nesse trabalho e me incentivar quando pensava em desistir mostrou se um amigo em que podemos confiar Agrade o a professora Anita que com o seu jeito severo me mostrou que mesmo com as adversidades devemos continuar em frente e n o desistir E por fim agrade o a todos que as vezes com apenas uma palavra me apoiaram e depositaram f no meu trabalho e nas minhas a es Obrigado iii SUMARIO LISTA DE ABREVIATURAS eseccccccccccceccccccccccccccccccccccccccccccccccccccesesee vi LISTA DE FIGURAS ssccccccccctucccucckivssssssssssessss55555555555555555555555555555555s500008 vii LISTA DE TABELAS iriisiiisissssssssosssssssssssssssssssssssssssssssssssssssssssssssssscesi viii RESUM O iassssscssicssssssacicssssssssccccccccicctionennrnnnrseccnnnnnnnnnnnenennvevveevvvvvvensevicdddes ix ABSIRACT scsssssssssssssssssssssssssssssssss sssssssssssssssssssssssssssssssssssssssssssssisssssssss s X 1 INT RODU CA O
96. ra a cria o de um agente com o uso do JADE deve ser fornecido o tipo de comportamento que o agente ter Para o projeto foi cogitado a utiliza o do CyclicBehaviour OneShotBehaviour e SimpleBehaviour A escolha foi feita pelo SimpleBehaviour pois h o controle direto da forma que o comportamento reage a partir do uso do m todo action onde colocado o c digo que servir de comportamento para o agente e do m todo done que informa quando o comportamento deve parar A Figura 17 cont m a classe Java com o c digo que utilizado para gerar o comportamento do agente onde herda do JADE a classe SimpleBehaviour e assim sendo necess rio implementar os m todos action e done 49 Declara uma classe Java herdando do JADE o SimpleBehaviour public class ComportamentoPadrao extends SimpleBehaviour Indica que o agente terminou private boolean terminou false Determina qual a a o atual do jogador virtual private Enumerados acoes acaoAtual Enumerados acoes inicio_jogada Creates a new instance of ComportamentoPadrao public ComportamentoPadrao public void action if acaoAtual Enumerados acoes inicio_jogada inicioJogada acao de distribuir ex rcitos else if acaoAtual Enumerados acoes ataque atacarTerritorio acao de atacar else if acaoAtual Enumerados acoes redistribuir redistribuirExercitos acao de redistribuir os ex rcitos no mapa
97. rama o em camadas 3 2 6 1 Telas do Programa Cliente O cliente em sua tela principal disponibiliza o menu jogo que permite ao jogador conectar se a uma partida a partir da op o conectar ao qual poss vel passar as configura es realizadas no servidor e assim conectar se a ele e sair para poder finalizar o programa conforme Figura 27 59 i g a wn g amp WAR Cliente 2 0 oe onectar re Figura 27 Tela principal do programa cliente Ao tentar conectar o cliente ao servidor apresentada uma tela de configura o Figura 28 devem ser passados os dados do servidor e do jogador para que ele possa entrar em uma partida Conectar Servidor Eee DO Nome Jogador Cor Ex rcito Branco v IP Servidor Nome Servidor localhost lwar Porta 1045 Cancela Figura 28 Conectar com o Servidor Os campos e suas fun es s o listados a seguir Nome Jogador informado o nome do jogador que ser apresentado em uma lista com o nome dos participantes no mapa do jogo Cor ex rcito Cada jogador deve selecionar uma cor ao qual ser utilizada para identificar quais territ rios s o de posse do jogador e quais s o dos advers rios Porta o n mero da porta que o servidor est executando E L IP Servidor N mero IP da m quina em que o servidor est rodando e Nome Servidor Nome
98. rer da partida ou seja n o h a necessidade de que haja uma quantidade m nima de jogadores para iniciar uma partida mas em alguns jogos os jogadores devem estar presentes antes de a partida ser iniciada sendo que ap s o seu in cio n o h a possibilidade ser adicionado jogadores enquanto esta n o chega ao t rmino O WAR um jogo onde s pode ser iniciada uma partida com o m nimo de tr s jogadores sendo que todos devem estar presentes desde o in cio da partida e n o podendo ser inclu do nenhum jogador no decorrer da mesma Cada jogo possui caracter sticas espec ficas onde foram avaliadas as seguintes caracter sticas Tabela 2 14 Tipo de Jogo onde avaliado o jogo conforme o g nero Tipo de Jogador Virtual onde identificado se os jogadores s o implementados no jogo interno ou se os jogadores virtuais devem ser acrescentados ao software sendo eles da pr pria empresa desenvolvedora ou de terceiros externo e Incluir Jogadores indica como os jogadores podem ser inclu dos na partida se somente no in cio ou se durante o desenrolar do jogo podem ser inclu dos mais Jogadores Tabela 2 Caracter sticas de Outros Jogos X WAR Total Counter Strike Unreal WAR Projeto Annihilation Tournament Tipo Jogo Estrat gia Tiro em Primeira Tiro em Primeira Estrat gia Pessoa Pessoa Tipo Jogador Interno Externo Interno Interno Virtual Incluir In cio Partida In cio e Durant
99. rir um determinado objetivo e dessa forma vencer a partida O jogo WAR apresenta diversas regras que devem ser cumpridas no decorrer da partida sendo elas um obst culo para jogadores iniciantes Outra dificuldade encontrada nesse jogo que devido ao seu g nero e aliado com a quantidade m nima de jogadores exige dos participantes um certo nivelamento em suas habilidades estrat gicas O presente projeto criou uma vers o eletr nica do jogo WAR e utilizou para isso a linguagem Java permitindo que os jogadores possam participar de partidas desse jogo em computadores distribu dos em uma rede com o emprego da tecnologia de RMI Remote Method Invocation Al m disso s o implementados jogadores virtuais aos quais poder o ser adicionados na partida para completar a quantidade m nima de jogadores ou mesmo para aumentar a quantidade de participantes Para isso s o aplicadas t cnicas de Intelig ncia Artificial IA e Agentes Inteligentes a fim de fazer os jogadores virtuais representarem jogadores humanos em suas a es sendo que para representar os conhecimentos desses jogadores foi utilizada a t cnica de Sistemas Especialistas SE simulando as decis es que uma pessoa tomaria conforme as a es a serem realizadas no jogo Palavras chave Intelig ncia Artificial Agentes Inteligentes Jogos IX ABSTRACT WAR is a game of strategy sort where in a tray with a map printed the players dispute territories with theirs armies in ord
100. rit rio ocupado desde que fa a divisa ou apontado por setas e na quantidade m xima de tr s ex rcitos por territ rio a cada rodada sendo obrigat rio ficar um ex rcito no territ rio simbolizando a ocupa o do mesmo ou seja se o jogador movimentou tr s ex rcitos para um outro territ rio onde esse teria somente dois ex rcitos ficando com cinco ao todo o jogador poder movimentar dois ex rcitos do territ rio que acabou de receber refor o pois tinha somente essa quantidade antes de receber o refor o Ap s a movimenta o de ex rcitos o jogador n o poder fazer mais nenhum ataque at que os demais jogadores tenham jogado O jogador pode adquirir uma carta territ rio para troca mediante a conquista de um territ rio durante a sua rodada sendo que se o jogador tentou atacar territ rios mas n o teve xito em nenhum ataque fica impossibilitado de receber uma carta Caso consiga adquirir pelo menos um territ rio indiferente da quantidade de derrotas tem o direito de receber a carta A troca de carta por ex rcitos s ser poss vel quando o jogador estiver iniciando a sua rodada e no momento de repor ex rcitos no mapa e tenha tr s cartas territ rio com o mesmo s mbolo ou com os s mbolos totalmente diferentes ou ainda com duas cartas com o mesmo s mbolo ou s mbolos diferentes mais um coringa Todas as cartas territ rios possuem um s mbolo sendo que h somente tr s s mbolos diferentes que pode
101. rma de comunica o entre eles os padr es definido pela FIPA para o desenvolvimento de agentes inteligentes e o framework JADE para auxiliar na implementa o dos agentes inteligentes O Cap tulo 3 Desenvolvimento apresenta a metodologia para desenvolver o jogo incluindo requisitos funcionais e n o funcionais diagramas de USE CASE e CLASSE juntamente com as rvores de decis o utilizadas na base de conhecimento do jogador virtual an lise de riscos implementa o onde utilizado a linguagem JAVA comunica o entre os sistemas como tamb m o funcionamento dos sistemas cliente e servidor O Capitulo 4 Conclus o feito um fechamento do trabalho onde s o avaliados as t cnicas utilizadas como tamb m as dificuldades encontradas e suas resolu es O texto ainda inclui nove ap ndices que completam as informa es apresentadas 2 FUNDAMENTACAO TEORICA 2 1 O Jogo WAR O jogo WAR classificado como um jogo de estrat gia ou seja os jogadores participantes devem utilizar os meios dispon veis para alcan ar o seu objetivo GROW 1997 2 1 1 Hist rico Ao final dos anos 60 quatro alunos da faculdade de engenharia da Poli Universidade de S o Paulo USP ap s a formatura decidem iniciar um neg cio pr prio Ap s observarem o mercado constatam que o mercado para jogos adultos era promissor Ent o em agosto de 1972 criam a empresa GROW Jogos e Brinquedos S A sendo o seu primeiro produto o jogo WAR e t
102. ros agentes artificiais ou humanos para completar suas pr prias solu es de problemas ou ajudar outros com suas atividades Segundo Wooldridge 1999 as tr s caracter sticas citadas reativo pr ativo e social s o suficientes para classificar um agente como inteligente Os agentes inteligentes mais que todos os outros ramos da IA est o presentes na resolu o dos problemas dos usu rios comuns Hoje a internet conta com diversas iniciativas que utilizam agentes desde sites que comparam pre os de produtos para compra at mecanismos de busca inteligentes que navegam dentro das p ginas web apresentando o resultado da busca classificado pelo grau de acerto e relev ncia dos assuntos A Figura 7 ilustra as caracter sticas de um agente sob a perspectiva de Wooldridge e Jennings 1998 S o evidenciadas as capacidades de persist ncia estado interno reatividade percep es e a es e pr atividade a es Sensores Ambiente Atuadores Figura 7 Caracter sticas de Agentes Fonte Grimshaw 2001 Um agente deve ser capaz de perceber seu ambiente atrav s de sensores e agir de forma aut noma sobre este ambiente atrav s de seus executores que realizam a es RUSSEL 1995 24 Contudo Russel e Norvig 1995 deixa em aberto a defini o da racionalidade em si o que n o esclarece por completo o tipo de comportamentos esperados dos agentes para que eles possam ser considerados intelig
103. rvidor inicia a partida Iniciar Jogo Afar Jogo Conectans Espera outros se conectarem Come o Jo Servidor sem Conex o Figura 33 Diagrama de Estado Iniciar Jogo 77 A 2 2 Durante o Jogo Ao inicio de cada rodada onde um jogador deve repor ex rcitos atacar moviment los e depois parar o sistema dever reconhecer a quantidade de ex rcitos que s o de direito do jogador a quem o mesmo vai atacar isso se o jogador desejar atacar se ganhou territ rios dando o direito de o jogador receber uma carta para troca se est parando possibilitando assim movimentar ex rcitos entre os territ rios que fazem divisa e entregar uma carta para troca a ele s ie Distribui ex rcitos Seleciona territ rio Seleciona territ rio a ser atacante atacado o Continuar Sim Jogador vai Atacando atacar N o lt p Joga os dados P Jogador Nao N o l Venceu T Nao Retira ex rcitos perdidos Da para Sim Continuar Atacando Fi carta se liver Movimenta ex rcito para ireito territ rio conquistado Figura 34 Diagrama de Estado Durante o Jogo 78 A 2 3 Comunica o entre Computadores A comunica o entre o cliente e servidor se dar por interm dio de mensagens utilizando socket Ent o o cliente envia uma mensagem ao servidor que por sua vez processa essa mensagem e retorna ao cliente Esse ciclo continua at que o cliente feche a conex o
104. s de sockets ou invoca o remota de m todos Remote Method Invocation RMD Mobilidade No Java essa caracter stica poss vel atrav s da portabilidade do bytecode e dos arquivos JAR execut vel do Java Essa mobilidade tamb m permite enviar os c digos pela rede e executar em outra m quina Pela sua mobilidade pode atuar em sistemas distribu dos e em m quinas diferentes utilizando tecnologias pr prias para que opere nestes ambientes sendo necess rio o Remote Method Invocation RMD que uma das ferramentas dispon veis que Java utiliza Conforme Bigus e Bigus 2001 na chamada remota de m todos RMI que um conjunto de classes e interface em Java que encapsulam muitos mecanismos de troca de dados em alguma outra JVM Java Virtual Machine Um objeto RMI um objeto remoto em Java e seus m todos podem ser chamados de outra JVM utilizado em rede 37 3 DESENVOLVIMENTO Neste cap tulo ser o descritos os processos para desenvolver o projeto desde o seu planejamento com levantamento de requisitos regras de neg cio an lise de riscos at a parte de implementa o como padr es utilizados linguagem tecnologia para implementa o dos agentes JADE e sistemas gerados Cliente e Servidor 3 1 MODELAGEM 3 1 1 Requisitos do Sistema Nesta se o s o descritas a regras do jogo como tamb m identificados os requisitos funcionais e n o funcionais do sistema 3 1 1 1 Regras de Neg cio O
105. s e Quantos Virtuais Sistema Espera a Conex o de Jogadores Externos Caso Exista Cria Lista de Jogadores Com Respectivos IP s Cancelar Jogo Figura 30 Diagrama de Atividade Inicializa Jogo Servidor A 1 2 Inicializa Jogo Cliente O cliente todo aquele que fizer parte de uma partida e que n o seja o servidor O diagrama abaixo mostra como dever ser portar o sistema ao fazer parte de uma partida criada por um servidor O usu rio entra com o IP e porta do servidor onde o cliente far a conex o com o servidor a fim de verificar se o servidor est iniciado em seguida entra com os dados de nome e cor de ex rcito ap s indica se est pronto para iniciar uma partida e fica aguardando o servidor inici la Usu rio coloca porta e IP do servidor Programa verifica a conectividade com o servidor Usu rio coloca o nome Usu rio seleciona a cor de Verifica se existe outro usu rio ex rcito ee com a mesma cor no servidor Confirma estar pronto para jogar para o servidor Espera o servidor come ar a partida Cancela a partici partida pa o na Figura 31 Diagrama de Atividade Inicializa Jogo Cliente A 1 3 Partida O decorrer de uma partida de jogo segue algumas regras ao qual o sistema deve monitorar para que sejam respeitadas Diagrama representado pela Figura 32 mostra como funcionar o decorrer de uma partida O sistema inicia distri
106. sde os iniciantes at os mais experientes Ent o este projeto prop s implementar uma vers o eletr nica do jogo WAR com uma interface prim ria onde ser poss vel visualizar o mapa do mundo conforme o jogo dados sobre quantidade de ex rcitos de cada cor nas regi es as cartas atuais do jogador e informa es de quem ganhou ou perdeu a disputa e utilizar jogadores virtuais afim de que uma pessoa possa utiliz lo sem a necessidade de mais jogadores humanos ou seja somente um jogador humano com v rios jogadores virtuais ou mesmo aumentar a quantidade de jogadores com v rios jogadores humanos e v rios jogadores virtuais sendo que os demais jogadores humanos estar o acessando o jogo a partir de outros computadores em um ambiente multiplayer Para implementar os jogadores virtuais foi utilizado os conceitos de agentes que conforme Wooldridge 1999 um agente um software aut nomo capaz de executar a es em um ambiente a fim de alcan ar um objetivo Para classificar um agente deve se perceber as seguintes caracter sticas Reativo onde o mesmo percebe o ambiente e reage a ele Pr Ativo onde deve atuar direcionado ao objetivo Social deve interagir com outros agentes ou com humanos Sendo assim o jogador virtual classificado como um agente inteligente por executar a es no ambiente do jogo atacar repor ex rcitos com o prop sito de alcan ar um objetivo e exibem de alguma forma caracter sticas associadas a
107. sfazer seus objetivos de projeto WOOLDRIDGE 1999 Um agente uma entidade qual se pode associar uma identidade nica e que capaz de realizar c lculos formais Um agente pode ser considerado como um meio que produz um certo n mero de a es a partir dos conhecimentos e mecanismos internos que lhe s o pr prios GASSER 2002 Um agente um software que sabe fazer coisas que provavelmente voc faria voc mesmo se tivesse tempo SELKER 2001 Uma defini o associada a agentes em software capazes de trafegar atrav s de uma rede de computadores e interagir com outros elementos aut nomos um agente uma entidade que executa um conjunto de opera es que lhes foram incumbidas por um usu rio ou outro programa com algum grau de independ ncia ou autonomia e executando estas opera es emprega algum conhecimento dos objetivos ou desejos do usu rio IBM 1998 A flexibilidade das a es o que distingue um agente de um programa de controle de processos Segundo Jennings et al 1998 flexibilidade significa que o sistema 23 Reativo agentes devem perceber seu ambiente e responder oportunamente s mudan as que ocorrem nele Pr ativo agentes n o devem simplesmente atuar em resposta ao ambiente devem exibir um comportamento oportunista e direcionado ao seu objetivo e tomar a iniciativa quando apropriado e Social agentes devem interagir quando apropriado com out
108. stndetenevessieeteseveteversvoncvanubnesdsent AS ADD RAP 9 22 CONEX O MULTIPLAYER aiiiar iei akai a aA AE EEE 11 2 2 1 Modos Cliente e Servidor ssssssccccccecccccsssssssssococccocccecssssesessssoocsoccccesssesee 11 2 3 OUTROS JOGOS wise ossa05 aieadsvena sabes ibaculsenatinsssnnababasteaciiessseiaasatuibalenieaiacselins 14 2 4 INTELIG NCIA ARTIFICTAL cccssscsssssscsssssssnssonsesssnsscnsensssnscsnsensenssenseaes 15 2 4 1 Sistemas Especialistas issivsiavissssssivsieiavecdecilssivesuetensseslecssisssivtovsievsonescevetesdaite 18 2 4 2 Ferramentas de Infer ncia csccsssssssssssssssscsssscsssscesscessssssssssssssccees 21 2 4 3 Agentes Inteligentes cccinissovsseveresssdavosesesevosgsevobedeonevesedesevescsoseeooneeencbuboveduneeeess 21 24 4 Comunica o entre Agentes eessssessoosessessooesesesssoesesessoooseesessoossesosssoesesssssse 28 Deeds UPA EE EE E OEE E TE E S ET 29 2 46 JADE suis Sass cueestse cues estcnsstackasasvcsvuedscsacscetcvabssessucechacdedaasubsevess Cu cata dir adj 30 2 4 7 Linguagem JAVA anananiasan dani ii assess ditas 36 3 DESENVOLVIMENTO asus cosssssssssssssssssssssssssssssssssssssssssss ss ssa ddo 38 31 MODELA GE Me svejessssseisiusstteisensctctelassatacadsisssbessesatbaancdees cosaesessesedsdetanedessuecesss 38 3 1 1 Requisitos do Sistema asia sainte ani arianos inn 38 3 1 2 Casos d USO xcs vssncsevesstandccvcissssvessusscctaceesassasehissacesccedavessassedeuscencoteecvonsaessbessses 42 3 1 3 rv
109. tador que dever estar em rede com os demais participantes e o servidor 2 2 1 Modos Cliente e Servidor O jogo foi desenvolvido com dois m dulos um cliente e outro servidor Figura 3 O m dulo servidor utilizado para criar uma nova partida Neste m dulo s o informados quantos jogadores participar o do jogo quais ser o jogadores virtuais e quais humanos Se houver mais de um jogador humano o servidor fica em modo de espera at que todos os jogadores humanos estejam conectados ao servidor e permitindo assim o in cio da partida Servidor Clientes Figura 3 Escopo da conex o multiplayer 11 O m dulo cliente serve para conex o com o servidor sendo informado o IP Internet Protocol da m quina servidora permitindo que o cliente possa se conectar com o servidor O cliente envia mensagens para o servidor informando que deseja fazer uma conex o e o servidor retorna informando ao cliente se a conex o pode ser estabelecida e se as caracter sticas do jogador foram aceitas Em ambos os m dulos o jogador define o nome ao qual representar o mesmo no jogo e qual a cor de ex rcito que deseja utilizar A conex o entre cliente e servidor se d com a utiliza o de sockets Conforme Franco amp Yoshida 2004 sockets s o portas l gicas onde programas distribu dos em uma rede podem se comunicar Esses sockets s o numerados variando de O 65536 para utilizar uma dessas portas l gicas b
110. tema Um padr o comumente utilizado por desenvolvedores Java os pacotes devem vir com o dom nio da internet para facilitar a integra o de pacotes de terceiros sendo assim os pacotes relacionados com o jogo e pertencentes ao sistema servidor come am com br com tcc war server Ent o no sistema servidor temos os pacotes iniciando em br com tcc war server continuando a nomenclatura como segue base neste pacote est o contidos classes que formam a base do sistema como classes que modelam os territ rios continentes ex rcitos jogadores e etc controle cont m classes que controlam o funcionamento do sistema s o classes que cont m as regras de neg cio gui as classes deste pacote s o geralmente telas que devem ser usadas para intera o do usu rio com o sistema principal nestes pacotes est o classes que fazem parte da tela principal do sistema e servidor as classes que fazem parte deste pacote s o aquelas que disponibilizam m todos a serem acessados por outros sistemas via RMI O servidor controla a lista de cartas territ rio que devem ser distribu das aos jogadores A cada fim de jogada o jogador que conseguiu obter um ou mais territ rios tem direito a uma carta territ rio a qual poder ser utilizada mais frente para obter mais ex rcitos O servidor det m a lista das cartas como tamb m a ordem em que ser o entregues As a es que o jogador pode realizar s o libera
111. tere na linha 15 e transformado para mai sculo na linha 16 sendo enviado novamente para o cliente por outToClient criado na linha 13 e envia os dados por interm dio da propriedade writeBytes na linha 17 01 import java io 02 import java net 03 04 class TCPServer 05 public static void main String argv throws Exeption 06 String clientSentence 07 String capitalizedSentence 08 ServerSocket welcomeSocket new ServerSocket 6789 09 While true 0 Socket connectionSocket welcomeSocket accept 1 BufferedReader inFromClient new BufferedReader new InputStreamReader 2 connectionSocket getInputStream 3 DataOutputStream outToClient new DataOutputStream 4 connectionSocket getOutputStream 5 clientSentence inFromClient readline 6 capitalizedSentence clienteSentence toUpperCase An 7 outToClient writeBytes capitalizedSentence 8 9 20 Figura 5 Servidor Socket Java utilizando a classe TCPServer Fonte Franco amp Yoshida 2004 13 Al m do jogo WAR existe outros jogos que oferecem somente op es multiplayer ou seja n o existe uma op o de jogo desenvolvendo uma hist ria sendo exemplos desses jogos o Counter Strike Sierra e o Unreal Tournament Epic Games alguns ainda n o oferecem a op o de utilizar jogadores virtuais Na se o seguinte ser o exemplificados alguns jogos que fazem uso de conex o multiplayer e que usam joga
112. tida e ainda mais dif cil achar uma pessoa experiente no jogo ao qual n o seja necess rio explicar todas as regras desse mesmo jogo e a forma de jogar Essa dificuldade aumenta quando um jogo tem a quantidade de pessoas m nimas para dar in cio a uma partida como o caso do jogo WAR que precisa tr s ou mais jogadores Segundo o manual do usu rio do jogo Grow 1997 o jogo trata de conquistas de territ rios por interm dio de batalhas entre soldados com o intuito de alcan ar um objetivo previamente selecionado por cartas Esse um jogo de estrat gia onde praticado em um tabuleiro que tem impresso os continentes e em cada continente as divis es regionais que n o necessariamente representa a realidade Para poder dar in cio a esse jogo h a necessidade de no m nimo tr s jogadores chegando ao m ximo de seis Por ser um jogo que exige tempo e tamb m certo nivelamento estrat gico entre os participantes para que haja uma partida no m nimo interessante fica dif cil arranjar o m nimo de jogadores para realiz la Ent o alguns jogos fazem uso de jogadores virtuais para amenizar esse problema Um exemplo de jogo que pode fazer uso de jogadores virtuais para poder ser realizada uma partida o jogo Couter Strike Esse jogo em primeira pessoa ou seja o jogador n o v a pr pria personagem somente a arma e os outros jogadores Os jogadores s o divididos em dois times um policial e outro terrorista O objetivo
113. tinuar com o desenvolvimento do sistema e permite que as regras sejam implementadas n o somente na linguagem em que foi desenvolvido o sistema mas como tamb m com ferramentas de terceiros 54 3 2 4 Comunica o entre Sistemas A t cnica de comunica o define como o sistema realiza a comunica o entre o cliente e o servidor Inicialmente seriam utilizadas fun es da linguagem Java que se utiliza de socket para envio e recebimento de mensagens Logo essas mensagens seriam interpretadas e traduzidas em a es que o sistema deveria realizar Esse sistema funciona muito bem em uma rede local ou mesmo pela internet J o RMI permite ao cliente acessar m todos compartilhados pelo servidor logo n o mais necess rio interpretar mensagens para realizar a es sendo que o cliente pode executar a a o desejada diretamente no servidor da mesma forma que faz em uma outra classe Java qualquer O RMI utiliza a mesma estrutura de comunica o que a t cnica de socket ou seja conecta se ao servidor por interm dio de um endere o IP e uma porta proporcionando da mesma forma conectar a qualquer computador que tenha o protocolo TCP IP sendo ele em rede local ou pela internet Sendo assim optou se por utilizar RMI para a comunica o entre os dois sistemas Para realizar essa comunica o no Java implementadas no servidor deve haver basicamente duas classes uma declarada como interface estendendo da classe Remote o qual defi
114. ulta para a mem ria de trabalho O m dulo de aquisi o do conhecimento respons vel pela atualiza o da base de conhecimento vinculado a ele est a ferramenta de constru o atrav s da qual o sistema permite a cria o de novos SE O m dulo de explana o respons vel pela descri o do racioc nio do sistema para o usu rio Pode ser executado a partir do mecanismo de infer ncia visando um processo de transforma o do conhecimento representado na base de conhecimento ou deduzido no processo de busca de uma solu o como tamb m pode ser executado pelo m dulo de aquisi o de conhecimento auxiliando na depura o e constru o incremental da base de conhecimento Para implementar a base de conhecimento pode ser utilizada uma ferramenta de infer ncia que permite a inclus o das e a consulta na base Na pr xima se o identificada uma ferramenta de infer ncia a ser utilizada no projeto 20 2 4 2 Ferramentas de Infer ncia As regras determinam como o jogador virtual reage ao ambiente sendo elas implementadas utilizando uma estrutura de rvore de decis o Para representar esta estrutura de rvore existem linguagens que facilitam sua implementa o como o CLIPS C Language Integrated Production System Conforme Riley 2007 CLIPS foi desenvolvido NASA National Aeronautics and Space Admistration afim de facilitar o desenvolvimento de sistemas especialistas Inicialmente o CLIPS interage com linguag
115. vore getTerminouQ boolean setTerminou term boolean void inicioJogadad void verificaTrocaCartaQ void distribuirExercutos void getJogadord Jogador getServidor Servidorimpl atacatTerritorioQ void executarAtaqued void sorteiaDados int redistribuirExercitosQ void Figura 19 Classes para instanciar o agente no jogo 51 3 2 2 Implementa o das Regras A implementa o das regras da rvore de conhecimento utilizam um ferramenta chamada JCLIPS que permite a inclus o de regras e fazer a consulta na base de conhecimento 3 2 3 Usando o JCLIPS Para interagir o sistema com o JCLIPS necess rio utilizar uma biblioteca de classes chamada JCLIPS JAR Inicialmente deve ser criada um classe implementando a interface Observer a qual possui um m todo chamado update o qual recebe as informa es geradas pelo JCLIPS Um objeto instaciado da classe JClips deve ser utilizado para configurar e inicializar a API E nele que informado o arquivo com as regras da rvore de decis o como tamb m qual a regra que inicia os testes de conhecimento Figura 20 Public class JClipsExample implements Observer private String base conhecimento myknowledge clp public void update Observable jClips Object messageObj String message String messageObj System out println Message received message public static void main String args

Download Pdf Manuals

image

Related Search

Related Contents

Plug&Play kit Yamaha R1 2004/2005/2006 – R6 2004/2005  Beyerdynamic Synexis Manual PDF  SWITEL TE 7  Manual de Instalación y Operación  DIPOG-2.0 User Guide Direct Problems for Optical Gratings over  here - DB Green Ltd  Instrucciones de uso uso  取扱説明書&パーツカタログ  Worldwide Lighting W83133C20 Installation Guide  Article  

Copyright © All rights reserved.
Failed to retrieve file