Professional Documents
Culture Documents
Introduo
Regras do jogo
opcionalmente, a direo oposta a D, ento movemos o fantasma uma casa na direo D. Caso contrrio, sorteamos uma nova direo de movimento para o fantasma
dentre as direes possveis e movemos o fantasma uma casa na direo sorteada.
Note que a direo sorteada passa a ser a nova direo de movimento do fantasma.
Note tambm que dois fantasmas podem ocupar a mesma posio ao mesmo tempo.
2. Verifica-se se houve coliso entre o Pac-Man e algum dos fantasmas, caso em que o
jogo termina.
3. O usurio escolhe uma direo de movimento para o Pac-Man e ele movido uma
casa na direo escolhida, se possvel. Se a nova casa ocupada pelo Pac-Man contm um pac-dot, ento o total de pac-dots comido aumentado e aquele pac-dot
removido. Se a nova casa ocupada pelo Pac-Man contm um fantasma, ento o jogo
acaba.
4. Se todos os pac-dots foram comidos, ento o jogo acaba.
Ateno: No Pac-Man o tabuleiro cclico. Ou seja, se o tabuleiro tem tamanho 5 7 e
o Pac-Man ou um fantasma na posio (3, 6) se move para a direita, ento ele reaparece
na posio (3, 0), por exemplo. Idem na direo vertical. Desde que no haja uma parede
impedindo tal movimento, claro.
alunos (e os professores) possam usar nos testes dos seus programas. Coloque todos os
arquivos na mesma pasta e abra o ep2.py, o pacman.py e o extras.py no editor de sua
preferncia1 .
O arquivo ep2.py o arquivo que contm o main do EP2. O arquivo pacman.py o
arquivo que contm as diversas funes para controle do jogo. Voc precisar editar ambos
e entregar ambos na grana. O arquivo extras.py um arquivo opcional onde voc pode
colocar funes ou variveis que voc ache necessrias no seu EP. Se voc no adicionar
nenhuma funo ou varivel neste arquivo, voc no precisa entreg-lo na grana. Caso
contrrio, sim, voc deve entreg-lo.
Rode o ep2.py da forma como voc baixou da pgina do EP2. Voc ver que ele j
capaz de pedir para o usurio o nome de um arquivo de labirinto, ler esse arquivo, carregar
o labirinto em uma matriz, e imprimir o contedo dessa matriz, bem bagunada, na tela.
Ok, j alguma coisa :-) . Comente ou apague a linha que imprime a matriz e pronto. Se
voc conseguiu chegar at aqui, voc terminou o Passo 1!
+.++++++++++.++.+++++++++.+
+......++....++...++......+
+++.++.++.+++++++.++.++.+++
+++.++.++.+++++++.++.++.+++
+...++...............++...+
+.++++.+++++.++.++++.++++.+
+.++++.+++++.++.++++.++++.+
+............++...........+
++++++.++.+++++++.++.++++++
++++++.++.+++++++.++.++++++
++++++.++.........++.++++++
++++++.++.+++++++.++.++++++
++++++.++.+..C..+.++.++++++
..........+.....+.......F..
++++++.++.+.....+.++.++++++
++++++.++.+++..++.++.++++++
++++++.++.........++.++++++
++++++.+++++.++.++++.++++++
++++++.+++++.++.++++.++++++
+......++....++...++......+
+.++++.++.+++++++.++.++++.+
+.++++.++.+++++++.++.++++.+
+.........F...............+
+.++++.+++++.++.++++.++++.+
+.++++.+++++.++.++++.++++.+
+.++++.+++++.++.++++.++++.+
+............++.......F...+
+++++++++++++++++++++++++++
Neste passo voc precisar escrever duas funes. Uma que cria o Pac-Man e outra
que cria os fantasmas. O Pac-Man vai ser representado por uma lista, dentro do main()
do seu programa, com contedo:
[linha, coluna, direo, pontos]
na qual linha e coluna so a posio atual do Pac-Man, direo representa a ltima
direo escolhida pelo usurio para movimentar o Pac-Man e pontos conta quantos pacdots o Pac-Man j comeu. Considere que inicialmente a direo PARADO2 . Essa lista
representando o Pac-Man ter que ser constantemente atualizada durante o jogo medida
que o Pac-Man se movimenta.
A funo criaPacMan, que j possui o prottipo escrito no arquivo pacman.py deve
receber como parmetro a matriz do labirinto e retornar como sada a lista representando
2
No incio do pacman.py h 5 variveis chamadas ESQUERDA, DIREITA, CIMA, BAIXO e PARADO que
podem ser usadas no seu cdigo para facilitar a legibilidade
o Pac-Man. Voc precisa escrever esta funo e cham-la logo depois que o
labirinto for lido do arquivo dentro do main(). Note que a funo deve encontrar o
Pac-Man no labirinto, armazenar as informaes sobre ele na lista destinada a isso e, no
lugar onde o Pac-Man estava no labirinto, colocar uma posio vazia, que ser representada
na matriz por um espao em branco ( ). A ideia ter o labirinto apenas com paredes,
pac-dots e espaos vazios. O Pac-Man e os fantasmas ficaro armazenados em listas fora
do labirinto e sero colocados nas posies corretas apenas na impresso do labirinto.
A outra funo que deve ser escrita neste passo a funo que cria os fantasmas. Os
fantasmas sero representados como uma lista, dentro do main() do seu programa, com
contedo:
[[linha, coluna, direo], [linha, coluna, direo], ...]
Ou seja, cada posio da lista, que tambm uma lista, representa um fantasma com
sua posio (linha e coluna) e direo do movimento escolhido aleatoriamente (direo)
que pode ser ESQUERDA, DIREITA, CIMA e BAIXO. A lista que representa os fantasmas
ter que ser constantemente atualizada durante o jogo medida que os fantasmas se
movimentam.
A funo criaFantasmas, que j possui o prottipo escrito no arquivo pacman.py,
deve receber como parmetro a matriz do labirinto e retornar como sada a lista de listas
representando os fantasmas. Voc precisa escrever esta funo e cham-la logo depois da funo que criou o Pac-Man. Note que a funo deve encontrar os fantasmas
no labirinto, armazenar as informaes sobre eles na lista destinada a isso e, nos lugares onde os fantasmas estavam no labirinto, colocar pac-dots (Os fantasmas no comem
pac-dots).
Neste ponto do EP voc j tem o contedo do labirinto carregado na memria bem
como o status do Pac-Man e dos fantasmas. Agora necessrio colocar tudo para se
movimentar!
Nesse ponto do EP, o usurio j consegue comear a jogar pois ele j ser capaz de ver
o labirinto e tomar uma deciso sobre para qual direo mover o Pac-Man.
No main do cdigo deve ser verificado o retorno da funo e, caso tenha havido algum
choque, o programa deve imprimir o labirinto e terminar com a mensagem abaixo:
Game over! Pontos = %d
onde o %d representa quantos pac-dots foram comidos pelo Pac-Man.
Se no houve choque, o programa deve continuar.
Para imprimir o labirinto, voc deve usar a funo imprimeLabirinto que implementou no Passo 3. Porm, dever fazer uma alterao nessa funo para que ela imprima o
caractere X na posio em que houve a coliso entre o Pac-man e algum dos fantasmas
(note que essa alterao no deve afetar a impresso de uma situao em que no h
coliso).
no labirinto, essa funo retorna True. Caso contrrio, ela retorna False. No caso de
retornar False, o programa deve imprimir o labirinto e terminar com a mensagem:
Congratulations! Pontos = %d
Entrega do EP
4.1
Spyder
O Spyder um ambiente de desenvolvimento com suporte linguagem Python. Diferente de um editor de textos convencional, um ambiente de desenvolvimento j possui
diversas ferramentas que auxiliam o programador nas tarefas de desenvolvimento.
Para instalar o Spyder, instale primeiro o Anaconda no seu computador. Provavelmente voc j ter feito isso no incio do semestre. Se no fez ainda, siga as instrues
deste vdeo. Embora o vdeo descreva a instalao do Anaconda no Windows, o processo
similar para outros sistemas operacionais.
Tendo instalado o Anaconda, abra o Launcher, que deve ter sido colocado no menu
de programas do seu sistema operacional aps a instalao, e na lista de aplicativos que
aparecer escolha Instalar (Install ) ou atualizar (Update) o Spyder. A opo de Update
vai aparecer caso voc j tenha o Spyder instalado. A Figura 1 mostra essa tela.
10
4.2
idle
11
4.3
Linha de comando
Voc no obrigado a utilizar o Spyder e nem o idle para escrever o seu EP2.
Qualquer editor de textos ou ambiente de desenvolvimento com suporte a python pode
ser utilizado. Basta voc certificar-se de enviar na grana os arquivos ep2.py e pacman.py
para que possam ser corrigidos.
Caso voc utilize outro editor de textos ou ambiente de desenvolvimento que no tenha
integrao com o python, e considerando que voc tem o python verso 3 instalado no seu
computador, voc pode executar o seu programa por meio do prompt de comandos. Cada
sistema operacional tem um nome diferente para o prompt de comandos. No OSX por
exemplo, o nome Terminal. Executando este programa voc ser apresentado janela
da Figura 4.
Uma vez naquela janela voc deve executar o comando cd para ir at a pasta onde
12
Neste ponto voc j pode editar os arquivos. No se esquea de salv-los com frequncia
a cada mudana realizada no seu editor de textos ou ambiente de desenvolvimento de
preferncia.
13
14