Você está na página 1de 7

Jogo desenvolvido utilizando-se o software Processing: Snakermes

Arthur Ragusa Guimarães


Simone Natal Andreato

Universidade Estadual de Campinas

Introdução

Somos estudantes do primeiro semestre do curso de “Comunicação Social – Habilitação em


Midialogia” da UNICAMP e sob a proposta do desenvolvimento de um jogo a partir do software
Processing feita pela disciplina “Elementos Fundamentais de Matemática” resolvemos elaborar
um código que possibilite a programação de um jogo tradicional e popularmente conhecido como
“Jogo da Cobrinha”.
A escolha foi feita devido ao fato de se tratar de um jogo popular, jogado principalmente
através de aparelhos celulares, mas que é aberto no sentido em que possibilita inúmeras versões e
variantes. Dessa forma, ao mesmo tempo em que pode ser infinitamente modificado, é um jogo
que, por ser muito difundido, a maioria das pessoas sabe jogar e gosta. Além disso, curiosamente
são encontradas na web poucas versões desse jogo nas quais o Processing foi utilizado.
Trata-se de um jogo em que o jogador controla uma criatura longilínea (semelhante a uma
cobra ou minhoca), em quatro direções possíveis (esquerda, direita, cima e baixo) para recolher
ou comer um objeto na tela semelhante a algum tipo de comida (uma maçã, um rato, etc.). O
visual mais “clássico” do jogo apresenta tanto a criatura quanto os alimentos apenas como pixels,
ou quadradinhos, na tela, sem qualquer tipo de elaboração estética adicional. Hoje, através de
uma simples pesquisa utilizando ferramentas de busca como o Google, é possível encontrar
inúmeras versões do jogo (BACANINHA.COM, 2010), algumas deveras complexas visualmente
e com diferentes opções de jogabilidade.
Existem certas regras quanto ao movimento da criatura, que a partir daqui será chamada
apenas de cobra. Como explicado anteriormente, ela se move em quatro direções distintas –
esquerda, direita, cima e baixo – e o faz de acordo com o comando dado pelo jogador através de
teclas que representam respectivamente as direções. Esse comando é dado simplesmente por se
pressionar e soltar a tecla, não havendo necessidade de mantê-la pressionada. Uma vez escolhida
a direção, a cabeça da cobra começa a deslocar-se na mesma e os demais segmentos de seu corpo
a seguem, ocupando sempre a mesma posição ocupada por ela anteriormente.
Existem também regras que restringem o movimento da cobra. A cabeça não pode tocar
qualquer outro pedaço do corpo. O cenário pode apresentar obstáculos, às vezes complexos, às
vezes limitando-se apenas à moldura do plano onde a cobra se desloca.
Quanto ao objeto que representa um alimento, a partir daqui referido apenas como comida,
esta surge aparentemente de forma aleatória no cenário e, uma vez que a cobra a tenha comido,
ou seja, sua cabeça tenha passado por cima dela, ela desaparece do cenário. Quando isso ocorre, a
cobra aumenta de tamanho em um pixel.
Finalmente, o número de pontos depende de quantas comidas o jogador consegue fazer com
que a cobra coma antes de atingir algum obstáculo do cenário (se for o caso de haver obstáculos)
ou tocar seu próprio corpo. Uma vez que isso ocorra, o jogo se encerra, iniciando-se uma nova
partida.

1
Para o desenvolvimento de nossa versão, nos baseamos no código-fonte de um jogo
encontrado na web (PROCESSING, 2010). Todavia, essa versão apresenta inúmeros problemas,
visto que muitas vezes após um tempo a cobra não consegue mais pegar a comida e o jogo não
tem fim devido ao fato de a cobra nunca morrer (nem quando toca seu próprio corpo). O jogo não
contém contagem de pontos, escolha de nível e tela final (já que não tem fim). Além disso, o jogo
é exageradamente simplório visualmente, tanto quanto à tela inicial como quanto à tela que
contém a cobra.
Nossa proposta era desenvolver um jogo semelhante ao “Jogo da Cobrinha” mais
tradicional, ou seja, com um plano de movimentação delimitado por uma moldura com a qual a
cobra morreria se colidisse. O jogo também terminaria quando a cobra tocasse seu próprio corpo.
O objeto representativo da comida seria sempre o mesmo e apareceria de maneira aleatória (na
verdade, pseudo-aleatória) no cenário.
Para isso, alteraríamos o código do jogo citado em muitos pontos, extinguindo seus
problemas, além de darmos um pouco mais de elaboração estética ao jogo, tornando-o mais
agradável e divertido para o jogador. Pretendíamos acrescentar a opção de escolha de nível (com
diferentes velocidades em cada um), um sistema de contagem de pontos (bem como o respectivo
contador na tela), uma tela inicial mais bem elaborada e uma tela final. Planejávamos também
alterar o desenho da cobra e da comida e as cores de todo o jogo.
Como o público alvo é o pessoal do curso de Comunicação Social – Habilitação em
Midialogia de 2010 (além dos professores Hermes e Valente), pensamos que poderia ser
interessante se o jogador pudesse escolher o desenho que iria compor a comida, nesse caso,
colocando seu próprio rosto no lugar da mesma. Para tanto, seria necessário apenas uma
fotografia do rosto de cada um dos alunos. Pretendíamos também utilizar a imagem dos
professores, Hermes e Valente, para compor o jogo de alguma forma, talvez nas telas inicial e
final ou com seus rostos substituindo o desenho da cabeça da cobra.

Desenvolvimento do jogo

população envolvida no desenvolvimento do jogo: Arthur Ragusa Guimarães, Simone Natal


Andreato, os professores da disciplina Hermes Hildebrand e José Armando Valente e o colega de
sala Vitor Machado Rocha.
população-alvo do jogo: Pode usufruir do jogo qualquer pessoa que conheça e utilize o software
Processing, mas principalmente os alunos do primeiro semestre do curso de Comunicação Social
– Habilitação em Midialogia da UNICAMP e os professores Hermes e Valente, que têm
conhecimento de que o jogo foi desenvolvido.

Para a criação da tela inicial, utilizamos o software Tux Paint para fazer o fundo e, após
obtermos uma imagem do professor Hermes em um site da web (UNICAMP.BR, 2010) e o
desenho de uma cobra em outro (BLOG DO LIGEIRINHO, 2010) os recortamos e utilizamos o
software Paint para fazer uma montagem em que a cabeça da cobra foi substituída pelo rosto de
Hermes; o texto presente na tela (com o nome do jogo e a instrução para se ir para a segunda tela)
também foi escrito através do Paint.
O fundo da segunda tela também foi construído no Tux Paint, bem como o texto presente
na mesma, que contém os objetivos do jogo e as instruções para jogá-lo e para a escolha do nível,
que também leva para a tela em que o jogo realmente se inicia.

2
Para a criação da tela final, buscamos uma imagem do professor Valente (COSMO.UOL,
2010) mostrando um notebook em cuja tela foi escrita uma frase indicando o fim do jogo,
utilizando-se o Paint. Obtivemos também uma figura do personagem Geleia do desenho Caça-
Fantasmas (PASTELDEVENTO.ORG, 2010) e de um vidro de geleia
(AMAZEMBRASILEIRO.ORG.BR, 2010) e as inserimos, com o auxílio do Paint, na fotografia
de Valente. A escolha da figura do personagem “Geleia” e de um vidro do doce “geleia”, bem
como a inserção da palavra na frase contida no notebook, foi feita devido a uma referência ao
termo que o professor Valente utiliza para se referir aos trabalhos de alguns alunos quando eles
estão mal organizados. Também acrescentamos a figura montada para a tela inicial. Utilizando o
mesmo software, escrevemos o texto que fornecia a instrução para que o jogo se iniciasse
novamente.

As cores utilizadas nas diferentes telas do jogo (preto, vermelho e verde, majoritariamente)
foram escolhidas por remeterem a cores de cobras.

O nome do jogo (Snakermes) foi escolhido por significar uma junção da palavra snake (que
representa a palavra “cobra” na língua inglesa) com o nome de um dos professores da disciplina
(Hermes).

Conteúdo de matemática identificado

Os conteúdos de matemática que podemos encontrar ao longo do código do jogo são os


mesmos abordados ao longo da disciplina.
Assim, temos o uso de funções, como por exemplo aquela em que o valor retornado é uma
coordenada do pixel "em movimento" da cabeça da cobra e, através de uma variável do tipo
color, é realizada a comparação com a cor do pixel da "comida" ou dos próprios componentes da
cobra. Podemos observar o uso de variáveis construídas dessa forma ao longo de todo o código,
para as mais diversas funções. Algumas delas são de caráter apenas booleano, ou seja, retornam
um valor verdadeiro ou falso e através deste é realizada uma comparação que mantém o jogo em
um estado determinado, como por exemplo, a tela de fim de jogo aguardando o reinício por parte
do jogador.
Além do uso de variáveis que determinam estados e funções que retornam resultados
específicos para manutenção ou mudança desses mesmos estados, o próprio jogo só pode ser
desenvolvido levando-se em conta o plano cartesiano de onde se extrai todo o material numérico
para construção das posições e alterações que se refletem visualmente no jogo.
O conhecimento de lógica fornecido ao longo do curso também foi fundamental para
entender as condicionais utilizadas no código original e altera-las de acordo com nosso interesse.
Assim, observamos, por exemplo, que o comando "case" é uma versão muito sofisticada de um
if, sem a necessidade de tantos comandos e redundâncias.

Discussão sobre os fatores negativos e positivos que interferiram no


desenvolvimento do jogo

Pontos negativos

3
Podemos citar como ponto negativo termos planejado inserir no jogo alguns quesitos e
depois termos abandonado essas idéias por concluirmos que os resultados não compensariam a
dificuldade e/ou o trabalho que a ação exigia ou simplesmente por considerá-los desnecessários.
Inicialmente, pretendíamos acrescentar no jogo a opção de o jogador poder escolher a
imagem que iria compor a comida, colocando seu próprio rosto no lugar da mesma, no caso de
ser um dos alunos do curso de Midialogia do primeiro semestre. Também planejávamos utilizar o
rosto dos professores Hermes e Valente para substituírem a cabeça da cobra. Ambas as ideias
foram abandonadas em vista da dificuldade e do trabalho necessário para colocá-las em prática,
os quais não compensariam pelo fato de que nos dois casos ficaria difícil a identificação ou
mesmo a visualização do rosto (de um aluno ou professor) utilizado, já que apareceriam em
tamanho extremamente pequeno.
Também planejávamos que a cobra, ao tocar na moldura da tela, ou seja, na “parede” do
cenário, morresse, o que acabamos não fazendo por termos considerado que o jogo será muito
dificultado para o jogador se isso ocorresse.
Outra dificuldade que tivemos foi que, após termos acrescentado a opção da escolha de
nível e termos definido a velocidade de cada um deles, fizemos outras modificações no jogo,
como dividi-lo em abas. Após isso, ficava impossível perceber a diferença de velocidade entre os
níveis, mesmo quando modificávamos a mesma e ela se tornava absurdamente grande. Como
analisávamos o código e identificávamos que o mesmo estava correto, tivemos grande
dificuldade em encontrar a causa do problema. Somente após um tempo, com a ajuda de nosso
colega de sala, Vitor, foi que conseguimos perceber que as velocidades de cada nível não se
diferenciavam porque o comando que “chama” as imagens utilizadas nas telas inicial e final e na
segunda tela se encontrava em um local, ou melhor, uma aba, que fazia com que as mesmas
fossem carregadas várias vezes, o que provocava a diminuição da velocidade de todo o jogo e
tornava imperceptível a diferença de velocidade entre os três níveis. Então, após alterarmos o
local em que estava o comando a partir do qual a imagem era “chamada”, extinguimos o
problema e a diferença entre os níveis se tornou perceptível.

Pontos positivos
De maneira geral, não tivemos muita dificuldade em entender e modificar o código-fonte
que utilizamos, bem como em acrescentar itens, apesar de termos aproveitado poucos itens do
jogo original.
Não encontramos grandes dificuldades ao identificarmos os erros do código-fonte original e
consertá-los. Não foi difícil acrescentarmos a opção de escolha de nível, criarmos um sistema de
contagem de pontos e fazermos o contador aparecer na tela e modificarmos as cores do jogo
original e o tamanho das elipses que representavam a cobra e a comida.
Por termos dividido todo o código do jogo em abas, o jogo foi mais bem organizado e a
visualização do código privilegiada.
Apesar de ter nos gerado um pouco de trabalho, também não encontramos problemas em
criar uma tela inicial e uma final (com montagens feitas utilizando-se os rostos dos professores) e
uma segunda tela com instruções e objetivos do jogo, a qual inicialmente não havíamos
planejado, assim como acrescentar essas telas ao jogo.
Algo que também não havíamos planejado, mas que posteriormente resolvemos fazer e que,
além de ter sido interessante, não foi difícil, foi fazer com que, após o jogador pressionar uma
tecla, o jogo se iniciasse novamente, ou melhor, voltasse para a tela inicial.

4
Houve também a necessidade fundamental de modificarmos o jogo para que o mesmo
tivesse fim quando a cobra tocasse seu próprio corpo, algo que, apesar de ter sido trabalhoso,
conseguimos realizar sem problemas.
Apesar de o jogo que utilizamos como base estar incompleto, apresentar muitos erros e ter
necessitado de inúmeras alterações, ele nos ajudou bastante na medida em que não precisamos
criar códigos para a movimentação da cobra e para o surgimento pseudo-aleatório e a captura da
comida, tendo havido a necessidade de apenas consertarmos este último.
Como principal ponto positivo podemos citar que, com o desenvolvimento do jogo,
aprimoramos a nossa experiência com o software Processing e principalmente o nosso
conhecimento de Matemática, visto que o programa citado exige que o usuário se utilize de
conceitos matemáticos para ter sucesso em seu trabalho.

Conclusão

De modo geral, não encontramos grandes problemas ao desenvolvermos o jogo. Por isso, a
maioria dos objetivos que inicialmente havíamos proposto foram alcançados. Apesar de termos
abandonado algumas ideias que pretendíamos adotar, outras não planejadas foram colocadas em
prática.
Alcançamos nosso objetivo principal de desenvolver um jogo semelhante ao “Jogo da
Cobrinha” mais tradicional, em que a cobra deveria morrer caso sua cabeça tocasse em seu corpo.
Todavia, abandonamos a ideia de a cobra morrer caso colidisse com a moldura do plano pelo qual
se movimentasse.
Apesar de não termos utilizado as imagens dos alunos do curso do primeiro semestre de
Midialogia e dos professores para substituírem, respectivamente, a comida e a cabeça da cobra,
alcançamos o objetivo inicial de darmos um pouco mais de elaboração estética ao jogo-base,
tornando-o mais agradável e divertido para o jogador. Isso foi desenvolvido ao criarmos uma tela
inicial, uma final e uma segunda tela atraentes visualmente, além de a primeira conter uma
montagem com o rosto do professor Hermes substituindo a cabeça da cobra e a terceira uma
montagem feita com a fotografia do professor Valente. Além disso, a segunda tela, que não havia
sido planejada inicialmente, além de ser visualmente atraente, também auxilia o jogador na
medida em que fornece informações sobre o objetivo do jogo e instruções para o mesmo.
Algo que também não planejávamos, mas que foi necessário fazer, não gerando grandes
dificuldades, foi dar ao jogador a opção de voltar, após o jogo ser encerrado, à tela inicial e
iniciar uma nova partida.
Apesar da dificuldade para fazer com que as velocidades dos três níveis fossem
diferenciadas, no fim conseguimos, com o auxílio de nosso colega de sala, Vitor, encontrar a
causa do problema e alcançamos mais um dos nossos objetivos iniciais, que era acrescentar a
opção de escolha de nível no jogo, o que só seria definido a partir da velocidade de
movimentação da cobra.
Também tivemos sucesso ao analisarmos o código-fonte que utilizamos e ao encontrarmos
todos os seus problemas, extinguindo-os em seguida.
Dentre os principais objetivos alcançados, podemos citar também a criação de um sistema
de contagem de pontos, a inserção do respectivo contador na tela em que a cobra se movimenta e
a alteração nas cores do jogo e no tamanho das elipses que representam a cabeça, o corpo e a
comida da cobra.

5
Podemos dizer que, apesar dos problemas que continha o jogo que utilizamos como base,
este foi fundamental para o sucesso de nosso trabalho, visto que não foi preciso criar uma rotina
para a movimentação da cobra e o surgimento e captura da comida, algo que seria extremamente
trabalhoso e exigiria muito mais empenho e tempo.
Ao desenvolvermos o jogo, pudemos perceber que esse trabalho nos auxiliou na medida em
que aprimoramos a nossa experiência com o software Processing e automaticamente o nosso
conhecimento matemático.
Uma sugestão para o desenvolvimento de outros jogos poderia ser a utilização de outras
figuras para a representação do alimento da cobra, bem como uma alteração das imagens das
telas inicial e final e das cores do jogo, de acordo com os interesses do jogador e com o público-
alvo.
O jogo por nós desenvolvido poderia ser ampliado com o acréscimo de mais opções para os
níveis de velocidade de movimentação da cobra e talvez com a inserção da regra de o jogo
terminar também quando a cabeça da cobra se chocar com a moldura da tela.

Referências

ARMAZEMBRASILEIRO.COM.BR. Gel-05 - Geléia de goiaba Maribo Country - 270g. 2008.


Disponível em: http://www.armazembrasileiro.com.br/images/GEL-05%20-%20GELEIA%20DE
%20GOIABA%20MARIBO%20COUNTRY%20-%20270gr.jpg. Acesso em: 26 de julho de 2010.

BACANINHA.COM. Jogo da Cobrinha. 2010. Disponível em:


http://bacaninha.uol.com.br/home/secoes/jogos/2004/10/cobrinha/index.htm . Acesso em: 26 de julho de
2010.
BLOG DO LIGEIRINHO. Bola de meia. 2009. Disponível em:
http://1.bp.blogspot.com/_Zj6MWcIL-Lk/SiU1TNEJWvI/AAAAAAAABOo/o4oEmy84NDg/s400/
cobrinha.jpg. Acesso em: 26 de julho de 2010.

COSMO.UOL. Escola da periferia de Campinas ganha laptops. 2010. Disponível em:


http://cosmo.uol.com.br/multimidia/imagens/2010%5C03%5C06%5C48218080606G.jpg. Acesso em:
26 de julho de 2010.
PASTELDEVENTO.ORG. Ghostbusters: Nova linha de figuras de ação. 2009. Disponível em:
http://pasteldevento.org/2009/02/08/ghostbusters-mattel-nova-linha-de-figuras-de-acao/ . Acesso em: 26
de junho de 2010.
PROCESSING. Snake game. 2009. Disponível em: http://processing.org/discourse/yabb2/YaBB.pl?
num=1246056757. Acesso em: 26 de julho de 2010.

UNICAMP.BR. Quando a ciência faz a poética. 2005.


Disponível em:
http://www.unicamp.br/unicamp/unicamp_hoje/ju/agosto2005/Fotos-ju296online/ju296pg04d.jpg .
Acesso em: 26 de julho de 2010.

6
7

Você também pode gostar