domingo, 28 de março de 2010

Labirinto do Dragão


"É quase um 'Campo Minado'... mas melhor"


Está pronto mais um dos meus (mini-) jogos em C++, Labirinto do Dragão. Assim como os outros, esse jogo ainda não tem gráficos 3D nem som. É apenas um jogo baseado em texto, ou seja, as interações com o jogador se dão através de uma interface textual. Apesar de parecer complicado no início, o mecanismo do jogo é extremamente simples e fácil. Baixe o jogo e leia o resto desta postagem pra aprender a jogar.




Clique no link a seguir para baixar o jogo (apenas 52 kb):

http://www.4shared.com/file/6OIHA19p/labirinto_do_dragao_1-0.html




Objetivo do jogo:

Bom, o objetivo é muito claro e simples: você deve encontrar a flecha mágica que está escondida em algum lugar no labirinto, e possuindo esta, deve encontrar as proximidades da toca do dragão, para assim atirar a flecha nele e derrotá-lo. Detalhe: você não pode entrar na toca do dragão! Se você fizer isso, vira churrasco na mesma hora! Você deve atirar a flecha de longe, isto é, de uma sala adjacente qualquer. Se você errar o alvo, a flecha some e vai parar em qualquer outro lugar do labirinto, e você terá que encontrá-la denovo antes de enfrentar o dragão.

Controles:

Para mover-se de uma sala a outra, basta pressionar uma tecla direcional (as teclas com as setas). Pressionando a tecla para cima você vai para a sala que está imediatamente ao norte; tecla para baixo, você vai pro sul; tecla para esquerda, você vai para o leste; e tecla para direita, você vai para oeste. Os comandos do jogo aparecem na parte inferior da tela principal.

Se você possuir a flecha, e quizer atirar, pressione ALT+A em qualquer momento. No entanto, a flecha só causa algum efeito se você acertar o dragão. Atirar a flecha a partir de uma sala onde você não sente a presença do dragão é desperdiçá-la à toa. Além disso, a flecha só tem efeito no dragão (não funciona contra nenhum outro objeto e não tem nenhuma outra utilidade).

Se por acaso você não quizer mais jogar, pressione ALT+Q para desistir e sair do jogo a qualquer momento.

Se durante o jogo você esquecer como se joga, pressione F1 para obter ajuda.

Como é o labirinto?

Existem diveros objetos pelo jogo que ajudam ou atrapalham a sua busca. No entanto, ao explorar o labirinto, você não tem como saber onde estão os diversos objetos, mas você é capaz de sentir a presença de qualquer objeto que estiver numa sala adjacente à sala onde você está no momento (numa sala imediatamente ao norte, ao sul, a leste, OU a oeste).

O labirinto nada mais é do que um conjunto de 100 salas interligadas. Imagine o seguinte: o labirinto é como um tabuleiro de xadrez. Existem 10 casas (salas) contando da esquerda pra direita, e 10 casas (salas) contando de cima pra baixo, e isso logicamente resulta em 100 salas (10 x 10 = 100). Um detalhe muito importante: quando você ultrapassa os limites do labirinto, você automaticamente sai do lado oposto do labirinto. Ou seja, ao ultrapassar o limite direito do labirinto, você vai parar no canto extremo esquerdo, e vice-versa; ao ultrapassar o limite inferior do labirinto, você vai parar no canto extremo superior, e vice-versa. Além disso, você pode sentir a presença de objetos nas salas "pseudo-adjacentes", e que na verdade estão em cantos opostos do labirinto.

No canto superior direito da tela principal você pode ver um pequeno mapa do labirinto. Porém, esse mapa mostra apenas a sua localização (marcada com um 'X' verde) no labirinto, não mostra nenhum objeto. Os pontos '.' representam as salas. Na realidade, esse mapa serve apenas para lhe dar uma representação visual do personagem dentro do labirinto. Quando você vencer o jogo, ou quando morrer, o mapa aparece mostrando a localização de todos os objetos no labirinto.

Quais são os objetos?

Veja a descrição de todos os objetos que você pode encontrar:

Os tesouros do dragão estão escondidos pelo labirinto, e acrescentam um bônus à sua pontuação caso você os encontre. Incrivelmente, apesar de que o labirinto é de dimensões finitas, não há um número fixo de tesouros, e isto significa que não se sabe quantos tesouros estão escondidos (nem eu mesmo sei), e você pode acabar encontrando muitos tesouros contanto que você sobreviva procurando por todos eles.

As armadilhas são fatais caso você caia acidentalmente em alguma, a não ser que você possua a corda mágica. No caso de você ter uma corda mágica e cair numa armadilha, o personagem automaticamente a usará para escapar. No entanto, a corda desaparece depois de usada, e vai parar em algum outro lugar no labirinto. Então caso você queira ter outra chance de se salvar de outra armadilha, você terá de encontrar a corda novamente. Repare que pode haver mais de uma armadilha ao redor do personagem. Por exemplo, pode haver uma ao norte, e uma ao sul. Ou até mesmo três armadilhas. O personagem sempre vai dizer a quantidade de armadilhas ao redor, mas obviamente a direção onde elas se encontram nunca é revelada! Existem sempre 10 armadilhas espalhadas em qualquer labirinto, e este número é fixo.

A corda mágica é um objeto que te permite sair de uma armadilha, mas assim que você a usa, ela vai parar em algum outro lugar do labirinto, e você precisa encontrá-la novamente caso queira ter mais uma chance de escapar de outra armadilha. Existe somente uma corda.

A flecha mágica é o objeto que você deve usar para derrotar o dragão. Quando sentir a presença dele, pressione ALT+Q se você possuir a flecha, então na tela que aparecerá, selecione a direção que você supõe que o dragão esteja. Se você acertá-lo, você vence o jogo. Caso contrário, você perde a flecha, e por esta ser mágica, ela vai parar em algum outro lugar do labirinto, e você terá que encontrá-la novamente para repetir o processo. Existe apenas uma flecha.

Há também um feiticeiro cruel escondido pelo labirinto, e caso você tenha a infelicidade de cruzar com ele, ele lançará um feitiço que vai te teleportar para uma sala qualquer do labirinto, e então ele também vai se teleportar para outro local, para te esperar novamente. Existe somente um feiticeiro.

Outro objeto que vai te atrapalhar é o buraco-negro. Caso você seja sugado por um buraco-negro, vai parar em outro labirinto completamente diferente, perdendo a corda e a flecha, se você as possuir. Apenas os tesouros encontrados serão mantidos. Existe apenas um buraco-negro.

E por fim o dragão é o dono do labirinto e é ele que você deve derrotar para vencer o jogo. Veja mais acima nesse texto como funciona a flecha mágica para instruções de como derrotá-lo. Existe apenas um dragão.

Os objetos do jogo aparecem no labirinto em salas diferentes a cada partida, isto é, a cada vez que você jogar, os objetos estarão espalhados aleatoriamente, portanto um jogo nunca é igual a outro.

Veja mais detalhes de como jogar:

Se você já jogou Campo Minado, então esse jogo vai parecer um tanto familiar.

A idéia crucial é que você não consegue ver onde estão os objetos, mas apenas sentir a presença deles. O personagem indica na tela se está sentindo a presença de algum objeto em qualquer uma das salas adjacentes, e por sala adjacente entenda-se uma sala que esteja imediatamente ao norte, ou ao sul, ou a leste, ou a oeste, em relação à sala onde você está no momento. Por exemplo: se o personagem diz que está sentindo a presença de uma armadilha, você sabe que existe uma armadilha ao redor, mas não sabe exatamente em qual direção ela está. Ela pode estar imediatamente ao norte, sul, leste ou oeste. Neste caso o que você deve fazer? Você pode arriscar uma das direções, e rezar para que a armadilha não esteja naquela direção. Ou você pode tentar deduzir onde ela está, pois as armadilhas são fixas, elas não se movem. A não ser que você caia num buraco-negro, nesse caso o labirinto é totalmente diferente e tudo muda de lugar. Você também consegue detectar a toca do dragão, mas assim como os outros objetos, o personagem apenas indica a presença dele numa sala adjacente, e não a direção exata em que ele se encontra. Se você sentir a presença dele, tenha muito cuidado ao mover-se em alguma direção, pois você pode acidentalmente pisar no covil dele e despertá-lo do sono profundo. Nesse caso, uma longa e potente baforada de fogo te transformará instantaneamente em churrasco humano. Se você possuir a flecha mágica, é hora de arriscar um tiro certeiro! Ao detectar a presença do dragão, pressione ALT+A para se armar com o arco e flecha. Uma nova tela vai aparecer, perguntando em qual direção você deseja atirar. Escolha uma direção e reze para acertá-lo. Caso você erre o alvo, a flecha some, e vai parar em algum outro local, e o dragão continuará adormecido no mesmo lugar. Então você terá que encontrar a flecha novamente, e repetir todo o processo, até acertá-lo em cheio. Quando você finalmente derrotar o dragão, sua pontuação será calculada e você será o vencedor!

Como é a pontuação?

A sua pontuação final somente é calculada caso você consiga derrotar o dragão do labirinto. Se você morrer, apenas a quantidade de movimentos e de tesouros encontrados aparecerão na tela de game over, mas a pontuação não será calculada. Se você vencer, a pontuação é calculada com base na quantidade de movimentos que você realizou antes de matar o dragão, e os tesouros que você encontrou são adicionados como bônus. Em suma: quanto MENOS movimentos você fizer até matar o dragão, MAIOR será a sua pontuação; e quanto MAIS tesouros você encontrar, MAIOR será o bônus acrescentado à sua pontuação.

Só me resta desejar-lhes boa sorte.



Nota aos estudantes de C++:

Eu sou um estudante de programação, e estudo as linguagens C e C++ desde 2009, ou seja, faz apenas 1 ano (apesar de que estudo programação em geral desde o final dos anos 90, ou seja, já fazem uns 10 anos).

Portanto, estou disponibilizando os arquivos de código-fonte deste jogo afim de compartilhar conhecimento. Se você estuda C/C++ e quer ver como eu desenvolvi este jogo, me peça os fontes. O mecanismo por trás deste jogo é bem simples, levou 2 dias para ficar pronto, e mais um dia para dar os "retoques" finais e documentar o código (o código está completamente "comentado", sabe como é). Com certeza o meu código não é perfeito (perfeito não existe), mas dá pro gasto :P



Se voce gostou deste jogo, deixe comentário



"Labirinto do Dragão" é (C) Março/2010 por Fernando Aires Castello

Este jogo é FREEWARE.
Se você pagou por este jogo, envie o nome e endereço completo do estelionatário, para que eu possa enviar um dragão até ele.

Nota para o IBAMA:

"Nenhum dragão foi maltratado durante a produção deste jogo."