Professional Documents
Culture Documents
Jogo da Velha
Projeto
ndice
1 2 Introduo ................................................................................................................... 4 Descrio..................................................................................................................... 5 2.1 Objetivo............................................................................................................... 5 2.2 Pblico Alvo ....................................................................................................... 6 2.3 Regras e Jogabilidade ......................................................................................... 6 2.4 Controle............................................................................................................... 7 2.5 Aspecto Visual .................................................................................................... 8 2.6 Aspecto Sonoro................................................................................................... 9 Diagrama Funcional em Blocos................................................................................ 10 3.1 Diagrama Funcional Geral................................................................................ 10 3.2 Diagrama Funcional do Jogo ............................................................................ 11 3.2.1 Lgica do Jogador..................................................................................... 13 3.2.2 Lgica da Velha ........................................................................................ 14 Levantamento de Recursos udio-Visuais............................................................... 16 4.1 Recursos do Mdulo Jogo................................................................................. 16 Cronograma............................................................................................................... 18 5.1 Projeto ............................................................................................................... 18 5.2 Interface Visual................................................................................................. 18 5.2.1 Tilemap do Cenrio de Fundo................................................................... 18 5.2.2 Situao do Tabuleiro ............................................................................... 18 5.2.3 Animaes da Velha ................................................................................. 19 5.3 Lgica do Jogo.................................................................................................. 19 5.3.1 Testa Critrios........................................................................................... 19 5.3.2 Lgica do Jogador..................................................................................... 19 5.3.3 Lgica da Velha ........................................................................................ 19 5.3.4 Mostra Resultado ...................................................................................... 20 5.4 Menus de Navegao ........................................................................................ 20 5.4.1 Menu Principal.......................................................................................... 20 5.4.2 Opes de Partida ..................................................................................... 20 5.4.3 Menu de Opes ....................................................................................... 20 5.4.4 Tela Inicial ................................................................................................ 21 5.4.5 Tela de Encerramento ............................................................................... 21 Concluso.................................................................................................................. 22
4 5
ndice de Figuras
Figura 1 - Tabuleiro do jogo da velha................................................................................. 6 Figura 2 - Situaes de vitria no jogo da velha................................................................. 7 Figura 3 - Aspecto visual do "Jogo da Velha".................................................................... 8 Figura 4 - Diagrama geral das funcionalidades do "Jogo da Velha". ............................... 10 Figura 5 - Diagrama funcional do jogo............................................................................. 12 Figura 6 - Diagrama funcional da lgica do jogador. ....................................................... 14 Figura 7 - Diagrama funcional da lgica da velha............................................................ 14 Figura 8 - Exemplo de armadilha...................................................................................... 15
1 Introduo
Este documento apresenta o projeto do Jogo da Velha, um jogo de raciocnio para um jogador desenvolvido como estudo de caso na atividade de Tutoria de Jogos na PUCPR, primeiro semestre de 2006. O jogo desenvolvido em verses para sistema desktop (Windows PC, usando C e Allegro) e para celular usando J2ME. O documento dividido em quatro sees primrias. A primeira apresenta a descrio do jogo, contendo as regras, pblico alvo, esboos da tela e demais aspectos relacionados ao jogo. A segunda etapa apresenta o diagrama em blocos das funcionalidades da aplicao, descrevendo em que cada um dos blocos responsvel. J a terceira etapa realiza o levantamento dos recursos udio-visuais necessrios, dividida em duas sub-sees, uma para a verso desktop e outra para a verso celular. Finalmente a quarta seo apresenta o cronograma de atividades. Uma seo de concluses encerra o documento com perspectivas do desenvolvimento.
2 Descrio
O Jogo da Velha um jogo de raciocnio para um jogador, projetado para verses em sistema desktop (PC Windows) e celulares. Esta seo descreve detalhadamente o jogo, sendo subdividida em cinco partes que descrevem o jogo e seus objetivos, o pblico alvo do mesmo, as regras de jogabilidade, controle e os aspectos visuais e de udio.
2.1 Objetivo
O objetivo ao desenvolver o Jogo da Velha fornecer um jogo casual para entretenimento em curtos perodos de tempo. Baseado no jogo da velha tradicional, o Jogo da Velha oferece opes de dificuldade que permitem ao jogador escolher a dificuldade do jogo, opes de visualizao personalizadas e uma abordagem humorstica, representando o oponente artificial como uma senhora ranzinza que no perde a chance de fazer comentrios sobre o jogador. Em contra-partida, a personalidade do oponente artificial tambm o torna um personagem tenso, de forma que boas jogadas por parte do jogador humano podem desencadear comentrios nervosos por parte da senhora ranzinza que representa o oponente artificial. Desta maneira, o jogo possuir trs tipos de opes: Opo de dificuldade: determina a possibilidade do oponente artificial fazer uma boa jogada. Quanto menor a dificuldade, mais fcil o oponente artificial erra. Quanto maior a dificuldade, menor a chance do oponente artificial errar. Para simular a falta de ateno dos seres humanos, o oponente artificial possui, mesmo na dificuldade mais elevada, a possibilidade de errar a jogada, o que pode permitir a vitria do oponente humano. Opo de visualizao (skin): determina a aparncia visual durante a partida, baseada em um conjunto de elementos grficos utilizados para criar a tela do jogo. O sistema similar ao de skins utilizados por diversos reprodutores multimdia. Para a verso celular, o conjunto de skins ser fixo, enquanto que para a verso desktop estuda-se a possibilidade de permitir ao jogador inserir novos padres. Opo de incio de jogo: indica qual jogador ir iniciar a partida, sendo escolhido entre jogador humano, seu oponente artificial ou aleatrio, quando a deciso feita por sorteio.
Destas opes, as duas primeiras so disponibilizadas em menu de opes do jogo, enquanto que a opo de incio de jogo por convenincia apresentada antes de se iniciar cada partida. A seo de aspecto visual ir demonstrar os menus decorrentes destas telas de opes.
Cada jogador livre para colocar uma marca em qualquer posio no seu turno, desde que a posio esteja vazia (sem marcas). Ao colocar uma marca no tabuleiro, a jogada passa para o prximo jogador, aonde o processo repetido at que um dos jogadores vena, ou at o tabuleiro ser completamente preenchido, situao na qual ocorre empate. A vitria ocorre quando um jogador consegue colocar trs smbolos em seqncia, seja em linha, coluna ou na diagonal principal do tabuleiro, de acordo com a Figura 2. O objetivo dos jogadores, ento, colocar trs marcas numa das configuraes vlidas, enquanto evitam que o seu oponente consiga fazer as trs marcas antes dele.
Assim, os critrios de avaliao final de uma partida para o jogador humano so as seguintes: Vitria: o jogador humano consegue colocar as trs marcas numa das configuraes vlidas do jogo. Empate: o tabuleiro completamente preenchido e nem o jogador humano, nem o oponente artificial, conseguem colocar as trs marcas numa das configuraes vlidas. Derrota: o oponente artificial consegue colocar as trs marcas numa das configuraes vlidas.
No decorrer da partida, o oponente artificial comenta a partida, de acordo com a situao. O comentrio pode ser contra o jogador humano, caso o oponente artificial faa uma boa jogada, ou ento criticando o jogador humano, caso este faa uma jogada que coloque o oponente artificial numa situao difcil.
2.4 Controle
O controle do jogo depende da verso analisada. Para a verso desktop, ser escolhido o controle via mouse, padro em todos os sistemas operacionais de interface grfica. Pela simplicidade do jogo, ser utilizado apenas um boto, o esquerdo, seja para selecionar opes de menu ou para posicionar a marca sobre o tabuleiro. Desta forma, converses para Mac OS X ficam facilitadas pela interface de botes simplificada. O controle de teclado descartado, sendo a nica tecla ativa no jogo a tecla ESC, que serve como atalho para encerrar a partida/jogo. J na verso celular o controle ser feito com o teclado, utilizando o direcional disponvel nos diversos aparelhos. Apenas um boto ser utilizado, visando simplificar o aspecto ergonmico de uso. O direcional usado durante o jogo para escolher a posio no tabuleiro, enquanto que o boto utilizado para marcar a posio pelo jogador. Os menus sero implementados usando menus tradicionais de J2ME.
X X
Encerrar
Alm da tela de jogo, planejam-se quatro telas com menus de opes para o jogador: Tela principal: oferece quatro opes para o jogador, (1) iniciar uma partida, (2) configurar opes, (3) visualizar os crditos e (4) encerrar o jogo. Definio de quem comea o jogo: este menu apresentado quando o jogador decide iniciar uma partida, apresentando trs opes para iniciar o jogo, (1) o jogador humano comea a partida, (2) a velha comea o jogo e (3) a escolha feita aleatoriamente. Opes: esta tela apresenta as opes de dificuldade (fcil, normal ou difcil) e a esolha do skin (padro ou outros). Tela de crditos: mostra os crditos de desenvolvimento, permitindo ao jogador voltar ao menu principal.
Tela de Fim Encerramento Incio Tela Inicial Menu Principal Opo da partida Jogo
Menu Opes
Configuraes
As funcionalidades de cada bloco so como descritas a seguir: Tela Inicial: apresenta o logotipo da produtora do jogo durante alguns segundos. Nesta tela, o jogador pode pular a abertura pressionando qualquer tecla ou o boto do mouse (verso desktop).
10
Menu Principal: Nesta tela o jogador escolhe uma ao entre trs opes possveis. A ao mais simples leva ao encerramento do jogo. Outra possibilidade passar para o menu de opes, sendo que a terceira e ltima inicia uma nova partida. Opes de Partida: define quem vai iniciar o jogo, o computador ou o jogador. A escolha feita pelo jogador em trs opes, indicando explicitamente quem inicia (jogador ou computador), ou implicitamente, atravs de um sorteio aleatrio realizado pelo computador. Jogo: a funcionalidade principal, composta pela interface visual da partida e pela lgica do jogo. Esta funcionalidade apresentada em detalhes na Seo 3.2 devido sua complexidade.
11
efeitos: matriz que contm os efeitos sonoros do jogo. Incluem-se efeitos de posicionamento de peas no tabuleiro e as vozes da velha. Esta varivel no existe na verso celular. animacao: indica a animao em andamento da velha, pode assumir os valores NORMAL, IRONICA e DESESPERADA. tempoAnimacao: indica a contagem de tempo na animao da velha para realizar a troca de quadros. tempo: varivel utilizada para controlar a passagem do tempo no jogo.
O diagrama em blocos do jogo representado na Figura 5. Basicamente, uma repetio durante o andamento completo da partida. Cada bloco descrito na seqncia em maiores detalhes, sendo que a lgica do jogador e a lgica da velha so descritos em detalhes nas sees 3.2.1 e 3.2.2, respectivamente.
vez
Lgica da Velha
Testa Critrios
Os demais blocos possuem as funcionalidades como descritos a seguir: Prepara Variveis: responsvel por iniciar o valor das variveis relevantes: o estado: EM_ANDAMENTO o tabuleiro: todas as posies com VAZIO. o musica: carrega a midi do disco. o efeitos: carrega os efeitos sonoros do disco. o sprites: carrega os sprites do jogo.
12
o imagem_cenario: carrega a imagem da skin selecionada. o animacao: NORMAL. o tempo: tick do sistema. o tempoAnimacao: 0. o vez: iniciada com o valor resultante do bloco Opes de Partida. Desenha Tela: Primeiramente, esta funcionalidade desenha o tilemap com o cenrio, para em seguida desenhar as marcas, cursor, tempo passado da partida e, por fim, a animao da velha. Esta funcionalidade atualiza os valores das variveis tempo, tempoAnimacao e animao. O controle de tempo feito no incio desta funcionalidade, aguardando a passagem de um quadro ao outro. L Entrada: esta funcionalidade l a entrada (mouse ou teclado) e coloca valores adequados nas variveis x, y e botao. Caso o jogador selecione a opo para abandonar o jogo, esta funcionalidade atribui o valor ABANDONADA para estado. vez: testa de quem a vez, se do jogador ou da velha, invocando as funcionalidades Lgica do Jogador e Lgica da Velha de acordo com o valor da varivel vez. Testa Critrios: verifica o tabuleiro para determinar se a partida encerrou e, caso positivo, se houve vencedor. A indicao feita atravs da varivel estado. Caso o jogador decida encerrar a partida (estado=ABANDONADA) a funcionalidade ignora o tabuleiro e mantm o valor de estado em ABANDONADA. estado: testa se a partida deve continuar (estado=EM_ANDAMENTO) ou se ela acabou (estado EM_ANDAMENTO). Se a partida estiver em andamento, o jogo volta a repetio para a funcionalidade Desenha Tela. Caso contrrio, a partida encerrada. Mostra Resultado: mostra o resultado da partida, exceto quando a partida abandonada pelo jogador. Alm disto, a funcionalidade responsvel por eliminar da memria algumas variveis alocadas: o musica: descarrega a midi da memria. o efeitos: descarrega os efeitos sonoros da memria. o sprites: descarrega os sprites da memria. o imagem_cenario: descarrega a imagem da skin.
13
boto
F
Vazio
F
Muda tabuleiro
Fim Encerra
Troca a vez
Joga
F
Fim Encerra
Figura 7 - Diagrama funcional da lgica da velha.
Troca a vez
Caso contrrio, o jogo passa para a etapa da jogada efetiva. A escolha da posio feita de acordo com as seguintes regras, utilizadas exatamente neste ordem: 1. Se h uma posio que d a vitria em um turno, a velha joga nesta posio para encerrar a partida.
14
2. Se o jogador est em condies de vitria eminente (isto , colocou duas marcas simultneas), a velha bloqueia a vitria do jogador, colocando uma marca na posio que daria a vitria ao jogador humano. 3. Se possvel colocar uma marca numa posio que crie uma armadilha, a velha escolhe esta posio. Uma armadilha exemplificada na Figura 8, aonde a criao de uma marca na posio indicada cria a oportunidade de vitria garantida no prximo turno, independente da posio escolhida pelo oponente. 4. Cria uma marca na posio central se esta estiver disponvel. 5. Cria uma marca em um dos cantos, preferencialmente alinhada com outras marcas em potencial. 6. Cria uma marca em uma posio intermediria das laterais, novamente procurando alinhar com outras marcas em potencial.
Marca nova
Uma vez que a velha escolha a posio, esta alterada no tabuleiro e a varivel vez alterada para dar o turno ao jogador, encerrando assim a funcionalidade. A dificuldade utilizada para determinar a probabilidade da velha fazer uma jogada seguindo as regras definidas, que garantem ao menos o empate em qualquer situao. Desta forma, quanto menor a probabilidade da velha fazer uma jogada seguindo as regras, mais fcil fica o jogo e, quanto maior a probabilidade da velha fazer uma boa jogada, mais difcil ele fica. A varivel dificuldade do jogo varia de 0 a 100, porm 0% de chance um valor inadequado (j que o jogador no ser desafiado) e 100% idem, j que o jogador no conta com o fator distrao do oponente. Para balancear os dois aspectos, o jogo utiliza a Equao 1 para determinar a probabilidade pj da velha realizar uma boa jogada. Desta forma, a velha ter no mnimo 50% de chances de fazer uma boa jogada, com o mximo de 95% de chances de fazer uma jogada boa para simular o fator distrao.
15
16
3. Cursor do mouse: sprite utilizado para substituir o cursor do mouse do sistema na verso dektop. Tamanho 32x32. 4. tilemap do cenrio: tilemap indicando o desenho do cenrio de fundo. Por sua vez, os recursos de udio so apresentados abaixo, valendo lembrar que estes sero utilizados apenas na verso desktop e que na verso celular o jogo ir prosseguir em silncio devido variao de bibliotecas JAVA entre os diversos aparelhos. 1. Msica: msica midi utilizada durante a partida. 2. Efeitos sonoros: de acordo com a lista abaixo. a. Posiocinamento de marca: efeito sonoro para quando o jogador/velha colocam uma marca na tela. b. Erro: efeito sonoro que indica a tentativa de colocar uma marca na posio incorreta. c. Virria: efeito sonoro tocado quando o jogador vence a partida. d. Derrota: efeito sonoro tocado quando o jogador perde a partida. e. Empate: efeito sonoro tocado quando o jogador empata a partida. f. Ironia: efeito sonoro de voz utilizado quando a velha ironiza o jogador. Para uma maior variedade, sero utilizados trs efeitos de voz, escolhidos aleatoriamente durante as partidas. g. Desespero: efeito sonoro de voz utilizado quando a velha entra em desespero. Para uma maior variedade, sero utilizados trs efeitos de voz, escolhidos aleatoriamente durante as partidas.
17
5 Cronograma
Esta ltima seo descritiva detalha as etapas do desenvolvimento do Jogo da Velha. Cada etapa pode ser dividida em duas ou mais sub-etapas de acordo com a necessidade. No caso especfico do Jogo da Velha no ocorrero etapas paralelas, j que a equipe formada por apenas uma pessoa. No caso de equipes maiores, duas ou mais tarefas podem ser realizadas em paralelo no mesmo perodo de tempo.
5.1 Projeto
Data de incio: 03/2006 Data de encerramento: 04/04/2006 Responsvel: Paulo V. W. Radtke Nesta etapa ser proposto o jogo da velha, descrevendo a lgica do jogo, suas funcionalidades e recursos grficos necessrios para a sua implementao.
18
19
20
21
6 Concluso
O projeto apresentado cobre as etapas de desenvolvimento do Jogo da Velha, um jogo casual para celulares e sistemas desktop. O desenvolvimento dele coincidir com o andamento da Tutoria de Jogos na PUCPR, servindo como exemplo de implementao. A previso que a primeira verso funcional fique pronta para a feira de cursos da PUCPR em Outubro de 2006, com a expectativa da verso final em Novembro de 2006.
22