Skip to content

Paku-Paku

Bem vindo a documentação do Paku-Paku. Nessa página você vai conhecer mais sobre o jogo, seus elementos e como jogar.

Sobre o jogo

O Paku-Paku é um jogo inspirado no Pac-Man. O jogador assume o controle do Paku e o guia pelo labirinto em busca das bolinhas pra alimentar o faminto Paku. Mas guiar o Paku não é uma tarefa tão simples, o labirinto é um lugar perigoso e cheio de fantasmas que o perseguem, a única esperança do Paku é escapar dos fantasmas ou conseguir alcançar uma super bolinha que lhe da poderes que o tornam capaz de comer os fantasmas, mas isso não resolve o problema pois os fantasmas sempre voltam.

O objetivo do jogo é que o Paku consiga comer o maior número de bolinhas possíveis sem ser capturado pelos fantasmas. Ao comer as bolinhas especiais (maiores) o Paku consegue poderes por 15 segundos, e fica forte o suficiente para comer os fantasmas, sabendo disso os fantasmas começam a fugir do Paku.

Elementos do Paku-Paku

Paku

O Paku é o personagem principal do jogo. O jogador pode mover o Paku para todas as direções desejadas, desde que não haja uma parede na direção.

O Paku pode ser morto pelos Fantasmas caso seja capturado. Porém ao comer uma super bolinha o Paku ganha poderes, e enquanto os poderes durarem (15 segundos) ele não pode ser morto pelos fantasmas, pelo contrário, ele pode comer eles e ganhar um bônus de 100 pontos. Quando os poderes do Paku começam a se enfraquecer (nos últimos 5 segundos) os fantasmas começam a piscar voltando pra sua forma original.

Blinky

O Blinky é um fantasma muito inteligente, ele usa um algoritmo de Dijkstra para perseguir o Paku.

Sempre que o Paku ganha poderes, ele usa o mesmo algoritmo para tentar fugir.

Inky

O Inky é um fantasma que gosta de trabalhar em equipe, ele tenta se unir a outro fantasma para emboscar Paku.

Sempre que o Paku ganha poderes, ele tenta fugir correndo para longe de todos os fantasmas pois acha que ficará mais seguro assim.

Pinky

O Pinky é um fantasma estrategista, ele tenta estar sempre um passo a frente de Paku para surpreende-lo.

Sempre que o Paku ganha poderes, ele tenta fugir correndo pro lado contrário de onde Paku estiver.

Clyde

O Clyde é um fantasma atrapalhado e medroso, sempre que é preciso perseguir o Paku ele fica sem saber o que fazer, pois tem medo de se aproximar e morrer.

Sempre que o Paku ganha poderes ele tenta fugir correndo desesperado de medo pelo labirinto.

Bordy

O Bordy é um fantasma muito inteligente, ele usa um algoritmo de Bellman-Ford para perseguir o Paku.

Sempre que o Paku ganha poderes, ele usa o mesmo algoritmo para tentar fugir.

Bolinhas

As bolinhas são capturadas sempre que o Paku passa por elas e geram pontos para o jogador.

Existem dois tipos de bolinhas no jogo:

  • Bolinhas comuns: valem apenas 10 pontos.
  • Super bolinas: São maiores que as bolinhas comuns e valem 50 pontos e dão ao Paku poder suficiente para comer os fantasmas durante 15 segundos.

Tela de Menu

  • RECORDES: Ao ser clicado, direciona o jogador para a tela de recordes.
  • AJUSTES: Ao ser clicado, direciona o jogador para a tela de ajustes.
  • JOGAR: Ao ser clicado, inicia um jogo, com os ajustes que estejam selecionados.

Tela de Ajustes

Na tela de ajustes o jogador pode selecionar as configurações desejadas por ele para a partida.

Rotas

  • Mostrar Dijkstra: Ao ser clicado configura o jogo para mostrar a rota calculada (usando o algoritmo de Dijkstra) pelo fantasma Blinky até o player. Um dos fantasmas deve ser o Blinky para o botão ser ativado no jogo

  • Mostrar Bellman-Ford: Ao ser clicado, configura o jogo para mostrar a rota calculada (usando o algoritmo de Bellman-Ford) pelo fantasma Bordy até o player. Um dos fantasmas deve ser o Bordy para o botão ser ativado no jogo

Labirinto

  • Espelhar Labirinto: Ao ser clicado, configura o labirinto gerado para ser do tipo espelhado, dessa forma o algoritmo de geração do labirinto irá gerar apenas metade e o resto será espelhado, simétrico no eixo Y.

  • Kruskal: Ao ser clicado, configura o labirinto para ser gerado a partir da MST do algoritmo ambicioso de Kruskal. É o algoritmo utilizado como padrão do jogo, caso nenhum seja selecionado

  • Prim: Ao ser clicado, configura o labirinto para ser gerado a partir da MST do algoritmo ambicioso de Prim.

Fantasmas

O Paku-Paku tem sempre 4 fantasmas que o perseguem durante o jogo e você pode selecionar quem são esses fantasmas. Ao clicar no botão o fantasma será trocado por outro, é possível escolher qualquer um entre todos os 5 fantasmas, inclusive fantasmas iguais.

Como usar

Instalação

Linguagem: Python
Framework: ---

Pré-requisitos para rodar o Paku-Paku 2:
- Instale o Python (versão 3.8.5)
- Instale o Pyxel (versão 1.4.3)

Instalar e Executar (Sistema baseado em Debian)

$ pip3 install pyxel 
$ git clone https://github.com/projeto-de-algoritmos/Final_Paku-2.git
$ cd Final_Paku-2/paku
$ python3 game.py

Como jogar

Para jogar o Paku-Paku é bem simples, basta clicar no botão jogar da Tela de Menu (caso deseje clique no botão ajustes primeiro e faça as configurações desejadas). Ao clicar no botão o labirinto será gerado, após a geração do labirinto o Paku começara a se mover, para redireciona-lô basta pressionar as setinhas do teclado ou as teclas w-a-s-d. Tente sobreviver a perseguição dos fantasmas enquanto alimenta o Paku para conseguir a vitória.

GIF demonstrativa