SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Pontifícia Universidade Católica do Paraná – Centro de Ciências Exatas e Tecnológicas
Tutoria de Jogos 2006 – Primeiro Semestre
Jogo da Velha
Projeto
Prof. Paulo V. W. Radtke
21 de Março de 2006
2
Índice
1 Introdução ................................................................................................................... 4
2 Descrição..................................................................................................................... 5
2.1 Objetivo............................................................................................................... 5
2.2 Público Alvo ....................................................................................................... 6
2.3 Regras e Jogabilidade ......................................................................................... 6
2.4 Controle............................................................................................................... 7
2.5 Aspecto Visual.................................................................................................... 8
2.6 Aspecto Sonoro................................................................................................... 9
3 Diagrama Funcional em Blocos................................................................................ 10
3.1 Diagrama Funcional Geral................................................................................ 10
3.2 Diagrama Funcional do Jogo ............................................................................ 11
3.2.1 Lógica do Jogador..................................................................................... 13
3.2.2 Lógica da Velha........................................................................................ 14
4 Levantamento de Recursos Áudio-Visuais............................................................... 16
4.1 Recursos do Módulo Jogo................................................................................. 16
5 Cronograma............................................................................................................... 18
5.1 Projeto............................................................................................................... 18
5.2 Interface Visual................................................................................................. 18
5.2.1 Tilemap do Cenário de Fundo................................................................... 18
5.2.2 Situação do Tabuleiro ............................................................................... 18
5.2.3 Animações da Velha ................................................................................. 19
5.3 Lógica do Jogo.................................................................................................. 19
5.3.1 Testa Critérios........................................................................................... 19
5.3.2 Lógica do Jogador..................................................................................... 19
5.3.3 Lógica da Velha........................................................................................ 19
5.3.4 Mostra Resultado ...................................................................................... 20
5.4 Menus de Navegação........................................................................................ 20
5.4.1 Menu Principal.......................................................................................... 20
5.4.2 Opções de Partida ..................................................................................... 20
5.4.3 Menu de Opções ....................................................................................... 20
5.4.4 Tela Inicial ................................................................................................ 21
5.4.5 Tela de Encerramento ............................................................................... 21
6 Conclusão.................................................................................................................. 22
3
Índice de Figuras
Figura 1 - Tabuleiro do jogo da velha................................................................................. 6
Figura 2 - Situações de vitória 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 lógica do jogador........................................................ 14
Figura 7 - Diagrama funcional da lógica da velha............................................................ 14
Figura 8 - Exemplo de armadilha...................................................................................... 15
4
1 Introdução
Este documento apresenta o projeto do “Jogo da Velha”, um jogo de raciocínio
para um jogador desenvolvido como estudo de caso na atividade de Tutoria de Jogos na
PUCPR, primeiro semestre de 2006. O jogo é desenvolvido em versões para sistema
desktop (Windows PC, usando C e Allegro) e para celular usando J2ME.
O documento é dividido em quatro seções primárias. A primeira apresenta a
descrição do jogo, contendo as regras, público alvo, esboços da tela e demais aspectos
relacionados ao jogo. A segunda etapa apresenta o diagrama em blocos das
funcionalidades da aplicação, descrevendo em que cada um dos blocos é responsável. Já
a terceira etapa realiza o levantamento dos recursos áudio-visuais necessários, dividida
em duas sub-seções, uma para a versão desktop e outra para a versão celular. Finalmente
a quarta seção apresenta o cronograma de atividades.
Uma seção de conclusões encerra o documento com perspectivas do
desenvolvimento.
5
2 Descrição
O “Jogo da Velha” é um jogo de raciocínio para um jogador, projetado para versões
em sistema desktop (PC Windows) e celulares. Esta seção descreve detalhadamente o
jogo, sendo subdividida em cinco partes que descrevem o jogo e seus objetivos, o público
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 períodos de tempo. Baseado no jogo da velha tradicional, o
“Jogo da Velha” oferece opções de dificuldade que permitem ao jogador escolher a
dificuldade do jogo, opções de visualização personalizadas e uma abordagem
humorística, representando o oponente artificial como uma senhora ranzinza que não
perde a chance de fazer comentários sobre o jogador. Em contra-partida, a personalidade
do oponente artificial também o torna um personagem tenso, de forma que boas jogadas
por parte do jogador humano podem desencadear comentários nervosos por parte da
senhora ranzinza que representa o oponente artificial.
Desta maneira, o jogo possuirá três tipos de opções:
• Opção de dificuldade: determina a possibilidade do oponente artificial fazer uma
boa jogada. Quanto menor a dificuldade, mais fácil o oponente artificial erra.
Quanto maior a dificuldade, menor a chance do oponente artificial errar. Para
simular a falta de atenção dos seres humanos, o oponente artificial possui, mesmo
na dificuldade mais elevada, a possibilidade de errar a jogada, o que pode permitir
a vitória do oponente humano.
• Opção de visualização (skin): determina a aparência visual durante a partida,
baseada em um conjunto de elementos gráficos utilizados para criar a tela do jogo.
O sistema é similar ao de skins utilizados por diversos reprodutores multimídia.
Para a versão celular, o conjunto de skins será fixo, enquanto que para a versão
desktop estuda-se a possibilidade de permitir ao jogador inserir novos padrões.
• Opção de início de jogo: indica qual jogador irá iniciar a partida, sendo escolhido
entre jogador humano, seu oponente artificial ou aleatório, quando a decisão é
feita por sorteio.
Destas opções, as duas primeiras são disponibilizadas em menu de opções do jogo,
enquanto que a opção de início de jogo por conveniência é apresentada antes de se iniciar
cada partida. A seção de aspecto visual irá demonstrar os menus decorrentes destas telas
de opções.
6
2.2 Público Alvo
O público alvo do “Jogo da Velha” consiste em jogadores do perfil casual, similar
aos perfil dos jogadores do Paciência e Campo Minado, distribuídos com o sistema
operacional Windows. Assim, espera-se que o jogador não passe períodos prolongados
executando o jogo, porém este deverá se sentir compelido a voltar a jogá-lo
eventualmente como em filas de banco (versão celular) ou em pausas para café durante as
suas atividades do dia-a-dia (versão desktop). Como jogo de apelo universal, o “Jogo da
Velha” encontra público em todas as faixas de idade, tanto homens como mulheres.
2.3 Regras e Jogabilidade
O jogo da velha é jogado em turnos alternados entre dois jogadores, o jogador
humano e o jogador artificial (o computador). O jogo passa-se num tabuleiro de 3x3
posições nas quais os jogadores fazem suas marcas em uma das posições durante as
rodadas, como mostrado na Figura 1. O jogador que inicia a partida utiliza o símbolo
“X”, enquanto que o segundo jogador utiliza o símbolo “O”.
Figura 1 - Tabuleiro do jogo da velha.
Cada jogador é livre para colocar uma marca em qualquer posição no seu turno,
desde que a posição esteja vazia (sem marcas). Ao colocar uma marca no tabuleiro, a
jogada passa para o próximo jogador, aonde o processo é repetido até que um dos
jogadores vença, ou até o tabuleiro ser completamente preenchido, situação na qual
ocorre empate.
A vitória ocorre quando um jogador consegue colocar três símbolos em seqüência,
seja em linha, coluna ou na diagonal principal do tabuleiro, de acordo com a Figura 2. O
objetivo dos jogadores, então, é colocar três marcas numa das configurações válidas,
enquanto evitam que o seu oponente consiga fazer as três marcas antes dele.
7
Figura 2 - Situações de vitória no jogo da velha.
Assim, os critérios de avaliação final de uma partida para o jogador humano são
as seguintes:
• Vitória: o jogador humano consegue colocar as três marcas numa das
configurações válidas do jogo.
• Empate: o tabuleiro é completamente preenchido e nem o jogador humano, nem
o oponente artificial, conseguem colocar as três marcas numa das configurações
válidas.
• Derrota: o oponente artificial consegue colocar as três marcas numa das
configurações válidas.
No decorrer da partida, o oponente artificial comenta a partida, de acordo com a
situação. O comentário pode ser contra o jogador humano, caso o oponente artificial faça
uma boa jogada, ou então criticando o jogador humano, caso este faça uma jogada que
coloque o oponente artificial numa situação difícil.
2.4 Controle
O controle do jogo depende da versão analisada. Para a versão desktop, será escolhido
o controle via mouse, padrão em todos os sistemas operacionais de interface gráfica. Pela
simplicidade do jogo, será utilizado apenas um botão, o esquerdo, seja para selecionar
opções de menu ou para posicionar a marca sobre o tabuleiro. Desta forma, conversões
para Mac OS X ficam facilitadas pela interface de botões 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 versão celular o controle será feito com o teclado, utilizando o direcional
disponível nos diversos aparelhos. Apenas um botão será utilizado, visando simplificar o
aspecto ergonômico de uso. O direcional é usado durante o jogo para escolher a posição
no tabuleiro, enquanto que o botão é utilizado para marcar a posição pelo jogador. Os
menus serão implementados usando menus tradicionais de J2ME.
8
2.5 Aspecto Visual
O jogo, tanto na versão celular como na versão desktop, terá a aparência conforme
exibido na Figura 3. O tabuleiro 3x3 é representado em destaque, com as marcações
feitas por cada jogador, o cursor indicando a posição selecionada no momento, contador
de tempo, indicação de quem é o turno e, caracterizando o oponente virtual, a “velha” que
dá o duplo sentido ao título do jogo. Uma opção especial (“encerrar”) permite ao jogador
anular a partida, voltando ao menu principal. No caso desta opção ser selecionada, uma
caixa de diálogo confirma a ação pedida antes desta ser executada.
Figura 3 - Aspecto visual do "Jogo da Velha".
Além da tela de jogo, planejam-se quatro telas com menus de opções para o
jogador:
• Tela principal: oferece quatro opções para o jogador, (1) iniciar uma partida, (2)
configurar opções, (3) visualizar os créditos e (4) encerrar o jogo.
• Definição de quem começa o jogo: este menu é apresentado quando o jogador
decide iniciar uma partida, apresentando três opções para iniciar o jogo, (1) o
jogador humano começa a partida, (2) a “velha” começa o jogo e (3) a escolha é
feita aleatoriamente.
• Opções: esta tela apresenta as opções de dificuldade (fácil, normal ou difícil) e a
esolha do skin (padrão ou outros).
• Tela de créditos: mostra os créditos de desenvolvimento, permitindo ao jogador
voltar ao menu principal.
X
X Tempo: 55s
Turno: velha
Encerrar
9
2.6 Aspecto Sonoro
O jogo possuirá músicas e efeitos sonoros na versão desktop. Já para a versão
celular este suporte não será implementado, visando independência de plataformas. Entre
os efeitos sonoros da versão desktop, serão utilizadas vozes digitalizadas para simular um
monólogo ácido entre o jogador humano e seu oponente artificial.
Pelo tamanho dos arquivos gerados, os efeitos sonoros serão utilizados no formato
Microsoft wave (.WAV), com taxa de amostragem de 44kHz, resolução de 16 bits e
formato mono-aural. Possíveis efeitos posicionais em estéreo serão efetuados utilizando
código. Para a edição dos efeitos sonoros, será utilizado o editor gratuito Audacity. Para
as músicas, será utilizado o formato MIDI (suporte padrão do Allegro), devido ao
tamanho reduzido e por não necessitar da instalação de bibliotecas extra. Os editores
escolhidos para editar o formato MIDI são o Jazz MIDI Sequencer e o Anvil Studio,
ambos gratuitos.
10
3 Diagrama Funcional em Blocos
Esta seção detalha as funcionalidades do “Jogo da Velha”, apresentadas como um
diagrama em blocos. Cada funcionalidade é descrita e, quando necessário, uma
funcionalidade é descrita em funcionalidades menores para maior clareza no momento da
implementação. Assim, o objetivo desta seção é servir como um guia para a
implementação do “Jogo da Velha”.
3.1 Diagrama Funcional Geral
As funcionalidades no nível superior do jogo são apresentadas na Figura 4,
demonstrando a funcionalidade do jogo no nível mais alto da navegação do usuário. Após
uma tela de apresentação, o jogador é levado para o menu principal, aonde ele pode
escolher entre modificar as opções do jogo, iniciar uma partida ou encerrar o aplicativo.
Um conjunto de variáveis de configurações é acessível tanto pela tela de opções e pelo
módulo do jogo.
Figura 4 - Diagrama geral das funcionalidades do "Jogo da Velha".
As funcionalidades de cada bloco são 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 botão
do mouse (versão desktop).
Tela
Inicial
Menu
Principal
Menu
Opções
Jogo
Início
Tela de
Encerramento
Fim
Opção da
partida
Configurações
11
• Menu Principal: Nesta tela o jogador escolhe uma ação entre três opções
possíveis. A ação mais simples leva ao encerramento do jogo. Outra possibilidade
é passar para o menu de opções, sendo que a terceira e última inicia uma nova
partida.
• Opções de Partida: define quem vai iniciar o jogo, o computador ou o jogador. A
escolha é feita pelo jogador em três opções, indicando explicitamente quem inicia
(jogador ou computador), ou implicitamente, através de um sorteio aleatório
realizado pelo computador.
• Jogo: a funcionalidade principal, composta pela interface visual da partida e pela
lógica do jogo. Esta funcionalidade é apresentada em detalhes na Seção 3.2
devido à sua complexidade.
3.2 Diagrama Funcional do Jogo
Por ser o bloco principal da aplicação (jogo), este bloco é o mais complexo. Para o
seu funcionamento, algumas variáveis são utilizadas para representar o estado do jogo e
opções escolhidas. As variáveis são as seguintes:
• cenario: tilemap referente à imagem de fundo do jogo. Contém o fundo, o
tabuleiro do jogo e demais informações estáticas.
• imagem_cenario: tileset utilizado em conjunto com o tilemap cenario. A
imagem utilizada varia de acordo com o skin selecionado.
• sprites: sprites utilizados pelo jogo. Incluem as marcas dos jogadores, cursor no
tabuleiro e do mouse (versão desktop) e as animações da velha.
• skin*
: indica qual skin deve ser utilizado pelo jogo, determinando, assim, o valor
de imagem_cenario.
• dificuldade*
: variável que, como o nome indica, define a dificuldade da partida.
O valor da mesma varia entre 0 e 100, quanto menor o valor maiores as chances
do jogador vencer a partida.
• vez: variável booleana que indica quem deve jogar no turno. Verdadeiro para o
jogador e falso para o computador.
• tabuleiro: matriz que representa o tabuleiro 3x3 do jogo. Cada posição pode
possuir um de três valores possíveis: VAZIO, JOGADOR, VELHA. Tais valores
indicam se a posição possui uma marca e de quem é a marca.
• x,y, botao: coordenadas para indicar a posição do mouse/cursor e se o botão foi
pressionado para o posicionamento de uma marca no cenário.
• estado: variável que indica um dos possíveis estados do jogo, baseado em
constantes. Para partida em andamento, utiliza-se EM_ANDAMENTO, para
partida empatada EMPATADA, para vitória do jogador VITORIA e no caso de
derrota, utiliza-se DERROTA. Se o jogador decidir em qualquer momento abortar
a partida, a variável deve assumir o valor ABANDONADA.
• musica: variável que contém o midi da música reproduzida durante a partida.
12
• efeitos: matriz que contém os efeitos sonoros do jogo. Incluem-se efeitos de
posicionamento de peças no tabuleiro e as vozes da velha. Esta variável não existe
na versão celular.
• animacao: indica a animação em andamento da velha, pode assumir os valores
NORMAL, IRONICA e DESESPERADA.
• tempoAnimacao: indica a contagem de tempo na animação da velha para realizar
a troca de quadros.
• tempo: variável utilizada para controlar a passagem do tempo no jogo.
*: indica variável de configuração selecionada no menu de opções.
O diagrama em blocos do jogo é representado na Figura 5. Basicamente, uma
repetição durante o andamento completo da partida. Cada bloco é descrito na seqüência
em maiores detalhes, sendo que a lógica do jogador e a lógica da velha são descritos em
detalhes nas seções 3.2.1 e 3.2.2, respectivamente.
Figura 5 - Diagrama funcional do jogo.
Os demais blocos possuem as funcionalidades como descritos a seguir:
• Prepara Variáveis: responsável por iniciar o valor das variáveis relevantes:
o estado: EM_ANDAMENTO
o tabuleiro: todas as posições com VAZIO.
o musica: carrega a midi do disco.
o efeitos: carrega os efeitos sonoros do disco.
o sprites: carrega os sprites do jogo.
Prepara
variáveis
Desenha
Tela
Lê
Entrada
Lógica do
Jogador
Lógica da
Velha
Testa
Critérios
Mostra
Resultado
Início
vez
V F
Fim
estado
EM_ANDAMENTO
13
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 Opções de Partida.
• Desenha Tela: Primeiramente, esta funcionalidade desenha o tilemap com o
cenário, para em seguida desenhar as marcas, cursor, tempo passado da partida e,
por fim, a animação da velha. Esta funcionalidade atualiza os valores das
variáveis tempo, tempoAnimacao e animação. O controle de tempo é feito no
início 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 variáveis x, y e botao. Caso o jogador selecione a opção 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 Lógica do Jogador e Lógica da Velha de acordo com o valor da
variável vez.
• Testa Critérios: verifica o tabuleiro para determinar se a partida encerrou e, caso
positivo, se houve vencedor. A indicação é feita através da variável estado. Caso
o jogador decida encerrar a partida (estado=ABANDONADA) a funcionalidade
ignora o tabuleiro e mantém 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 repetição para a funcionalidade Desenha Tela. Caso contrário, a partida é
encerrada.
• Mostra Resultado: mostra o resultado da partida, exceto quando a partida é
abandonada pelo jogador. Além disto, a funcionalidade é responsável por eliminar
da memória algumas variáveis alocadas:
o musica: descarrega a midi da memória.
o efeitos: descarrega os efeitos sonoros da memória.
o sprites: descarrega os sprites da memória.
o imagem_cenario: descarrega a imagem da skin.
3.2.1 Lógica do Jogador
Esta funcionalidade realiza a lógica do turno do jogador, sendo detalhada pela
Figura 6. Inicialmente, as coordenadas do mouse/cursor são convertidas para coordenadas
do tabuleiro (nota: na versão celular, a conversão é desnecessária). Uma vez convertidas
as coordenadas para tabuleiro, a lógica testa se o botão foi pressionado. Se não tiver sido
pressionado (ou a posição no tabuleiro for inválida na versão desktop), a funcionalidade
encerra-se. Caso contrário, o jogo verifica se a posição é vazia ou não. Caso seja vazia,
uma marca é feita no tabuleiro na posição selecionada e a variável vez é atualizada para
passar o controle para a velha. Caso a posição selecionada não seja vazia, a
funcionalidade encerra, esperando a próxima iteração.
14
Figura 6 - Diagrama funcional da lógica do jogador.
3.2.2 Lógica da Velha
A lógica da velha é descrita pela Figura 7. Inicialmente a velha simula o tempo
utilizado para pensar, de forma que o jogador não seja forçado a jogar consecutivamente
contra um adversário que reage extremamente rápido. Como a simulação deve ser feita
dentro da repetição da lógica do jogo, uma variável é utilizada para acumular o tempo
passado. Em seguida, este tempo é testado para verificar se a jogada pode ser feita ou
não. Caso não tenha passado o tempo, a funcionalidade encerra.
Figura 7 - Diagrama funcional da lógica da velha.
Caso contrário, o jogo passa para a etapa da jogada efetiva. A escolha da posição
é feita de acordo com as seguintes regras, utilizadas exatamente neste ordem:
1. Se há uma posição que dê a vitória em um turno, a velha joga nesta posição para
encerrar a partida.
Simula
Jogada
Muda
tabuleiro
Troca a
vezEncerra
Início
Joga
Fim
F
V
Escolhe
posição
Converte
Coordenadas
Muda
tabuleiro
Troca a
vezEncerra
Início
botão
Fim
Vazio
F
V
F
V
15
2. Se o jogador está em condições de vitória eminente (isto é, colocou duas marcas
simultâneas), a velha bloqueia a vitória do jogador, colocando uma marca na
posição que daria a vitória ao jogador humano.
3. Se é possível colocar uma marca numa posição que crie uma armadilha, a velha
escolhe esta posição. Uma armadilha é exemplificada na Figura 8, aonde a criação
de uma marca na posição indicada cria a oportunidade de vitória garantida no
próximo turno, independente da posição escolhida pelo oponente.
4. Cria uma marca na posição central se esta estiver disponível.
5. Cria uma marca em um dos cantos, preferencialmente alinhada com outras marcas
em potencial.
6. Cria uma marca em uma posição intermediária das laterais, novamente
procurando alinhar com outras marcas em potencial.
Figura 8 - Exemplo de armadilha.
Uma vez que a velha escolha a posição, esta é alterada no tabuleiro e a variável
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 situação.
Desta forma, quanto menor a probabilidade da velha fazer uma jogada seguindo as
regras, mais fácil fica o jogo e, quanto maior a probabilidade da velha fazer uma boa
jogada, mais difícil ele fica.
A variável dificuldade do jogo varia de 0 a 100, porém 0% de chance é um valor
inadequado (já que o jogador não será desafiado) e 100% idem, já que o jogador não
conta com o fator distração do oponente. Para balancear os dois aspectos, o jogo utiliza a
Equação 1 para determinar a probabilidade pj da velha realizar uma boa jogada. Desta
forma, a velha terá no mínimo 50% de chances de fazer uma boa jogada, com o máximo
de 95% de chances de fazer uma jogada boa para simular o fator distração.
⎟
⎠
⎞
⎜
⎝
⎛
×+=
100
45.05.0
edificuldad
pj
Equação 1 - Probabilidade da velha fazer uma boa jogada.
Marca nova
16
4 Levantamento de Recursos Áudio-Visuais
Esta seção detalha os recursos gráficos e de áudio utilizados pelo “Jogo da Velha”
(obs: áudio será utilizado apenas na versão desktop). Os recursos áudio-visuais são
descritos em seções relacionadas às funcionalidades gerais do jogo, como detalhado na
Figura 4. Tal divisão é proposta por permitir uma divisão natural dos recursos utilizados
relacionados à implementação de funcionalidades macro do jogo. Assim, os mesmos
podem ser desenvolvidos à medida que são necessários, permitindo também o enfoque
inicial nos recursos específicos utilizados durante a partida.
Inicialmente serão demonstrados os recursos utilizados no módulo do jogo, sendo
que os recursos dos módulos restantes serão adicionados nas próximas interações do
projeto.
4.1 Recursos do Módulo Jogo
Os recursos gráficos a serem utilizados são os seguintes:
1. cenário: tileset com blocos 32x32 (desktop) ou 8x8 (celular) para compor o
cenário de fundo. Serão criadas diversas imagens para o mesmo tilemap,
fornecendo assim o recurso de skins.
2. sprites: imagens para desenhar os elementos do jogos, de tamanho 32x32.
Imagens maiores são obtidas utilizando-se vários sprites para compô-las. As
imagens necessárias estão de acordo com a lista abaixo:
a. Marca X: marca de jogador, 64x64 na versão desktop e 16x16 na versão
celular.
b. Marca O: marca de jogador, 64x64 na versão desktop e 16x16 na versão
celular.
c. Cursor: indica a posição seleccionada no tabuleiro, 64x64 na versão
desktop e 16x16 na versão celular.
d. Animação da Velha normal: imagem da velha durante a partida, com
cara ranzinza e piscando os olhos de tempo em tempo. Assim, são
necessárias duas imagens, uma com a velha tendo os olhos abertos e outra
com eles fechados. O tamanho será 128x128 na versão desktop e 48x48
na versão celular.
e. Animação da Velha irônica: imagem da velha quando esta faz uma boa
jogada, com cara irônica. Serão utilizadas três imagens para animar a
boca da velha entre aberta, meio aberta e fechada. O tamanho será
128x128 na versão desktop e 48x48 na versão celular.
f. Animação da Velha desesperada: imagem da velha quando o jogador
faz uma boa jogada, com cara de desespero. Serão utilizadas três imagens
para animar a boca da velha entre aberta, meio aberta e fechada. O
tamanho será 128x128 na versão desktop e 48x48 na versão celular.
17
3. Cursor do mouse: sprite utilizado para substituir o cursor do mouse do sistema
na versão dektop. Tamanho 32x32.
4. tilemap do cenário: tilemap indicando o desenho do cenário de fundo.
Por sua vez, os recursos de áudio são apresentados abaixo, valendo lembrar que estes
serão utilizados apenas na versão desktop e que na versão celular o jogo irá prosseguir
em silêncio devido à variação de bibliotecas JAVA entre os diversos aparelhos.
1. Música: música 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
posição incorreta.
c. Virória: 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, serão utilizados três 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, serão utilizados três efeitos de voz,
escolhidos aleatoriamente durante as partidas.
18
5 Cronograma
Esta última seção 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 específico do “Jogo da Velha” não ocorrerão 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 período de tempo.
5.1 Projeto
Data de início: 03/2006
Data de encerramento: 04/04/2006
Responsável: Paulo V. W. Radtke
Nesta etapa será proposto o jogo da velha, descrevendo a lógica do jogo, suas
funcionalidades e recursos gráficos necessários para a sua implementação.
5.2 Interface Visual
Esta etapa será implementada em três tarefas separadas, que são utilizadas para
mostrar visualmente o estado do jogo para o jogador.
5.2.1 Tilemap do Cenário de Fundo
Data de início: 24/04/2006
Data de encerramento: 13/05/2006
Responsável: Paulo V. W. Radtke
Será implementado nesta etapa o código necessário para visualizar o tilemap do
cenário de fundo do “Jogo da Velha”, além da opção para encerrar a partida do jogador.
Tal opção será utilizada para encerrar o “Jogo da Velha” uma vez este seja iniciado.
5.2.2 Situação do Tabuleiro
Data de início: 15/05/2006
Data de encerramento: 02/06/2006
Responsável: Paulo V. W. Radtke
Esta atividade implementa o código necessário para visualizar a situação do
tabuleiro, mostrando as marcas dos jogadores, a posição selecionada e o cursor do mouse
(versão desktop).
19
5.2.3 Animações da Velha
Data de início: 04/06/2006
Data de encerramento: 16/06/2006
Responsável: Paulo V. W. Radtke
Esta última atividade relacionada à interface visual do jogo implementa o código
necessário para desenhar a animação da velha, baseada no tipo da animação da velha e o
tempo passado desta.
5.3 Lógica do Jogo
Nesta etapa serão implementadas as funcionalidades lógicas do jogo, sendo
possível no final dela realizar partidas completas.
5.3.1 Testa Critérios
Data de início: 31/07/2007
Data de encerramento: 12/08/2006
Responsável: Paulo V. W. Radtke
Esta etapa foi escolhida para iniciar a implementação por ser ela quem determina
quando a partida encerra. Nesta funcionalidade será verificado o estado do tabuleiro para
indicar se a partida encerrou porquê houve um vencedor ou porquê o tabuleiro está cheio.
5.3.2 Lógica do Jogador
Data de início: 14/08/2006
Data de encerramento: 26/08/2006
Responsável: Paulo V. W. Radtke
Esta etapa utilizará a interface do sistema (mouse ou teclado do celular) para
mover o cursor no tabuleiro e fazer uma marca do jogador humano no tabuleiro.
5.3.3 Lógica da Velha
Data de início: 28/08/2006
Data de encerramento: 09/09/2006
Responsável: Paulo V. W. Radtke
Complementar à funcionalidade do jogador, a lógica responsável pela inteligência
artificial do jogo, baseada em regas, será implementada nesta etapa. A partir deste ponto,
será possível jogar contra o sistema.
20
5.3.4 Mostra Resultado
Data de início: 11/09/2006
Data de encerramento: 20/09/2006
Responsável: Paulo V. W. Radtke
Esta funcionalidade será responsável por mostrar quem ganhou a partida,
indicando assim diretamente o que pode ser interpretado visualmente no tabuleiro do
jogo.
5.4 Menus de Navegação
A etapa final consiste na implementação dos menus de navegação do jogo,
encerrando assim o desenvolvimento do “Jogo da Velha”.
5.4.1 Menu Principal
Data de início: 02/10/2006
Data de encerramento: 07/10/2006
Responsável: Paulo V. W. Radtke
Etapa que implementa o menu inicial, dando opções ao jogador de mudar as
opções, iniciar uma partida ou encerrar o jogo. Esta funcionalidade foi escolhida como a
primeira ser implementada por ser a centralizadora das as opções disponibilizadas ao
jogador.
5.4.2 Opções de Partida
Data de início: 09/10/2006
Data de encerramento: 16/10/2006
Responsável: Paulo V. W. Radtke
Menu simples que fornece ao jogador um mecanismo simples para indicar de
quem será o primeiro turno da partida (jogador ou da velha).
5.4.3 Menu de Opções
Data de início: 18/10/2006
Data de encerramento: 04/11/2006
Responsável: Paulo V. W. Radtke
Este menu é responsável por mudanças nas opções de partida do “Jogo da
Velha”. Duas opções são previstas nesta tela, dificuldade do jogo, skin para desenhar o
cenário de fundo e voltar ao menu principal.
21
5.4.4 Tela Inicial
Data de início: 06/11/2006
Data de encerramento: 11/11/2006
Responsável: Paulo V. W. Radtke
Nesta opção será exibida uma tela da equipe de desenvolvimento do jogo. A
exibição é temporizada, prosseguindo automaticamente para o menu principal.
5.4.5 Tela de Encerramento
Data de início: 13/11/2006
Data de encerramento: 18/11/2006
Responsável: Paulo V. W. Radtke
Nesta opção será exibida uma tela do jogo se despedindo do jogador, convidando-
para jogar novamente mais tarde.
22
6 Conclusão
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 implementação. A
previsão é que a primeira versão funcional fique pronta para a feira de cursos da PUCPR
em Outubro de 2006, com a expectativa da versão final em Novembro de 2006.

Weitere ähnliche Inhalte

Was ist angesagt?

Tutoria e orientação de estudos
Tutoria e orientação de estudosTutoria e orientação de estudos
Tutoria e orientação de estudosELZA PIRES
 
Formação para os Professores, Premissas: Excelência em Gestão, Corresponsabil...
Formação para os Professores, Premissas: Excelência em Gestão, Corresponsabil...Formação para os Professores, Premissas: Excelência em Gestão, Corresponsabil...
Formação para os Professores, Premissas: Excelência em Gestão, Corresponsabil...SandraRombi
 
Plano Desenvolvimento Individual
Plano Desenvolvimento IndividualPlano Desenvolvimento Individual
Plano Desenvolvimento IndividualDiogo Santos
 
Percepção Auditiva visual e tátil;
Percepção Auditiva visual e tátil;Percepção Auditiva visual e tátil;
Percepção Auditiva visual e tátil;Jaqueline de Paulo
 
Plano de aula uso das mídias pdf
Plano de aula   uso das mídias pdfPlano de aula   uso das mídias pdf
Plano de aula uso das mídias pdfAndré Moraes
 
SLIDES PROJETOS INTEGRADORES.pptx
SLIDES PROJETOS INTEGRADORES.pptxSLIDES PROJETOS INTEGRADORES.pptx
SLIDES PROJETOS INTEGRADORES.pptxEliane Gomes
 
Plano de Ação Matemática
Plano de Ação MatemáticaPlano de Ação Matemática
Plano de Ação MatemáticaManuel de Abreu
 
50 Ideias e Sugestões de Atividades e Jogos Para Suas Aulas
50 Ideias e Sugestões de Atividades e Jogos Para Suas Aulas50 Ideias e Sugestões de Atividades e Jogos Para Suas Aulas
50 Ideias e Sugestões de Atividades e Jogos Para Suas AulasGraça Sousa
 
Aulas Projeto de Vida 6º ao 9º ano EF 1º bimestre.pdf
Aulas Projeto de Vida  6º ao 9º ano EF 1º bimestre.pdfAulas Projeto de Vida  6º ao 9º ano EF 1º bimestre.pdf
Aulas Projeto de Vida 6º ao 9º ano EF 1º bimestre.pdfDirceGrein
 
Habilidades sociais oficina apostila-pdf
Habilidades sociais oficina   apostila-pdfHabilidades sociais oficina   apostila-pdf
Habilidades sociais oficina apostila-pdfAnaí Peña
 
Cartilha+inteligencia+emocional
Cartilha+inteligencia+emocionalCartilha+inteligencia+emocional
Cartilha+inteligencia+emocionalAlice Lirio
 
Redações proerd 2011_bartolomeu
Redações proerd 2011_bartolomeuRedações proerd 2011_bartolomeu
Redações proerd 2011_bartolomeubartolomeubbs
 
AULA ATIVIDADES LÍNGUA BRASILEIRA DE SINAIS
AULA ATIVIDADES LÍNGUA BRASILEIRA DE SINAIS AULA ATIVIDADES LÍNGUA BRASILEIRA DE SINAIS
AULA ATIVIDADES LÍNGUA BRASILEIRA DE SINAIS Joziane Pimentel
 
Modelo pei-plano-educacional-individualizado
Modelo pei-plano-educacional-individualizadoModelo pei-plano-educacional-individualizado
Modelo pei-plano-educacional-individualizadoAntonio Sousa
 
O PODER DA MÍDIA - ENCONTRO PARA JOVENS.
O PODER DA MÍDIA - ENCONTRO PARA JOVENS.O PODER DA MÍDIA - ENCONTRO PARA JOVENS.
O PODER DA MÍDIA - ENCONTRO PARA JOVENS.Emanuel Costa
 

Was ist angesagt? (20)

Tutoria e orientação de estudos
Tutoria e orientação de estudosTutoria e orientação de estudos
Tutoria e orientação de estudos
 
Formação para os Professores, Premissas: Excelência em Gestão, Corresponsabil...
Formação para os Professores, Premissas: Excelência em Gestão, Corresponsabil...Formação para os Professores, Premissas: Excelência em Gestão, Corresponsabil...
Formação para os Professores, Premissas: Excelência em Gestão, Corresponsabil...
 
Plano Desenvolvimento Individual
Plano Desenvolvimento IndividualPlano Desenvolvimento Individual
Plano Desenvolvimento Individual
 
Percepção Auditiva visual e tátil;
Percepção Auditiva visual e tátil;Percepção Auditiva visual e tátil;
Percepção Auditiva visual e tátil;
 
Plano de aula uso das mídias pdf
Plano de aula   uso das mídias pdfPlano de aula   uso das mídias pdf
Plano de aula uso das mídias pdf
 
SLIDES PROJETOS INTEGRADORES.pptx
SLIDES PROJETOS INTEGRADORES.pptxSLIDES PROJETOS INTEGRADORES.pptx
SLIDES PROJETOS INTEGRADORES.pptx
 
Plano de Ação Matemática
Plano de Ação MatemáticaPlano de Ação Matemática
Plano de Ação Matemática
 
Assertividade
AssertividadeAssertividade
Assertividade
 
50 Ideias e Sugestões de Atividades e Jogos Para Suas Aulas
50 Ideias e Sugestões de Atividades e Jogos Para Suas Aulas50 Ideias e Sugestões de Atividades e Jogos Para Suas Aulas
50 Ideias e Sugestões de Atividades e Jogos Para Suas Aulas
 
Aulas Projeto de Vida 6º ao 9º ano EF 1º bimestre.pdf
Aulas Projeto de Vida  6º ao 9º ano EF 1º bimestre.pdfAulas Projeto de Vida  6º ao 9º ano EF 1º bimestre.pdf
Aulas Projeto de Vida 6º ao 9º ano EF 1º bimestre.pdf
 
Habilidades sociais oficina apostila-pdf
Habilidades sociais oficina   apostila-pdfHabilidades sociais oficina   apostila-pdf
Habilidades sociais oficina apostila-pdf
 
Respeito
RespeitoRespeito
Respeito
 
Cartilha+inteligencia+emocional
Cartilha+inteligencia+emocionalCartilha+inteligencia+emocional
Cartilha+inteligencia+emocional
 
Redações proerd 2011_bartolomeu
Redações proerd 2011_bartolomeuRedações proerd 2011_bartolomeu
Redações proerd 2011_bartolomeu
 
AULA ATIVIDADES LÍNGUA BRASILEIRA DE SINAIS
AULA ATIVIDADES LÍNGUA BRASILEIRA DE SINAIS AULA ATIVIDADES LÍNGUA BRASILEIRA DE SINAIS
AULA ATIVIDADES LÍNGUA BRASILEIRA DE SINAIS
 
Aulas de protagonismo juvenil ef
Aulas de protagonismo juvenil efAulas de protagonismo juvenil ef
Aulas de protagonismo juvenil ef
 
Modelo pei-plano-educacional-individualizado
Modelo pei-plano-educacional-individualizadoModelo pei-plano-educacional-individualizado
Modelo pei-plano-educacional-individualizado
 
Diálogos 1 em_opa_volume1_cmyk_vf_22-03
Diálogos 1 em_opa_volume1_cmyk_vf_22-03Diálogos 1 em_opa_volume1_cmyk_vf_22-03
Diálogos 1 em_opa_volume1_cmyk_vf_22-03
 
O PODER DA MÍDIA - ENCONTRO PARA JOVENS.
O PODER DA MÍDIA - ENCONTRO PARA JOVENS.O PODER DA MÍDIA - ENCONTRO PARA JOVENS.
O PODER DA MÍDIA - ENCONTRO PARA JOVENS.
 
Contrato de Convivência
Contrato de ConvivênciaContrato de Convivência
Contrato de Convivência
 

Andere mochten auch

JOGO DA VELHA COM FIGURAS GEOMÉTRICAS
JOGO DA VELHA COM FIGURAS GEOMÉTRICASJOGO DA VELHA COM FIGURAS GEOMÉTRICAS
JOGO DA VELHA COM FIGURAS GEOMÉTRICASMasclleide Paula
 
2º jogo da velha guarda
2º jogo da velha guarda2º jogo da velha guarda
2º jogo da velha guardaangical-piaui
 
Apostila de Jogos em Rede com Java
Apostila de Jogos em Rede com JavaApostila de Jogos em Rede com Java
Apostila de Jogos em Rede com JavaMarco Reis
 
Trabalho sobre jogos
Trabalho sobre jogosTrabalho sobre jogos
Trabalho sobre jogoswilliamcid
 
Estrutura plano aula_20140521204149(2)
Estrutura plano aula_20140521204149(2)Estrutura plano aula_20140521204149(2)
Estrutura plano aula_20140521204149(2)Adriana Costa Silva
 
Plano de Aula - Passa ou Repassa Histórico
Plano de Aula - Passa ou Repassa HistóricoPlano de Aula - Passa ou Repassa Histórico
Plano de Aula - Passa ou Repassa HistóricoLeonardo Lira
 
Texto Introdutório - A elite ‘de boas’ na modernização das cidades.
Texto Introdutório - A elite ‘de boas’ na modernização das cidades.Texto Introdutório - A elite ‘de boas’ na modernização das cidades.
Texto Introdutório - A elite ‘de boas’ na modernização das cidades.Leonardo Lira
 
Plano de Aula - A modernização da República Velha
Plano de Aula - A modernização da República VelhaPlano de Aula - A modernização da República Velha
Plano de Aula - A modernização da República VelhaLeonardo Lira
 
Texto Introdutório - Uma rebelião em 1904
Texto Introdutório - Uma rebelião em 1904Texto Introdutório - Uma rebelião em 1904
Texto Introdutório - Uma rebelião em 1904Leonardo Lira
 
Texto introdutório Características da República Velha
Texto introdutório   Características da República VelhaTexto introdutório   Características da República Velha
Texto introdutório Características da República VelhaLeonardo Lira
 
Plano de Aula - Cápsula do Tempo Pibid
Plano de Aula - Cápsula do Tempo PibidPlano de Aula - Cápsula do Tempo Pibid
Plano de Aula - Cápsula do Tempo PibidLeonardo Lira
 
Plano de Aula - Labirinto do Oswaldo
Plano de Aula - Labirinto do OswaldoPlano de Aula - Labirinto do Oswaldo
Plano de Aula - Labirinto do OswaldoLeonardo Lira
 
Plano de Aula - Jogo de Damas: Coronelismo e Voto de Cabresto
Plano de Aula - Jogo de Damas: Coronelismo e Voto de CabrestoPlano de Aula - Jogo de Damas: Coronelismo e Voto de Cabresto
Plano de Aula - Jogo de Damas: Coronelismo e Voto de CabrestoLeonardo Lira
 
Plano de Aula - A República Velha e as Revoltas Sociais
Plano de Aula  - A República Velha e as Revoltas SociaisPlano de Aula  - A República Velha e as Revoltas Sociais
Plano de Aula - A República Velha e as Revoltas SociaisLeonardo Lira
 
Plano de aula - Questionário Pedagógico
Plano de aula - Questionário PedagógicoPlano de aula - Questionário Pedagógico
Plano de aula - Questionário PedagógicoLeonardo Lira
 
Questionário Pedagógico
Questionário PedagógicoQuestionário Pedagógico
Questionário PedagógicoLeonardo Lira
 
Plano de aula aprender em parceria 2
Plano de aula aprender em parceria 2Plano de aula aprender em parceria 2
Plano de aula aprender em parceria 2Giselapapa
 

Andere mochten auch (20)

JOGO DA VELHA COM FIGURAS GEOMÉTRICAS
JOGO DA VELHA COM FIGURAS GEOMÉTRICASJOGO DA VELHA COM FIGURAS GEOMÉTRICAS
JOGO DA VELHA COM FIGURAS GEOMÉTRICAS
 
Jogo da velha
Jogo da velhaJogo da velha
Jogo da velha
 
2º jogo da velha guarda
2º jogo da velha guarda2º jogo da velha guarda
2º jogo da velha guarda
 
Solidos geom
Solidos geomSolidos geom
Solidos geom
 
Apostila de Jogos em Rede com Java
Apostila de Jogos em Rede com JavaApostila de Jogos em Rede com Java
Apostila de Jogos em Rede com Java
 
Trabalho sobre jogos
Trabalho sobre jogosTrabalho sobre jogos
Trabalho sobre jogos
 
Estrutura plano aula_20140521204149(2)
Estrutura plano aula_20140521204149(2)Estrutura plano aula_20140521204149(2)
Estrutura plano aula_20140521204149(2)
 
Plano de Aula - Passa ou Repassa Histórico
Plano de Aula - Passa ou Repassa HistóricoPlano de Aula - Passa ou Repassa Histórico
Plano de Aula - Passa ou Repassa Histórico
 
Texto Introdutório - A elite ‘de boas’ na modernização das cidades.
Texto Introdutório - A elite ‘de boas’ na modernização das cidades.Texto Introdutório - A elite ‘de boas’ na modernização das cidades.
Texto Introdutório - A elite ‘de boas’ na modernização das cidades.
 
Plano de Aula - A modernização da República Velha
Plano de Aula - A modernização da República VelhaPlano de Aula - A modernização da República Velha
Plano de Aula - A modernização da República Velha
 
Texto Introdutório - Uma rebelião em 1904
Texto Introdutório - Uma rebelião em 1904Texto Introdutório - Uma rebelião em 1904
Texto Introdutório - Uma rebelião em 1904
 
Texto introdutório Características da República Velha
Texto introdutório   Características da República VelhaTexto introdutório   Características da República Velha
Texto introdutório Características da República Velha
 
Plano de Aula - Cápsula do Tempo Pibid
Plano de Aula - Cápsula do Tempo PibidPlano de Aula - Cápsula do Tempo Pibid
Plano de Aula - Cápsula do Tempo Pibid
 
Plano de Aula - Labirinto do Oswaldo
Plano de Aula - Labirinto do OswaldoPlano de Aula - Labirinto do Oswaldo
Plano de Aula - Labirinto do Oswaldo
 
Plano de Aula - Jogo de Damas: Coronelismo e Voto de Cabresto
Plano de Aula - Jogo de Damas: Coronelismo e Voto de CabrestoPlano de Aula - Jogo de Damas: Coronelismo e Voto de Cabresto
Plano de Aula - Jogo de Damas: Coronelismo e Voto de Cabresto
 
Plano de Aula - A República Velha e as Revoltas Sociais
Plano de Aula  - A República Velha e as Revoltas SociaisPlano de Aula  - A República Velha e as Revoltas Sociais
Plano de Aula - A República Velha e as Revoltas Sociais
 
Plano de aula - Questionário Pedagógico
Plano de aula - Questionário PedagógicoPlano de aula - Questionário Pedagógico
Plano de aula - Questionário Pedagógico
 
Questionário Pedagógico
Questionário PedagógicoQuestionário Pedagógico
Questionário Pedagógico
 
Plano de aula aprender em parceria 2
Plano de aula aprender em parceria 2Plano de aula aprender em parceria 2
Plano de aula aprender em parceria 2
 
Planos de Aula
Planos de Aula Planos de Aula
Planos de Aula
 

Ähnlich wie Jogo da Velha - Projeto de Aplicativo Casual

Jogo da velha em Inteligência Artificial usando processing
Jogo da velha em Inteligência Artificial usando processingJogo da velha em Inteligência Artificial usando processing
Jogo da velha em Inteligência Artificial usando processingNunes Fernando
 
Iron Wars - Game Bible
Iron Wars - Game BibleIron Wars - Game Bible
Iron Wars - Game BibleMichel Alves
 
Processo de desenvolvimento de Jogos.pdf
Processo de desenvolvimento de Jogos.pdfProcesso de desenvolvimento de Jogos.pdf
Processo de desenvolvimento de Jogos.pdfJean Marie Jhon
 
Análise do gameplay
Análise do gameplayAnálise do gameplay
Análise do gameplayediqueli
 
Análise do gameplay
Análise do gameplayAnálise do gameplay
Análise do gameplayediqueli
 
Diversão Séria: oficina de prototipação
Diversão Séria: oficina de prototipaçãoDiversão Séria: oficina de prototipação
Diversão Séria: oficina de prototipaçãoRafaela Vilela da Rocha
 
Criação de Jogos 2D com Técnicas 3D Utilizando Python e C
Criação de Jogos 2D com Técnicas 3D Utilizando Python e CCriação de Jogos 2D com Técnicas 3D Utilizando Python e C
Criação de Jogos 2D com Técnicas 3D Utilizando Python e CLeinylson Fontinele
 
Palestra Game Design
Palestra Game DesignPalestra Game Design
Palestra Game Designvincevader
 
Workshop Fischer
Workshop FischerWorkshop Fischer
Workshop Fischervincevader
 
Palestra - Introdução ao desenvolvimento de Jogos
Palestra - Introdução ao desenvolvimento de JogosPalestra - Introdução ao desenvolvimento de Jogos
Palestra - Introdução ao desenvolvimento de Jogosjuliocoopergames
 
Roteiro jogosdigitaisav2
Roteiro jogosdigitaisav2Roteiro jogosdigitaisav2
Roteiro jogosdigitaisav2Diego Moreau
 
Artigo inteligencia artifical-jogos
Artigo inteligencia artifical-jogosArtigo inteligencia artifical-jogos
Artigo inteligencia artifical-jogosFernando Vargas
 

Ähnlich wie Jogo da Velha - Projeto de Aplicativo Casual (20)

Inteligência Artificial em Jogos
Inteligência Artificial em JogosInteligência Artificial em Jogos
Inteligência Artificial em Jogos
 
Jogo da velha em Inteligência Artificial usando processing
Jogo da velha em Inteligência Artificial usando processingJogo da velha em Inteligência Artificial usando processing
Jogo da velha em Inteligência Artificial usando processing
 
Game programming
Game programmingGame programming
Game programming
 
Iron Wars - Game Bible
Iron Wars - Game BibleIron Wars - Game Bible
Iron Wars - Game Bible
 
Game programming
Game programmingGame programming
Game programming
 
Processo de desenvolvimento de Jogos.pdf
Processo de desenvolvimento de Jogos.pdfProcesso de desenvolvimento de Jogos.pdf
Processo de desenvolvimento de Jogos.pdf
 
Xtop Servers
Xtop ServersXtop Servers
Xtop Servers
 
Xtop Servers
Xtop ServersXtop Servers
Xtop Servers
 
Curso Dia 02
Curso Dia 02Curso Dia 02
Curso Dia 02
 
Análise do gameplay
Análise do gameplayAnálise do gameplay
Análise do gameplay
 
Análise do gameplay
Análise do gameplayAnálise do gameplay
Análise do gameplay
 
Diversão Séria: oficina de prototipação
Diversão Séria: oficina de prototipaçãoDiversão Séria: oficina de prototipação
Diversão Séria: oficina de prototipação
 
Criação de Jogos 2D com Técnicas 3D Utilizando Python e C
Criação de Jogos 2D com Técnicas 3D Utilizando Python e CCriação de Jogos 2D com Técnicas 3D Utilizando Python e C
Criação de Jogos 2D com Técnicas 3D Utilizando Python e C
 
Palestra Game Design
Palestra Game DesignPalestra Game Design
Palestra Game Design
 
Workshop Fischer
Workshop FischerWorkshop Fischer
Workshop Fischer
 
Palestra - Introdução ao desenvolvimento de Jogos
Palestra - Introdução ao desenvolvimento de JogosPalestra - Introdução ao desenvolvimento de Jogos
Palestra - Introdução ao desenvolvimento de Jogos
 
Roteiro jogosdigitaisav2
Roteiro jogosdigitaisav2Roteiro jogosdigitaisav2
Roteiro jogosdigitaisav2
 
Artigo inteligencia artifical-jogos
Artigo inteligencia artifical-jogosArtigo inteligencia artifical-jogos
Artigo inteligencia artifical-jogos
 
God of-war-ii
God of-war-iiGod of-war-ii
God of-war-ii
 
Jme Games
Jme GamesJme Games
Jme Games
 

Jogo da Velha - Projeto de Aplicativo Casual

  • 1. Pontifícia Universidade Católica do Paraná – Centro de Ciências Exatas e Tecnológicas Tutoria de Jogos 2006 – Primeiro Semestre Jogo da Velha Projeto Prof. Paulo V. W. Radtke 21 de Março de 2006
  • 2. 2 Índice 1 Introdução ................................................................................................................... 4 2 Descrição..................................................................................................................... 5 2.1 Objetivo............................................................................................................... 5 2.2 Público Alvo ....................................................................................................... 6 2.3 Regras e Jogabilidade ......................................................................................... 6 2.4 Controle............................................................................................................... 7 2.5 Aspecto Visual.................................................................................................... 8 2.6 Aspecto Sonoro................................................................................................... 9 3 Diagrama Funcional em Blocos................................................................................ 10 3.1 Diagrama Funcional Geral................................................................................ 10 3.2 Diagrama Funcional do Jogo ............................................................................ 11 3.2.1 Lógica do Jogador..................................................................................... 13 3.2.2 Lógica da Velha........................................................................................ 14 4 Levantamento de Recursos Áudio-Visuais............................................................... 16 4.1 Recursos do Módulo Jogo................................................................................. 16 5 Cronograma............................................................................................................... 18 5.1 Projeto............................................................................................................... 18 5.2 Interface Visual................................................................................................. 18 5.2.1 Tilemap do Cenário de Fundo................................................................... 18 5.2.2 Situação do Tabuleiro ............................................................................... 18 5.2.3 Animações da Velha ................................................................................. 19 5.3 Lógica do Jogo.................................................................................................. 19 5.3.1 Testa Critérios........................................................................................... 19 5.3.2 Lógica do Jogador..................................................................................... 19 5.3.3 Lógica da Velha........................................................................................ 19 5.3.4 Mostra Resultado ...................................................................................... 20 5.4 Menus de Navegação........................................................................................ 20 5.4.1 Menu Principal.......................................................................................... 20 5.4.2 Opções de Partida ..................................................................................... 20 5.4.3 Menu de Opções ....................................................................................... 20 5.4.4 Tela Inicial ................................................................................................ 21 5.4.5 Tela de Encerramento ............................................................................... 21 6 Conclusão.................................................................................................................. 22
  • 3. 3 Índice de Figuras Figura 1 - Tabuleiro do jogo da velha................................................................................. 6 Figura 2 - Situações de vitória 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 lógica do jogador........................................................ 14 Figura 7 - Diagrama funcional da lógica da velha............................................................ 14 Figura 8 - Exemplo de armadilha...................................................................................... 15
  • 4. 4 1 Introdução Este documento apresenta o projeto do “Jogo da Velha”, um jogo de raciocínio para um jogador desenvolvido como estudo de caso na atividade de Tutoria de Jogos na PUCPR, primeiro semestre de 2006. O jogo é desenvolvido em versões para sistema desktop (Windows PC, usando C e Allegro) e para celular usando J2ME. O documento é dividido em quatro seções primárias. A primeira apresenta a descrição do jogo, contendo as regras, público alvo, esboços da tela e demais aspectos relacionados ao jogo. A segunda etapa apresenta o diagrama em blocos das funcionalidades da aplicação, descrevendo em que cada um dos blocos é responsável. Já a terceira etapa realiza o levantamento dos recursos áudio-visuais necessários, dividida em duas sub-seções, uma para a versão desktop e outra para a versão celular. Finalmente a quarta seção apresenta o cronograma de atividades. Uma seção de conclusões encerra o documento com perspectivas do desenvolvimento.
  • 5. 5 2 Descrição O “Jogo da Velha” é um jogo de raciocínio para um jogador, projetado para versões em sistema desktop (PC Windows) e celulares. Esta seção descreve detalhadamente o jogo, sendo subdividida em cinco partes que descrevem o jogo e seus objetivos, o público 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 períodos de tempo. Baseado no jogo da velha tradicional, o “Jogo da Velha” oferece opções de dificuldade que permitem ao jogador escolher a dificuldade do jogo, opções de visualização personalizadas e uma abordagem humorística, representando o oponente artificial como uma senhora ranzinza que não perde a chance de fazer comentários sobre o jogador. Em contra-partida, a personalidade do oponente artificial também o torna um personagem tenso, de forma que boas jogadas por parte do jogador humano podem desencadear comentários nervosos por parte da senhora ranzinza que representa o oponente artificial. Desta maneira, o jogo possuirá três tipos de opções: • Opção de dificuldade: determina a possibilidade do oponente artificial fazer uma boa jogada. Quanto menor a dificuldade, mais fácil o oponente artificial erra. Quanto maior a dificuldade, menor a chance do oponente artificial errar. Para simular a falta de atenção dos seres humanos, o oponente artificial possui, mesmo na dificuldade mais elevada, a possibilidade de errar a jogada, o que pode permitir a vitória do oponente humano. • Opção de visualização (skin): determina a aparência visual durante a partida, baseada em um conjunto de elementos gráficos utilizados para criar a tela do jogo. O sistema é similar ao de skins utilizados por diversos reprodutores multimídia. Para a versão celular, o conjunto de skins será fixo, enquanto que para a versão desktop estuda-se a possibilidade de permitir ao jogador inserir novos padrões. • Opção de início de jogo: indica qual jogador irá iniciar a partida, sendo escolhido entre jogador humano, seu oponente artificial ou aleatório, quando a decisão é feita por sorteio. Destas opções, as duas primeiras são disponibilizadas em menu de opções do jogo, enquanto que a opção de início de jogo por conveniência é apresentada antes de se iniciar cada partida. A seção de aspecto visual irá demonstrar os menus decorrentes destas telas de opções.
  • 6. 6 2.2 Público Alvo O público alvo do “Jogo da Velha” consiste em jogadores do perfil casual, similar aos perfil dos jogadores do Paciência e Campo Minado, distribuídos com o sistema operacional Windows. Assim, espera-se que o jogador não passe períodos prolongados executando o jogo, porém este deverá se sentir compelido a voltar a jogá-lo eventualmente como em filas de banco (versão celular) ou em pausas para café durante as suas atividades do dia-a-dia (versão desktop). Como jogo de apelo universal, o “Jogo da Velha” encontra público em todas as faixas de idade, tanto homens como mulheres. 2.3 Regras e Jogabilidade O jogo da velha é jogado em turnos alternados entre dois jogadores, o jogador humano e o jogador artificial (o computador). O jogo passa-se num tabuleiro de 3x3 posições nas quais os jogadores fazem suas marcas em uma das posições durante as rodadas, como mostrado na Figura 1. O jogador que inicia a partida utiliza o símbolo “X”, enquanto que o segundo jogador utiliza o símbolo “O”. Figura 1 - Tabuleiro do jogo da velha. Cada jogador é livre para colocar uma marca em qualquer posição no seu turno, desde que a posição esteja vazia (sem marcas). Ao colocar uma marca no tabuleiro, a jogada passa para o próximo jogador, aonde o processo é repetido até que um dos jogadores vença, ou até o tabuleiro ser completamente preenchido, situação na qual ocorre empate. A vitória ocorre quando um jogador consegue colocar três símbolos em seqüência, seja em linha, coluna ou na diagonal principal do tabuleiro, de acordo com a Figura 2. O objetivo dos jogadores, então, é colocar três marcas numa das configurações válidas, enquanto evitam que o seu oponente consiga fazer as três marcas antes dele.
  • 7. 7 Figura 2 - Situações de vitória no jogo da velha. Assim, os critérios de avaliação final de uma partida para o jogador humano são as seguintes: • Vitória: o jogador humano consegue colocar as três marcas numa das configurações válidas do jogo. • Empate: o tabuleiro é completamente preenchido e nem o jogador humano, nem o oponente artificial, conseguem colocar as três marcas numa das configurações válidas. • Derrota: o oponente artificial consegue colocar as três marcas numa das configurações válidas. No decorrer da partida, o oponente artificial comenta a partida, de acordo com a situação. O comentário pode ser contra o jogador humano, caso o oponente artificial faça uma boa jogada, ou então criticando o jogador humano, caso este faça uma jogada que coloque o oponente artificial numa situação difícil. 2.4 Controle O controle do jogo depende da versão analisada. Para a versão desktop, será escolhido o controle via mouse, padrão em todos os sistemas operacionais de interface gráfica. Pela simplicidade do jogo, será utilizado apenas um botão, o esquerdo, seja para selecionar opções de menu ou para posicionar a marca sobre o tabuleiro. Desta forma, conversões para Mac OS X ficam facilitadas pela interface de botões 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 versão celular o controle será feito com o teclado, utilizando o direcional disponível nos diversos aparelhos. Apenas um botão será utilizado, visando simplificar o aspecto ergonômico de uso. O direcional é usado durante o jogo para escolher a posição no tabuleiro, enquanto que o botão é utilizado para marcar a posição pelo jogador. Os menus serão implementados usando menus tradicionais de J2ME.
  • 8. 8 2.5 Aspecto Visual O jogo, tanto na versão celular como na versão desktop, terá a aparência conforme exibido na Figura 3. O tabuleiro 3x3 é representado em destaque, com as marcações feitas por cada jogador, o cursor indicando a posição selecionada no momento, contador de tempo, indicação de quem é o turno e, caracterizando o oponente virtual, a “velha” que dá o duplo sentido ao título do jogo. Uma opção especial (“encerrar”) permite ao jogador anular a partida, voltando ao menu principal. No caso desta opção ser selecionada, uma caixa de diálogo confirma a ação pedida antes desta ser executada. Figura 3 - Aspecto visual do "Jogo da Velha". Além da tela de jogo, planejam-se quatro telas com menus de opções para o jogador: • Tela principal: oferece quatro opções para o jogador, (1) iniciar uma partida, (2) configurar opções, (3) visualizar os créditos e (4) encerrar o jogo. • Definição de quem começa o jogo: este menu é apresentado quando o jogador decide iniciar uma partida, apresentando três opções para iniciar o jogo, (1) o jogador humano começa a partida, (2) a “velha” começa o jogo e (3) a escolha é feita aleatoriamente. • Opções: esta tela apresenta as opções de dificuldade (fácil, normal ou difícil) e a esolha do skin (padrão ou outros). • Tela de créditos: mostra os créditos de desenvolvimento, permitindo ao jogador voltar ao menu principal. X X Tempo: 55s Turno: velha Encerrar
  • 9. 9 2.6 Aspecto Sonoro O jogo possuirá músicas e efeitos sonoros na versão desktop. Já para a versão celular este suporte não será implementado, visando independência de plataformas. Entre os efeitos sonoros da versão desktop, serão utilizadas vozes digitalizadas para simular um monólogo ácido entre o jogador humano e seu oponente artificial. Pelo tamanho dos arquivos gerados, os efeitos sonoros serão utilizados no formato Microsoft wave (.WAV), com taxa de amostragem de 44kHz, resolução de 16 bits e formato mono-aural. Possíveis efeitos posicionais em estéreo serão efetuados utilizando código. Para a edição dos efeitos sonoros, será utilizado o editor gratuito Audacity. Para as músicas, será utilizado o formato MIDI (suporte padrão do Allegro), devido ao tamanho reduzido e por não necessitar da instalação de bibliotecas extra. Os editores escolhidos para editar o formato MIDI são o Jazz MIDI Sequencer e o Anvil Studio, ambos gratuitos.
  • 10. 10 3 Diagrama Funcional em Blocos Esta seção detalha as funcionalidades do “Jogo da Velha”, apresentadas como um diagrama em blocos. Cada funcionalidade é descrita e, quando necessário, uma funcionalidade é descrita em funcionalidades menores para maior clareza no momento da implementação. Assim, o objetivo desta seção é servir como um guia para a implementação do “Jogo da Velha”. 3.1 Diagrama Funcional Geral As funcionalidades no nível superior do jogo são apresentadas na Figura 4, demonstrando a funcionalidade do jogo no nível mais alto da navegação do usuário. Após uma tela de apresentação, o jogador é levado para o menu principal, aonde ele pode escolher entre modificar as opções do jogo, iniciar uma partida ou encerrar o aplicativo. Um conjunto de variáveis de configurações é acessível tanto pela tela de opções e pelo módulo do jogo. Figura 4 - Diagrama geral das funcionalidades do "Jogo da Velha". As funcionalidades de cada bloco são 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 botão do mouse (versão desktop). Tela Inicial Menu Principal Menu Opções Jogo Início Tela de Encerramento Fim Opção da partida Configurações
  • 11. 11 • Menu Principal: Nesta tela o jogador escolhe uma ação entre três opções possíveis. A ação mais simples leva ao encerramento do jogo. Outra possibilidade é passar para o menu de opções, sendo que a terceira e última inicia uma nova partida. • Opções de Partida: define quem vai iniciar o jogo, o computador ou o jogador. A escolha é feita pelo jogador em três opções, indicando explicitamente quem inicia (jogador ou computador), ou implicitamente, através de um sorteio aleatório realizado pelo computador. • Jogo: a funcionalidade principal, composta pela interface visual da partida e pela lógica do jogo. Esta funcionalidade é apresentada em detalhes na Seção 3.2 devido à sua complexidade. 3.2 Diagrama Funcional do Jogo Por ser o bloco principal da aplicação (jogo), este bloco é o mais complexo. Para o seu funcionamento, algumas variáveis são utilizadas para representar o estado do jogo e opções escolhidas. As variáveis são as seguintes: • cenario: tilemap referente à imagem de fundo do jogo. Contém o fundo, o tabuleiro do jogo e demais informações estáticas. • imagem_cenario: tileset utilizado em conjunto com o tilemap cenario. A imagem utilizada varia de acordo com o skin selecionado. • sprites: sprites utilizados pelo jogo. Incluem as marcas dos jogadores, cursor no tabuleiro e do mouse (versão desktop) e as animações da velha. • skin* : indica qual skin deve ser utilizado pelo jogo, determinando, assim, o valor de imagem_cenario. • dificuldade* : variável que, como o nome indica, define a dificuldade da partida. O valor da mesma varia entre 0 e 100, quanto menor o valor maiores as chances do jogador vencer a partida. • vez: variável booleana que indica quem deve jogar no turno. Verdadeiro para o jogador e falso para o computador. • tabuleiro: matriz que representa o tabuleiro 3x3 do jogo. Cada posição pode possuir um de três valores possíveis: VAZIO, JOGADOR, VELHA. Tais valores indicam se a posição possui uma marca e de quem é a marca. • x,y, botao: coordenadas para indicar a posição do mouse/cursor e se o botão foi pressionado para o posicionamento de uma marca no cenário. • estado: variável que indica um dos possíveis estados do jogo, baseado em constantes. Para partida em andamento, utiliza-se EM_ANDAMENTO, para partida empatada EMPATADA, para vitória do jogador VITORIA e no caso de derrota, utiliza-se DERROTA. Se o jogador decidir em qualquer momento abortar a partida, a variável deve assumir o valor ABANDONADA. • musica: variável que contém o midi da música reproduzida durante a partida.
  • 12. 12 • efeitos: matriz que contém os efeitos sonoros do jogo. Incluem-se efeitos de posicionamento de peças no tabuleiro e as vozes da velha. Esta variável não existe na versão celular. • animacao: indica a animação em andamento da velha, pode assumir os valores NORMAL, IRONICA e DESESPERADA. • tempoAnimacao: indica a contagem de tempo na animação da velha para realizar a troca de quadros. • tempo: variável utilizada para controlar a passagem do tempo no jogo. *: indica variável de configuração selecionada no menu de opções. O diagrama em blocos do jogo é representado na Figura 5. Basicamente, uma repetição durante o andamento completo da partida. Cada bloco é descrito na seqüência em maiores detalhes, sendo que a lógica do jogador e a lógica da velha são descritos em detalhes nas seções 3.2.1 e 3.2.2, respectivamente. Figura 5 - Diagrama funcional do jogo. Os demais blocos possuem as funcionalidades como descritos a seguir: • Prepara Variáveis: responsável por iniciar o valor das variáveis relevantes: o estado: EM_ANDAMENTO o tabuleiro: todas as posições com VAZIO. o musica: carrega a midi do disco. o efeitos: carrega os efeitos sonoros do disco. o sprites: carrega os sprites do jogo. Prepara variáveis Desenha Tela Lê Entrada Lógica do Jogador Lógica da Velha Testa Critérios Mostra Resultado Início vez V F Fim estado EM_ANDAMENTO
  • 13. 13 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 Opções de Partida. • Desenha Tela: Primeiramente, esta funcionalidade desenha o tilemap com o cenário, para em seguida desenhar as marcas, cursor, tempo passado da partida e, por fim, a animação da velha. Esta funcionalidade atualiza os valores das variáveis tempo, tempoAnimacao e animação. O controle de tempo é feito no início 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 variáveis x, y e botao. Caso o jogador selecione a opção 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 Lógica do Jogador e Lógica da Velha de acordo com o valor da variável vez. • Testa Critérios: verifica o tabuleiro para determinar se a partida encerrou e, caso positivo, se houve vencedor. A indicação é feita através da variável estado. Caso o jogador decida encerrar a partida (estado=ABANDONADA) a funcionalidade ignora o tabuleiro e mantém 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 repetição para a funcionalidade Desenha Tela. Caso contrário, a partida é encerrada. • Mostra Resultado: mostra o resultado da partida, exceto quando a partida é abandonada pelo jogador. Além disto, a funcionalidade é responsável por eliminar da memória algumas variáveis alocadas: o musica: descarrega a midi da memória. o efeitos: descarrega os efeitos sonoros da memória. o sprites: descarrega os sprites da memória. o imagem_cenario: descarrega a imagem da skin. 3.2.1 Lógica do Jogador Esta funcionalidade realiza a lógica do turno do jogador, sendo detalhada pela Figura 6. Inicialmente, as coordenadas do mouse/cursor são convertidas para coordenadas do tabuleiro (nota: na versão celular, a conversão é desnecessária). Uma vez convertidas as coordenadas para tabuleiro, a lógica testa se o botão foi pressionado. Se não tiver sido pressionado (ou a posição no tabuleiro for inválida na versão desktop), a funcionalidade encerra-se. Caso contrário, o jogo verifica se a posição é vazia ou não. Caso seja vazia, uma marca é feita no tabuleiro na posição selecionada e a variável vez é atualizada para passar o controle para a velha. Caso a posição selecionada não seja vazia, a funcionalidade encerra, esperando a próxima iteração.
  • 14. 14 Figura 6 - Diagrama funcional da lógica do jogador. 3.2.2 Lógica da Velha A lógica da velha é descrita pela Figura 7. Inicialmente a velha simula o tempo utilizado para pensar, de forma que o jogador não seja forçado a jogar consecutivamente contra um adversário que reage extremamente rápido. Como a simulação deve ser feita dentro da repetição da lógica do jogo, uma variável é utilizada para acumular o tempo passado. Em seguida, este tempo é testado para verificar se a jogada pode ser feita ou não. Caso não tenha passado o tempo, a funcionalidade encerra. Figura 7 - Diagrama funcional da lógica da velha. Caso contrário, o jogo passa para a etapa da jogada efetiva. A escolha da posição é feita de acordo com as seguintes regras, utilizadas exatamente neste ordem: 1. Se há uma posição que dê a vitória em um turno, a velha joga nesta posição para encerrar a partida. Simula Jogada Muda tabuleiro Troca a vezEncerra Início Joga Fim F V Escolhe posição Converte Coordenadas Muda tabuleiro Troca a vezEncerra Início botão Fim Vazio F V F V
  • 15. 15 2. Se o jogador está em condições de vitória eminente (isto é, colocou duas marcas simultâneas), a velha bloqueia a vitória do jogador, colocando uma marca na posição que daria a vitória ao jogador humano. 3. Se é possível colocar uma marca numa posição que crie uma armadilha, a velha escolhe esta posição. Uma armadilha é exemplificada na Figura 8, aonde a criação de uma marca na posição indicada cria a oportunidade de vitória garantida no próximo turno, independente da posição escolhida pelo oponente. 4. Cria uma marca na posição central se esta estiver disponível. 5. Cria uma marca em um dos cantos, preferencialmente alinhada com outras marcas em potencial. 6. Cria uma marca em uma posição intermediária das laterais, novamente procurando alinhar com outras marcas em potencial. Figura 8 - Exemplo de armadilha. Uma vez que a velha escolha a posição, esta é alterada no tabuleiro e a variável 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 situação. Desta forma, quanto menor a probabilidade da velha fazer uma jogada seguindo as regras, mais fácil fica o jogo e, quanto maior a probabilidade da velha fazer uma boa jogada, mais difícil ele fica. A variável dificuldade do jogo varia de 0 a 100, porém 0% de chance é um valor inadequado (já que o jogador não será desafiado) e 100% idem, já que o jogador não conta com o fator distração do oponente. Para balancear os dois aspectos, o jogo utiliza a Equação 1 para determinar a probabilidade pj da velha realizar uma boa jogada. Desta forma, a velha terá no mínimo 50% de chances de fazer uma boa jogada, com o máximo de 95% de chances de fazer uma jogada boa para simular o fator distração. ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ ×+= 100 45.05.0 edificuldad pj Equação 1 - Probabilidade da velha fazer uma boa jogada. Marca nova
  • 16. 16 4 Levantamento de Recursos Áudio-Visuais Esta seção detalha os recursos gráficos e de áudio utilizados pelo “Jogo da Velha” (obs: áudio será utilizado apenas na versão desktop). Os recursos áudio-visuais são descritos em seções relacionadas às funcionalidades gerais do jogo, como detalhado na Figura 4. Tal divisão é proposta por permitir uma divisão natural dos recursos utilizados relacionados à implementação de funcionalidades macro do jogo. Assim, os mesmos podem ser desenvolvidos à medida que são necessários, permitindo também o enfoque inicial nos recursos específicos utilizados durante a partida. Inicialmente serão demonstrados os recursos utilizados no módulo do jogo, sendo que os recursos dos módulos restantes serão adicionados nas próximas interações do projeto. 4.1 Recursos do Módulo Jogo Os recursos gráficos a serem utilizados são os seguintes: 1. cenário: tileset com blocos 32x32 (desktop) ou 8x8 (celular) para compor o cenário de fundo. Serão criadas diversas imagens para o mesmo tilemap, fornecendo assim o recurso de skins. 2. sprites: imagens para desenhar os elementos do jogos, de tamanho 32x32. Imagens maiores são obtidas utilizando-se vários sprites para compô-las. As imagens necessárias estão de acordo com a lista abaixo: a. Marca X: marca de jogador, 64x64 na versão desktop e 16x16 na versão celular. b. Marca O: marca de jogador, 64x64 na versão desktop e 16x16 na versão celular. c. Cursor: indica a posição seleccionada no tabuleiro, 64x64 na versão desktop e 16x16 na versão celular. d. Animação da Velha normal: imagem da velha durante a partida, com cara ranzinza e piscando os olhos de tempo em tempo. Assim, são necessárias duas imagens, uma com a velha tendo os olhos abertos e outra com eles fechados. O tamanho será 128x128 na versão desktop e 48x48 na versão celular. e. Animação da Velha irônica: imagem da velha quando esta faz uma boa jogada, com cara irônica. Serão utilizadas três imagens para animar a boca da velha entre aberta, meio aberta e fechada. O tamanho será 128x128 na versão desktop e 48x48 na versão celular. f. Animação da Velha desesperada: imagem da velha quando o jogador faz uma boa jogada, com cara de desespero. Serão utilizadas três imagens para animar a boca da velha entre aberta, meio aberta e fechada. O tamanho será 128x128 na versão desktop e 48x48 na versão celular.
  • 17. 17 3. Cursor do mouse: sprite utilizado para substituir o cursor do mouse do sistema na versão dektop. Tamanho 32x32. 4. tilemap do cenário: tilemap indicando o desenho do cenário de fundo. Por sua vez, os recursos de áudio são apresentados abaixo, valendo lembrar que estes serão utilizados apenas na versão desktop e que na versão celular o jogo irá prosseguir em silêncio devido à variação de bibliotecas JAVA entre os diversos aparelhos. 1. Música: música 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 posição incorreta. c. Virória: 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, serão utilizados três 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, serão utilizados três efeitos de voz, escolhidos aleatoriamente durante as partidas.
  • 18. 18 5 Cronograma Esta última seção 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 específico do “Jogo da Velha” não ocorrerão 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 período de tempo. 5.1 Projeto Data de início: 03/2006 Data de encerramento: 04/04/2006 Responsável: Paulo V. W. Radtke Nesta etapa será proposto o jogo da velha, descrevendo a lógica do jogo, suas funcionalidades e recursos gráficos necessários para a sua implementação. 5.2 Interface Visual Esta etapa será implementada em três tarefas separadas, que são utilizadas para mostrar visualmente o estado do jogo para o jogador. 5.2.1 Tilemap do Cenário de Fundo Data de início: 24/04/2006 Data de encerramento: 13/05/2006 Responsável: Paulo V. W. Radtke Será implementado nesta etapa o código necessário para visualizar o tilemap do cenário de fundo do “Jogo da Velha”, além da opção para encerrar a partida do jogador. Tal opção será utilizada para encerrar o “Jogo da Velha” uma vez este seja iniciado. 5.2.2 Situação do Tabuleiro Data de início: 15/05/2006 Data de encerramento: 02/06/2006 Responsável: Paulo V. W. Radtke Esta atividade implementa o código necessário para visualizar a situação do tabuleiro, mostrando as marcas dos jogadores, a posição selecionada e o cursor do mouse (versão desktop).
  • 19. 19 5.2.3 Animações da Velha Data de início: 04/06/2006 Data de encerramento: 16/06/2006 Responsável: Paulo V. W. Radtke Esta última atividade relacionada à interface visual do jogo implementa o código necessário para desenhar a animação da velha, baseada no tipo da animação da velha e o tempo passado desta. 5.3 Lógica do Jogo Nesta etapa serão implementadas as funcionalidades lógicas do jogo, sendo possível no final dela realizar partidas completas. 5.3.1 Testa Critérios Data de início: 31/07/2007 Data de encerramento: 12/08/2006 Responsável: Paulo V. W. Radtke Esta etapa foi escolhida para iniciar a implementação por ser ela quem determina quando a partida encerra. Nesta funcionalidade será verificado o estado do tabuleiro para indicar se a partida encerrou porquê houve um vencedor ou porquê o tabuleiro está cheio. 5.3.2 Lógica do Jogador Data de início: 14/08/2006 Data de encerramento: 26/08/2006 Responsável: Paulo V. W. Radtke Esta etapa utilizará a interface do sistema (mouse ou teclado do celular) para mover o cursor no tabuleiro e fazer uma marca do jogador humano no tabuleiro. 5.3.3 Lógica da Velha Data de início: 28/08/2006 Data de encerramento: 09/09/2006 Responsável: Paulo V. W. Radtke Complementar à funcionalidade do jogador, a lógica responsável pela inteligência artificial do jogo, baseada em regas, será implementada nesta etapa. A partir deste ponto, será possível jogar contra o sistema.
  • 20. 20 5.3.4 Mostra Resultado Data de início: 11/09/2006 Data de encerramento: 20/09/2006 Responsável: Paulo V. W. Radtke Esta funcionalidade será responsável por mostrar quem ganhou a partida, indicando assim diretamente o que pode ser interpretado visualmente no tabuleiro do jogo. 5.4 Menus de Navegação A etapa final consiste na implementação dos menus de navegação do jogo, encerrando assim o desenvolvimento do “Jogo da Velha”. 5.4.1 Menu Principal Data de início: 02/10/2006 Data de encerramento: 07/10/2006 Responsável: Paulo V. W. Radtke Etapa que implementa o menu inicial, dando opções ao jogador de mudar as opções, iniciar uma partida ou encerrar o jogo. Esta funcionalidade foi escolhida como a primeira ser implementada por ser a centralizadora das as opções disponibilizadas ao jogador. 5.4.2 Opções de Partida Data de início: 09/10/2006 Data de encerramento: 16/10/2006 Responsável: Paulo V. W. Radtke Menu simples que fornece ao jogador um mecanismo simples para indicar de quem será o primeiro turno da partida (jogador ou da velha). 5.4.3 Menu de Opções Data de início: 18/10/2006 Data de encerramento: 04/11/2006 Responsável: Paulo V. W. Radtke Este menu é responsável por mudanças nas opções de partida do “Jogo da Velha”. Duas opções são previstas nesta tela, dificuldade do jogo, skin para desenhar o cenário de fundo e voltar ao menu principal.
  • 21. 21 5.4.4 Tela Inicial Data de início: 06/11/2006 Data de encerramento: 11/11/2006 Responsável: Paulo V. W. Radtke Nesta opção será exibida uma tela da equipe de desenvolvimento do jogo. A exibição é temporizada, prosseguindo automaticamente para o menu principal. 5.4.5 Tela de Encerramento Data de início: 13/11/2006 Data de encerramento: 18/11/2006 Responsável: Paulo V. W. Radtke Nesta opção será exibida uma tela do jogo se despedindo do jogador, convidando- para jogar novamente mais tarde.
  • 22. 22 6 Conclusão 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 implementação. A previsão é que a primeira versão funcional fique pronta para a feira de cursos da PUCPR em Outubro de 2006, com a expectativa da versão final em Novembro de 2006.