TURNO: NOTURNO VERSÃO: 01 ANO / SEMESTRE: 2011.1 No UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO CURSO DE CIÊNCIA DA COMPUTAÇÃO — BACHARELADO COORDENAÇÃO DE TRABALHO DE CONCLUSÃO DE CURSO PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO TÍTULO: SIMULAÇÃO DE FUTEBOL EM AMBIENTE WEB: VERSÃO 3.0 ÁREA: Jogos. Palavras-chave: Simulação. Jogo. Futebol. HTML5. Web. On-line. Inteligência Artificial. 1 IDENTIFICAÇÃO 1.1 ALUNO Nome: Thyago Schleuss Código/matrícula: 46706-5/130658-8 Endereço residencial: Rua: Jequié Complemento: n: 209 Bairro: Salto CEP: 89030-350 Cidade: Blumenau Telefone fixo: 3323-1389 UF: SC Celular: 8834-9030 Endereço comercial: Empresa: Dynamix Comércio de Software LTDA. Rua: República Argentina CEP: 89050-100 Cidade: Blumenau E-Mail FURB: [email protected] 1.2 n: 704 Bairro: Ponta Aguda UF: SC Telefone: 30377006 E-Mail alternativo: [email protected] ORIENTADOR Nome: José Roque Voltolini da Silva E-Mail FURB: [email protected] E-Mail alternativo: [email protected] 2 DECLARAÇÕES 2.1 DECLARAÇÃO DO ALUNO Declaro que estou ciente do Regulamento do Trabalho de Conclusão de Curso de Ciência da Computação e que a proposta em anexo, a qual concordo, foi por mim rubricada em todas as páginas. Ainda me comprometo pela obtenção de quaisquer recursos necessários para o desenvolvimento do trabalho, caso esses recursos não sejam disponibilizados pela Universidade Regional de Blumenau (FURB). Assinatura: 2.2 Local/data: DECLARAÇÃO DO ORIENTADOR Declaro que estou ciente do Regulamento do Trabalho de Conclusão do Curso de Ciência da Computação e que a proposta em anexo, a qual concordo, foi por mim rubricada em todas as páginas. Ainda me comprometo a orientar o aluno da melhor forma possível de acordo com o plano de trabalho explícito nessa proposta. Assinatura: Local/data: 3 AVALIAÇÃO DA PROPOSTA Thyago Schleuss Orientador(a): José Roque Voltolini da Silva ASPECTOS AVALIADOS 1. não atende Acadêmico(a): atende parcialmente AVALIAÇÃO DO(A) ORIENTADOR(A) atende 3.1 INTRODUÇÃO 1.1. O tema de pesquisa está devidamente contextualizado/delimitado? 1.2. O problema está claramente formulado? 2. ASPECTOS TÉCNICOS 3. 4. 5. 6. 7. ASPECTOS METODOLÓGICOS 8. 9. OBJETIVOS 2.1. O objetivo geral está claramente definido e é passível de ser alcançado? 2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral? Caso não sejam apresentados objetivos específicos, deixe esse item em branco. RELEVÂNCIA 3.1. A proposta apresenta um grau de relevância em computação que justifique o desenvolvimento do TCC? METODOLOGIA 4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC? 4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a metodologia proposta? 4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de maneira a permitir a execução do TCC no prazo disponível? REVISÃO BIBLIOGRÁFICA 5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC? 5.2. São apresentados trabalhos correlatos, bem como comentadas as principais características dos mesmos? REQUISITOS DO SISTEMA A SER DESENVOLVIDO 6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram claramente descritos? CONSIDERAÇÕES FINAIS 7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica com a realização do TCC? REFERÊNCIAS BIBLIOGRÁFICAS 8.1. As referências bibliográficas obedecem às normas da ABNT? 8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na proposta (são usadas obras atualizadas e/ou as mais importantes da área)? CITAÇÕES 9.1. As citações obedecem às normas da ABNT? 9.2. As informações retiradas de outros autores estão devidamente citadas? 10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada) 10.1. O texto obedece ao formato estabelecido? 10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem utilizada é clara)? A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: qualquer um dos itens tiver resposta NÃO ATENDE; pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE. PARECER: ( Assinatura do(a) avaliador(a): ) APROVADA ( ) NECESSITA DE COMPLEMENTAÇÃO Local/data: CONSIDERAÇÕES DO(A) ORIENTADOR(A): Caso o(a) orientador(a) tenha assinalado em sua avaliação algum item como “atende parcialmente”, devem ser relatos os problemas/melhorias a serem efetuadas. Na segunda versão, caso as alterações sugeridas pelos avaliadores não sejam efetuadas, deve-se incluir uma justificativa. Assinatura do(a) avaliador(a): Local/data: 3.2 AVALIAÇÃO DO(A) COORDENADOR DE TCC Acadêmico(a): Thyago Schleuss 1. não atende ASPECTOS AVALIADOS atende parcialmente atende Avaliador(a): INTRODUÇÃO 1.1. O tema de pesquisa está devidamente contextualizado/delimitado? 1.2. O problema está claramente formulado? 2. ASPECTOS TÉCNICOS 3. 4. 5. 6. 7. ASPECTOS METODOLÓGICOS 8. 9. OBJETIVOS 2.1. O objetivo geral está claramente definido e é passível de ser alcançado? 2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral? Caso não sejam apresentados objetivos específicos, deixe esse item em branco. RELEVÂNCIA 3.1. A proposta apresenta um grau de relevância em computação que justifique o desenvolvimento do TCC? METODOLOGIA 4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC? 4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a metodologia proposta? 4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de maneira a permitir a execução do TCC no prazo disponível? REVISÃO BIBLIOGRÁFICA 5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC? 5.2. São apresentados trabalhos correlatos, bem como comentadas as principais características dos mesmos? REQUISITOS DO SISTEMA A SER DESENVOLVIDO 6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram claramente descritos? CONSIDERAÇÕES FINAIS 7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica com a realização do TCC? REFERÊNCIAS BIBLIOGRÁFICAS 8.1. As referências bibliográficas obedecem às normas da ABNT? 8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na proposta (são usadas obras atualizadas e/ou as mais importantes da área)? CITAÇÕES 9.1. As citações obedecem às normas da ABNT? 9.2. As informações retiradas de outros autores estão devidamente citadas? 10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada) 10.1. O texto obedece ao formato estabelecido? 10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem utilizada é clara)? A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: qualquer um dos itens tiver resposta NÃO ATENDE; pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE. PARECER: ( ) APROVADA ( ) NECESSITA DE COMPLEMENTAÇÃO OBSERVAÇÕES: Assinatura do(a) avaliador(a): Local/data: Thyago Schleuss Avaliador(a): Joyce Martins ASPECTOS AVALIADOS 1. não atende Acadêmico(a): atende parcialmente AVALIAÇÃO DO(A) PROFESSOR(A) DA DISCIPLINA DE TCCI atende 3.3 INTRODUÇÃO 1.1. O tema de pesquisa está devidamente contextualizado/delimitado? 1.2. O problema está claramente formulado? 2. ASPECTOS TÉCNICOS 3. 4. 5. 6. 7. ASPECTOS METODOLÓGICOS 8. 9. OBJETIVOS 2.1. O objetivo geral está claramente definido e é passível de ser alcançado? 2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral? Caso não sejam apresentados objetivos específicos, deixe esse item em branco. RELEVÂNCIA 3.1. A proposta apresenta um grau de relevância em computação que justifique o desenvolvimento do TCC? METODOLOGIA 4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC? 4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a metodologia proposta? 4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de maneira a permitir a execução do TCC no prazo disponível? REVISÃO BIBLIOGRÁFICA 5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC? 5.2. São apresentados trabalhos correlatos, bem como comentadas as principais características dos mesmos? REQUISITOS DO SISTEMA A SER DESENVOLVIDO 6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram claramente descritos? CONSIDERAÇÕES FINAIS 7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica com a realização do TCC? REFERÊNCIAS BIBLIOGRÁFICAS 8.1. As referências bibliográficas obedecem às normas da ABNT? 8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na proposta (são usadas obras atualizadas e/ou as mais importantes da área)? CITAÇÕES 9.1. As citações obedecem às normas da ABNT? 9.2. As informações retiradas de outros autores estão devidamente citadas? 10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada) 10.1. O texto obedece ao formato estabelecido? 10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem utilizada é clara)? PONTUALIDADE NA ENTREGA atraso de _____ dias A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: qualquer um dos itens tiver resposta NÃO ATENDE; pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE. PARECER: ( ) APROVADA ( ) NECESSITA DE COMPLEMENTAÇÃO OBSERVAÇÕES: Assinatura do(a) avaliador(a): Local/data: 3.4 AVALIAÇÃO DO(A) PROFESSOR(A) ESPECIALISTA NA ÁREA Acadêmico(a): Thyago Schleuss 1. não atende ASPECTOS AVALIADOS atende parcialmente atende Avaliador(a): INTRODUÇÃO 1.1. O tema de pesquisa está devidamente contextualizado/delimitado? 1.2. O problema está claramente formulado? 2. ASPECTOS TÉCNICOS 3. 4. 5. 6. 7. ASPECTOS METODOLÓGICOS 8. 9. OBJETIVOS 2.1. O objetivo geral está claramente definido e é passível de ser alcançado? 2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral? Caso não sejam apresentados objetivos específicos, deixe esse item em branco. RELEVÂNCIA 3.1. A proposta apresenta um grau de relevância em computação que justifique o desenvolvimento do TCC? METODOLOGIA 4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC? 4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a metodologia proposta? 4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de maneira a permitir a execução do TCC no prazo disponível? REVISÃO BIBLIOGRÁFICA 5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC? 5.2. São apresentados trabalhos correlatos, bem como comentadas as principais características dos mesmos? REQUISITOS DO SISTEMA A SER DESENVOLVIDO 6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram claramente descritos? CONSIDERAÇÕES FINAIS 7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica com a realização do TCC? REFERÊNCIAS BIBLIOGRÁFICAS 8.1. As referências bibliográficas obedecem às normas da ABNT? 8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na proposta (são usadas obras atualizadas e/ou as mais importantes da área)? CITAÇÕES 9.1. As citações obedecem às normas da ABNT? 9.2. As informações retiradas de outros autores estão devidamente citadas? 10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada) 10.1. O texto obedece ao formato estabelecido? 10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem utilizada é clara)? A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: qualquer um dos itens tiver resposta NÃO ATENDE; pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE. PARECER: ( ) APROVADA ( ) NECESSITA DE COMPLEMENTAÇÃO OBSERVAÇÕES: Assinatura do(a) avaliador(a): Local/data: UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO – BACHARELADO SIMULAÇÃO DE FUTEBOL EM AMBIENTE WEB: VERSÃO 3.0 THYAGO SCHLEUSS BLUMENAU 2011 THYAGO SCHLEUSS SIMULAÇÃO DE FUTEBOL EM AMBIENTE WEB: VERSÃO 3.0 Proposta de Trabalho de Conclusão de Curso submetida à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso I do curso de Ciência da Computação — Bacharelado. Prof. José Roque Voltolini da Silva - Orientador BLUMENAU 2011 2 1 INTRODUÇÃO O futebol é um dos esportes mais populares no mundo. Graças a seu jeito simples de jogar, ele é praticado em centenas de países. Basta uma bola, equipes de jogadores e as traves, para que, em qualquer espaço, crianças e adultos possam se divertir com o futebol. Na rua, na escola, no clube, no campinho do bairro ou até mesmo no quintal de casa, desde cedo jovens de vários cantos do mundo começam a praticar o futebol (SILVA, 2005). Até a década de 60 o futebol era baseado essencialmente na técnica e, portanto, aquele que dominava alguns fundamentos tais como drible, chute, passe, cabeceio etc. conseguia se destacar em sua equipe e em relação aos demais jogadores, sem necessitar de outras qualidades. (MEDINA, 2009). Conforme o tempo foi passando e o futebol foi evoluindo, o individualismo, apesar de ainda presente, começou a dar espaço para a evolução do futebol em si, em relação a esquemas táticos, estratégias de jogo, simulações de situações possíveis em campo, etc. Segundo Medina (2009), “[...] os treinadores começaram a ter maior importância no trabalho das equipes.” Esses, juntamente com suas comissões técnicas, cada vez mais multidisciplinares, começaram a buscar uma integração dos fatores físicos, técnicos e táticos para conseguirem melhores resultados. Com toda esta evolução, os técnicos preocupam-se muito mais com os fatores físicos, técnicos e táticos dos jogadores. Para auxiliá-los, a utilização de simuladores vem se propagando neste meio. Tem-se a necessidade de planejamentos de curto, médico e longo prazo, envolvendo aspectos físicos, psicológicos, emocionais e sociais dos atletas (MEDINA, 2009). Schulter (2007) criou um simulador de futebol que permite criar jogadores, formar um time, montar táticas, definir estratégias e visualizar a partida em 2D, com restrição de poder ser executado apenas em um ambiente desktop (RODRIGUES, 2008, p. 16). Para sanar tal restrição, Rodrigues (2008) complementou este simulador de futebol a fim de disponibilizá-lo em um ambiente web para que usuários de qualquer lugar pudessem utilizá-lo ao mesmo tempo, criando táticas, estratégias e desafiando outros times on-line. Uma restrição desta atualização para um ambiente web é a exibição da simulação em tempo real, a qual foi criada utilizando uma tecnologia não padrão para web, forçando assim os usuários a terem softwares de terceiros (plug-ins) vinculados ao seu navegador. Visto o acima, propõe-se modificar a ferramenta implementada por Rodrigues (2008) objetivando a simulação com a utilização de uma tecnologia padrão para a web, sem a 3 utilização de qualquer plug-in. Com o desenvolvimento do trabalho proposto será possível que qualquer dispositivo que possua um navegador que incorpore os padrões atuais, homologados por instituições para este fim, possa acessar e utilizar o simulador sem a necessidade de um hardware com alta capacidade de memória e de processamento de dados. Ainda, será disponibilizado um motor de inteligência para auxílio na tomada de decisões, tanto de jogadores quanto do time durante o tempo de um jogo. 1.1 OBJETIVOS DO TRABALHO O objetivo do trabalho é disponibilizar o simulador de futebol de Rodrigues (2008) no ambiente web para diversas plataformas, desde desktop até dispositivos mobiles. Os objetivos específicos do trabalho são: a) disponibilizar a visualização das simulações utilizando tecnologias padrões para web, como a versão 5 do HyperText Transfer Protocol (HTML5), a versão 3 do Cascading Style Sheets (CSS3) e a versão 1.8.1 do JavaScript (JS); b) disponibilizar uma base de conhecimentos e um motor de inteligência contendo inicialmente uma (1) técnica de Inteligência Artificial (IA) a ser estudada, objetivando o auxílio na tomada de decisões dos jogadores durante uma simulação; 1.2 RELEVÂNCIA DO TRABALHO A presente proposta trata da continuação de um projeto realizado por Rodrigues (2008), o qual também foi estendido a partir do trabalho de Schulter (2007). Conforme a última versão (RODRIGUES, 2008), o autor sugere diversas extensões para complementar o simulador. Para esta proposta considerou-se a opção de seguir os padrões da web 3.0 que objetiva substituir outras tecnologias como Java Applet, JavaFX, Flash e Silverlight utilizando uma tecnologia nova e em constante desenvolvimento para a reprodução das simulações em ambientes tanto desktop como mobile, chamada HTML5. Salienta-se que o HTML5 objetiva que o acesso a qualquer dispositivo seja tão simples, fácil e conveniente quanto a um 4 computador convencional. Ainda tal tecnologia, HTML5, está em fase de desenvolvimento, sendo liderado pelo World Wide Consortium (W3C). Também, um motor de inteligência será disponibilizado objetivando auxiliar nas tomadas de decisão dos jogadores durante as simulações por meio do uso de técnicas de IA. 1.3 METODOLOGIA O trabalho será desenvolvido observando as seguintes etapas: a) levantamento bibliográfico: pesquisar material sobre futebol, simulação – incluindo simulação on-line, simulador de futebol com robôs virtuais (SCHULTER, 2007) e o simulador de futebol em ambiente web (RODRIGUES, 2008), HTML5, CSS3, JS, IA e trabalhos correlatos; b) estudo do simulador de futebol em ambiente web: verificar a especificação e implementação do software desenvolvido por Rodrigues (2008); c) elicitação de requisitos: reavaliar e detalhar os requisitos funcionais e não funcionais, observando as necessidades e peculiaridades levantadas nas etapas anteriores; d) especificação: reespecificar o simulador e o site desenvolvido por Rodrigues (2008), considerando as novas tecnologias usadas (HTML5, CSS3 e JS) e incluindo um motor de inteligência. Para esta etapa será utilizada a técnica de orientação a objetos, através de diagramas de casos de uso, classes e sequência da Unified Modeling Language (UML). Para realizar a especificação será utilizada a ferramenta Enterprise Architect (EA); e) implementação: implementar a nova versão do simulador na linguagem Java EE para o servidor e para o lado do cliente usar o HTML5, CSS3 e o JS. Códigos da versão do simulador de Rodrigues (2008) serão reaproveitados quando da não mudança da especificação de módulos (estrutura, lógica e tecnologias). A Integrated Development Environment (IDE) a ser utilizada para implementação do simulador será o Eclipse 3.6; f) testes: seguir os casos de uso definidos para a realização dos testes, criando usuários para a realização de partidas e campeonatos através de dispositivos diferentes como desktop e mobile ao mesmo tempo. Verificar o comportamento 5 dos jogadores/time mediante o uso do motor de inteligência. As etapas serão realizadas nos períodos relacionados no Quadro 1. 2011 jul. ago. set. out. nov. etapas / quinzenas 1 2 1 2 1 2 1 2 1 2 levantamento bibliográfico estudo do simulador futebol em ambiente web elicitação de requisitos especificação implementação testes Quadro 1 - Cronograma 6 2 REVISÃO BIBLIOGRÁFICA Na seção 2.1 é definido o que é futebol, mostrando algumas regras do mesmo. Na seção 2.2 o assunto simulação é explorado, incluindo os itens simulação on-line, o simulador de futebol com robôs virtuais (SCHULER 2007) e o simulador de futebol em ambiente web (RODRIGUES 2008). Nas seções 2.3, 2.4 e 2.5, respectivamente, são abordados os assuntos HTML5, CSS3 e IA. Ao final na seção 2.6 são descritos quatro (4) trabalhos correlatos. 2.1 FUTEBOL O futebol é um esporte onde jogam duas equipes, sendo considerado o esporte mais popular do mundo. Joga-se com uma bola em um campo retangular de grama, com gols, um em cada lado do campo. O objetivo do jogo é fazer a bola entrar no gol do adversário. Uma das características deste esporte é que nenhum dos jogadores, com exceção do goleiro, pode utilizar as mãos ou os braços para movimentar a bola do jogo. O vencedor é a equipe que marcar mais gols, dentro de um determinado período de tempo. Se ao final do jogo não houver nenhum gol, o mesmo é declarado como empatado e, dependendo das regras, poderá haver um prolongamento (ENCICLOPÉDIA..., 2006). Segundo Sua Pesquisa (2008), no ano de 1904 foi criada a Fédération Internationale de Football Association (FIFA) que organiza até hoje o futebol em todo o mundo. Para a regulamentação do esporte, a FIFA publicou ao todo dezessete (17) regras que são distribuídas aos juízes do jogo. Dentre elas, destacam-se as que definem o campo de jogo, a bola, o número de jogadores, o árbitro, os assistentes do árbitro, a duração da partida, o gol marcado, o impedimento, faltas, pênalti e escanteio (PORTALBRASIL, 2010). 2.2 SIMULAÇÃO O termo simulação é bastante genérico, visto que são várias as formas e mecanismos utilizados para a representação do comportamento de um sistema (MELLO, 2001). Segundo 7 Lobão e Porto (1999, p. 13), a simulação é uma das mais versáteis e flexíveis ferramentas de análise disponíveis, sendo largamente utilizada em operações técnicas para prever o funcionamento do sistema real como um todo. De acordo com Mello (2001), alguns fatores que tornam desejável o uso de técnicas de simulação são: a) tempo: em computador é possível realizar experimentos que, se executados sobre o sistema real, poderiam consumir anos; b) custo: o custo mantém-se muito abaixo se comparado à execução de experimentos sobre o sistema real; c) visualização: os computadores oferecem recursos que facilitam a visualização dos resultados de uma simulação (gráficos, tabelas, entre outros); d) repetição: depois de construído, um modelo de representação pode ser executado várias vezes a um custo muito baixo; e) interferência: um modelo é extremamente mais flexível para a realização de mudanças se comparado a um sistema real. 2.2.1 Simulação on-line Segundo Chamovitz, Sabbadini e Oliveira (2008), a web reforça alguns conceitos baseados em colaboração. Usuários passam a ser mais responsáveis pelo conteúdo da web. Aplicativos de hoje que estão nos computadores de cada indivíduo podem ficar disponíveis on-line. Assim, com apenas o sistema operacional e o navegador (disponível tanto em desktop como em dispositivos mobile), qualquer pessoa pode utilizar o aplicativo, acessível através de uma Uniform Resource Locator (URL). Ainda, configurações individuais poderão ser mantidas em um servidor. Este procedimento acontece também para o desenvolvimento de modelos de simulação. Ainda, após construir o modelo, o responsável pode compartilhá-lo via web, liberando uma versão beta para testes. Ainda segundo Chamovitz, Sabbadini e Oliveira (2008), a web oferece um canal que pode ser usado para desenvolvimento, teste e disseminação de processos operacionais, onde diversos recursos podem ser compartilhados por um número significativo de usuários. 8 2.2.2 Simulador de futebol com robôs virtuais De acordo com Rodrigues (2008, p. 20), o simulador de Schulter (2007) possui algumas limitações como não considerar o eixo Z e não tratar o impedimento, o pênalti e o escanteio. Outra restrição existente no simulador é que para duas pessoas simularem uma partida eles necessitam utilizar a mesma máquina, uma vez que a aplicação é desenvolvida exclusivamente para desktop, conhecendo assim a estratégia do adversário. O software possui dois módulos: o módulo de cadastro e o de simulação. No módulo de cadastro é feita a criação das equipes, jogadores, estratégias e táticas. No módulo de simulação o usuário define o confronto e as estratégias. Neste módulo é feita a visualização da partida em 2D. (SCHULTER, 2007, p. 79). A Figura 1 ilustra a simulação de uma partida de futebol em desktop, com as estratégias visíveis para ambos os jogadores. Figura 1 - Tela obtida a partir do simulador desktop de Schulter (2007) 2.2.3 Simulador de futebol na web No simulador de Rodrigues (2008), ao iniciar a partida, o applet para visualização é carregado no navegador do criador e do adversário. Quando os usuários estão prontos para visualizar a partida, a simulação inicia e os jogadores posicionam-se. Conforme Rodrigues (2008, p. 64), “A principal melhoria que o Futebol Simulado possui em relação ao simulador de Schulter (2007) é ser uma aplicação web. Isso torna o simulador mais atrativo para entretenimento, pois é possível interagir com adversários de diversos lugares através da internet”. 9 A Figura 2 ilustra a simulação em ambiente web, utilizando applet para visualização da partida. Figura 2 – Tela obtida a partir do simulador web de Rodrigues (2008) 2.3 HTML5 “A W3C disponibilizou no dia sete de outubro de dois mil e dez (07/10/2010) a quinta (5ª) principal revisão da recomendação HTML5.” (W3C, 2010 apud RODRIGUES; SOMMARIVA, 2010). A linguagem HTML5, que ficou uma década sem atualização, veio com a proposta de quebrar as barreiras de compatibilidade na exibição de vídeos via internet, aprimorar o uso off-line de aplicações web e exibir gráficos interativos com facilidade no browser (BRAUN, 2009). HTML5 é uma grande proposta de empresas como Google, Mozilla, Apple e Opera para disponibilizar as aplicações na web. Atualmente não há como falar em HTML5 sem citar HTML, CSS e JS, onde, enquanto o HTML define a formatação dos documentos, o CSS configura a apresentação do conteúdo e o JS é utilizado na interatividade das páginas com validações, efeitos, entre outros. Com o HTML5, a Web Hypertext Application Tecnhology Working Group (WHATWG), grupo formado por desenvolvedores das diversas empresas citadas anteriormente, pretende unificar diversos recursos destas tecnologias, HTML, CSS e JS, em um só, que é o HTML5. Dentre as inúmeras funcionalidades oferecidas pelo HTML5, o canvas é uma das mais importantes entre elas. Com o canvas é possível criar gráficos, composições de fotos e 10 animações utilizando JS. O canvas é basicamente uma área onde é possível desenhar como se fosse uma tela, o que amplia notavelmente as possibilidades das páginas dinâmicas e permite fazer representações gráficas que até agora estavam reservadas aos desenvolvedores de Java Applet, JavaFX, Flash e Silverlight. Uma das vantagens do uso do HTML5 é a portabilidade nos navegadores, uma vez que o mesmo é independente de plug-ins (ALVAREZ, 2010). O Quadro 2 exemplifica a utilização do canvas, tendo como resultado a Figura 3. <html> <head> <script type="application/x-javascript"> function draw() { //Recupera o canvas var canvasElem = document.getElementById('canvas'); //Recupera o contexto "2d" de desenho var context = canvasElem.getContext('2d'); //Desenha um triangulo azul context.fillStyle = "blue"; context.beginPath(); context.moveTo(100, 60); context.lineTo(50, 120); context.lineTo(150, 120); context.lineTo(100, 60); context.fill(); } </script> </head> <body onload="javascript: draw();"> <canvas id="canvas" width="200" height="200"> O seu browser ainda não suporta HTML5 ou a tag Canvas! </canvas> </body> </html> Quadro 2 – Código HTML5 utilizando canvas Figura 3 – Resultado do exemplo utilizando o canvas 2.4 CSS3 CSS3 é a nova versão do CSS, onde se define os estilos para páginas na web com efeitos de transição de imagem, bordas redondas, sombras, múltiplos backgrounds, layouts multi-colunas, novos seletores, fontes externas, transformações 2D e 3D além de animações (CSS3, 2011). No Quadro 3 destacam-se os principais seletores (propriedades) do CSS3. 11 border-radius:[tamanho]; /* bordas arredondadas */ box-shadow:[topo] [esquerda] [borrão] [cor]; /* sombra */ text-shadow:[topo] [esquerda] [borrão] [cor]; /* sombra em letras */ opacity:[valor]; /* transparência */ word-wrap:[definição]; /* quebra de palavra */ background-size:[largura] [altura]; /* tamanho do plano de fundo */ Quadro 3 – Seletores do CSS3 2.5 IA Existem várias definições de inteligência. Entretanto, um fator necessário para decidir se um sistema é inteligente está relacionado com sua capacidade de aprender. Com relação ao aprendizado humano, é notório o fato que ele é terrivelmente lento. São necessários de 4 a 8 anos para que os humanos comecem a entender conceitos, portanto pode-se concluir que são aprendizes muitos lentos. Ao ensinar (programar) um único computador para resolver um determinado problema, todos os demais computadores podem “aprender” como resolver o mesmo problema bastando apenas copiar o programa para cada um deles (MONARD; BARANAUSKAS, 2000, p. 343). O princípio de funcionamento dos computadores é relativamente simples, mas foram precisos anos para que se pudesse descobri-lo. Esta descoberta deve-se a Alan Turing (19121954). A descoberta de Turing consiste no fato de ele ter demonstrado, através da sua máquina, que toda e qualquer tarefa que possa ser representada na forma de um procedimento efetivo pode ser mecanizada, ou seja, pode ser realizada por um computador. Trocando esta máquina rudimentar com fita e marcador por outra com o mesmo princípio, substituindo a fita com vários símbolos por outra com apenas dois, o zero (0) e o um (1), pode-se chegar a algo como a representação elétrica do pensamento humano. Foi usando este tipo de estratégia que os pesquisadores da IA encontraram um caminho para construir circuitos que imitam a maneira de um ser humano de raciocinar (TEIXEIRA, 1994). Os progressos na área de IA têm surtido efeito em várias outras áreas, como em jogos, programas de diagnóstico médico, robótica e outros mais. Para desenvolver programas com IA, técnicas para tomada de decisão foram propostas. Segundo Fujita (2005, p. 19), as técnicas de IA para jogos podem ser divididas em duas categorias principais, denominadas “determinísticas” e “não-determinísticas”. As técnicas determinísticas possuem um comportamento previsível, consome poucos recursos da máquina e são mais fáceis de serem implementadas. Um exemplo de 12 comportamento determinístico é o algoritmo básico de perseguição. O problema desta abordagem é que se faz necessário prever todas as ações possíveis em um determinado momento, fazendo-se uso de muitas regras do tipo “se-então” (FUJITA, 2005, p. 10). Ainda segundo Fujita (2005, p. 19), as técnicas não-determinísticas possuem um grau de incerteza, que pode variar de acordo com a implementação; um exemplo de comportamento não determinístico inclui o aprendizado que um personagem da máquina adquire ao jogar contra um humano após um determinado período. Tal aprendizado pode ser implementado por uma rede neural ou algoritmo genético, por exemplo. Com a evolução dos sistemas de simulação tal como os jogos que possuem uma grande quantidade de recursos necessários para seu correto funcionamento, foi que surgiram os motores ou frameworks de inteligência. Estes concentram conhecimentos em diversas áreas e as unem para formar uma aplicação única. Segundo Vieira Filho (2005, p. 18-20), as técnicas de IA mais encontradas nos motores de inteligência de jogos de esporte são: a) máquina de estados finitos; b) máquina de estados fuzzy; c) Data-Driven Systems; d) sistema de mensagens; e) sistema de informação baseado na localização; f) redes Bayesianas; g) redes neurais. 2.6 TRABALHOS CORRELATOS Em The RoboCup Federation (2007) é descrito o RoboCup, criado em junho de 1993 por um grupo de pesquisadores japoneses que decidiram lançar uma competição de robótica, provisoriamente chamada de Robô J-Legue. Após um mês, vários pesquisadores de fora do Japão manifestaram-se solicitando que a iniciativa fosse expandida como um projeto internacional, surgindo assim o Robot world Cup (RoboCup). Hoje é uma competição mundial que acontece todos os anos, onde, por meio de robótica e inteligência artificial, os participantes devem desenvolver seus times para competir. Em Online Football Manager (2011), o usuário tem a oportunidade de ser um técnico de futebol. O sistema online permite que milhares de usuários decidam que time treinar, quais 13 jogadores contratar, qual formação é a melhor para o time, qual a melhor tática, além de contar com um sistema de treinamento, sistema de contratação de técnicos especialistas em uma determinada modalidade, como pênaltis, faltas e escanteio. Ainda, gerenciamento de finanças, médicos, funcionários, patrocínios, estádios, entre outros módulos existem no sistema. Em Hattrick (2008), assim como em Online Football Manager (2011), o usuário conduz um time de futebol, competindo com outros jogadores ao redor do mundo através de um sistema online. Neste, o usuário assume o papel tanto de diretor do time, quanto de dono do clube, planeja táticas e estratégias, decide o que treinar e escala os jogadores que deverão participar de cada partida. O usuário compra e vende jogadores, investe em melhorias em seu estádio, entre outros. Diferente dos demais, em Hattrick o time pertence a uma região, normalmente ligada à região do jogador. As regiões tem seu próprio clima, que afeta uma série de elementos, como por exemplo, a presença da torcida nos estádios. Em Managerzone (2007) pode-se participar de ligas, copas, customizar o time em nível de emblema, cores das roupas, aparência dos jogadores, entre outros. É possível comprar e vender jogadores e melhorar seus atributos através de treinamentos. Segundo Schulter (2007, p. 24), em alguns campeonatos é necessário pagar para participar e são dados prêmios aos vencedores. Uma comparação dos simuladores citados é apresentada no Quadro 4. Característica Jogo Aplicação Operacionalidade Nível de aproximação com atribuições de um clube no mundo real (gerenciamento do time) Nível de aproximação da simulação com uma partida real Substituições durante a partida Troca de tática durante a partida Visualização da partida Motor de inteligência ManagerZo ne football Hattrick Online Football Manager Web Simples Muito próximo Schulter (2007) Rodrigues (2008) Web Complexa Muito próximo Web Complexa Próximo Desktop Simples Distante Web Simples Distante Muito próximo Próximo Muito próximo Distante Distante Possui Não possui Possui Não possui Não possui Não possui Não possui Não possui Possui 2D e 3D Sim Não possui Sim Não possui Não 2D Não 2D Não Fonte: adaptado de Rodrigues (2008, p. 28). Quadro 4 – Comparação dos simuladores apresentado Possui 14 3 REQUISITOS DO SISTEMA A SER DESENVOLVIDO Os Requisitos Funcionais (RF) e Requisitos Não Funcionais (RNF) da aplicação proposta são: a) manter os seguintes requisitos do ambiente de Rodrigues (2008): - permitir o cadastro de usuários a partir do site (RF), - permitir que dois usuários realizem uma simulação através da internet, cada um com seu time e em máquinas diferentes (RF), - o ambiente servidor deverá ser implementado na linguagem Java (RNF), - o sistema deverá utilizar a tecnologia JavaServer Pages (JSP) nas páginas do site (RNF), - o sistema deverá utilizar o banco de dados MySQL para armazenar as informações criadas através do site (RNF); b) ter um motor de IA para tomada de decisão dos jogadores durante a simulação (RF); c) permitir a visualização do simulador com a tecnologia HTML5 (RNF); d) o sistema deverá ser compatível com os sistemas operacionais Mac OS, Linux e Windows (RNF); e) o sistema deverá ser compatível com dispositivos móveis rodando iOS ou Android (RNF). 15 4 CONSIDERAÇÕES FINAIS Sistemas de simulação são eficientes em áreas esportivas e trazem bons resultados em curto espaço de tempo e a custo reduzido, se comparado ao mesmo objetivo em um ambiente real. Com isso, tem-se como objetivo deste trabalho, expandir o funcionamento do simulador de futebol desenvolvido por Schulter (2007) e estendido por Rodrigues (2008), trazendo mais dinâmica às simulações criadas, ou seja, torná-lo mais próximo de uma partida real, onde há imprevistos, decisões momentâneas, ou seja, que não sejam pré-determinadas e que façam os jogos serem repetitivos. Além de torná-lo mais realístico através da aplicação de técnicas de IA, pretende-se com este trabalho levar a simulação a todos os lugares onde ela não consegue chegar, seja por depender de software ou hardwares específicos. Através de tecnologias como HTML5, que agrupa o HTML, CSS e o JS, pode-se criar todo o ambiente do usuário final de forma online, utilizando padrões da web para que possa ser executado nos mais diversos tipos de dispositivos. Com a web, todo o conteúdo fica armazenado em apenas um local e, através de padrões abertos que estão sendo desenvolvidos, qualquer dispositivo que os implemente poderá ter acesso ao sistema, seja para fins científicos ou até mesmo para entretenimento. Assim como em The Robocup (THE ROBOCUP FEDERATION, 2007) e em Hattrick (2008) pretende-se utilizar algoritmos de inteligência artificial através de um motor de inteligência para tornar as disputas mais dinâmicas, sem que ocorra intervenção humana. Com a utilização do HTML5, objetiva-se deixar o ambiente do simulador e sua utilização tão simples como em Online Football Manager (2011), além de disponibilizar a visualização da partida em tempo real, como ocorre apenas em ManagerZone (MANAGERZONE..., 2007), só que sem dependência de plug-ins de terceiros. 16 REFERÊNCIAS BIBLIOGRÁFICAS ALVAREZ, Miguel A. Introdução a canvas do HTML 5. [S.l.], 2010. Disponível em: <http://www.criarweb.com/artigos/introducao-canvas-html5.html>. Acesso em: 07 mar. 2011. BRAUN, Daniela. HTML 5: conheça a linguagem que vai revolucionar sua navegação na web. [S.l.], 2009. Disponível em: <http://idgnow.uol.com.br/internet/2009/06/16/html-5conheca-a-linguagem-que-vai-revolucionar-sua-navegacao-na-web/>. Acesso em: 07 mar. 2011. CHAMOVITZ, Ilan; SABBADINI, Francisco S.; OLIVEIRA, Mário J. F. A utilização da simulação baseada na web para o estudo de processos operacionais. Florianópolis, 2008. Disponível em: <http://producaoonline.org.br/index.php/rpo/article/download/148/270>. Acesso em: 07 mar. 2011. CSS3. In: WIKIPÉDIA, a enciclopédia livre. [S.l.]: Wikimedia Foundation, 2011. Disponível em: <http://pt.wikipedia.org/wiki/CSS3>. Acesso em: 14 mar. 2011. ENCICLOPÉDIA do futebol. In: ENCICLOPÉDIA. [S.l.], 2006. Disponível em: <http://www.enciclopedia.com.pt/articles.php?article_id=418>. Acesso em: 07 mar. 2011. FUJITA, Eduardo. Algoritmos de IA para jogos. 2005. 66 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) - Universidade Estadual de Londrina, Londrina. Disponível em: <www2.dc.uel.br/nourau/document/?down=314>. Acesso em: 08 mar. 2011. HATTRICK. Simulador de futebol. [S.l.], 2008. Disponível em: <http://www.hattrick.org/>. Acesso em: 08 mar. 2011. LOBÃO, Elídio de C.; PORTO, Arthur J. V. Evolução das técnicas de simulação. Produção, Rio de Janeiro, v. 9, n. 1, p. 13-22, 1999. Disponível em: <http://www.revistaproducao.net/arquivos/websites/32/v09n1a02.pdf>. Acesso em: 07 mar. 2011. MANAGERZONE football. In: WIKIPÉDIA, a enciclopédia livre. [S.l.]: Wikimedia Foundation, 2007. Disponível em: <http://pt.wikipedia.org/wiki/Managerzone>. Acesso em: 08 mar. 2011. MEDINA, João P. S. A evolução do futebol e o talento esportivo. [S.l.], 2009. Disponível em: <http://blogdomedina.com.br/2009/07/18/a-evolucao-do-futebol-e-o-conceito-de-talentoesportivo/>. Acesso em: 27 fev. 2011. MELLO, Braulio A. de. Modelagem e simulação de sistemas. Santo Ângelo, 2001. Disponível em: <http://www.urisan.tche.br/~bmello/disciplinas/simulacao/ap-sim.pdf>. Acesso em: 07 mar. 2011. 17 MONARD, Maria C.; BARANAUSKAS, José A. Aplicações de inteligência artificial: uma visão geral. In: CONGRESSO DE LÓGICA APLICADA À TECNOLOGIA, 1., 2000, São Paulo. Anais... São Paulo: Pleiade, 2000. p. 339-348. Disponível em: <http://dfm.ffclrp.usp.br/~augusto/publications.htm>. Acesso em: 22 mar. 2011. ONLINE FOOTBALL MANAGER. Game multiplayer online. Holanda, 2011. Disponível em: <http://www.treinadordefutebol.com/>. Acesso em: 08 mar. 2011. PORTALBRASIL. Regras do futebol. Brasil, 2010. Disponível em: <http://www.portalbrasil.net/regras_do_futebol.htm>. Acesso em: 13 mar. 2011. RODRIGUES, Roberto R. Simulador de futebol em ambiente web. 2008. 80 f. Trabalho de Conclusão de Curso - (Bacharelado em Ciência da Computação) - Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. RODRIGUES, Roberto R.; SOMMARIVA, Leonardo. HTML 5: exemplos de utilização em um website comercial. 2010. Não paginado. Trabalho final: artigo (Especialização em Ciência da Computação) - Curso de Pós-Graduação em Tecnologias para o Desenvolvimento de Aplicações WEB, Universidade Regional de Blumenau e Fundação Fritz Müller, Blumenau. SCHULTER, Fábio. Simulador de uma partida de futebol com robôs virtuais. 2007. 90 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. SILVA, Sidney B. da. História do futebol. [S.l.], 2005. Disponível em: <http://www.campeoesdofutebol.com.br/hist_futebol.html>. Acesso em: 27 fev. 2011. SUA PESQUISA. História do futebol. [S.l.], [2008]. Disponível em: <http://www.suapesquisa.com/futebol/>. Acesso em: 07 mar. 2011. TEIXEIRA, João de F. O que é inteligência artificial. [S.l.], [1994?]. Disponível em: <http://www.filosofiadamente.org/images/stories/pdf/o_que_e_inteligencia_artificial.pdf>. Acesso em: 08 mar. 2011. THE ROBOCUP FEDERATION. A brief history of RoboCup. [S.1.], 2007. Disponível em: <http://www.robocup.org/about-robocup/a-brief-history-of-robocup/>. Acesso em: 08 mar. 2011. VIEIRA Filho, Vicente. Revolution AI engine: desenvolvimento de um motor de inteligência artificial para a criação de jogos eletrônicos. 2005. 65 f. Trabalho de Conclusão de Curso – (Bacharelado em Ciência da Computação) – Centro de Informática, Universidade Federal de Pernambuco, Pernambuco. Disponível em: <www.cin.ufpe.br/~tg/2005-1/vvf.pdf>. Acesso em: 30 mar. 2011.