Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: cp1252 -*-
- import sys
- import random
- def verificaCasa(mapa, i, j):
- if(mapa[i][j]=='.'):
- return 0
- elif(mapa[i][j]=='*'):
- return 1
- elif(mapa[i][j]=='#'):
- return 2
- def verificaTab(i, j):
- if(i<0 or i>19 or j<0 or j>19):
- return False
- else:
- return True
- def aumentaCobra(posicao):
- posicao.append([posicao[len(posicao)-1][0]+1, posicao[len(posicao)-1][1]])
- def mudaMapa(mapa, i, j):
- print i
- print j
- mapa[i][j]='.'
- def novaFruta(mapa):
- a=random.randint(0, 19)
- b=random.randint(0, 19)
- mapa[a][b]='*'
- # Declara mapa
- mapa = [['.' for i in range(20)] for j in range(20)]
- # Declara posicao da cabeca da cobra
- posicao = [[10, 10]]
- # Funcao que imprime o mapa e a cabeca cobra
- # Precisa ser adaptada pra imprimir toda a cobra
- def imprime_mapa(pos):
- for i in range(20):
- for j in range(20):
- temp=0
- for k in range(len(pos)):
- if (i == pos[k][0] and j == pos[k][1]):
- sys.stdout.write('#')
- temp=1
- break
- if(temp==0):
- sys.stdout.write(mapa[i][j])
- print ("")
- # O laço abaixo realiza as operacoes que devem ser feitas sempre que
- # um valor de direcao eh lido pelo usuario
- novaFruta(mapa)
- imprime_mapa(posicao)
- while (True):
- comando = raw_input()
- if(comando=='W'):
- if(verificaTab(posicao[0][0]-1, posicao[0][1])):#Falta botar o else para sair do jogo ou sair do outro lado
- temp=verificaCasa(mapa, posicao[0][0]-1, posicao[0][1])
- if(temp<2):
- i=len(posicao)-1
- while(i>0):
- posicao[i][0]=posicao[i-1][0]
- posicao[i][1]=posicao[i-1][1]
- i=i-1
- posicao[0][0]=posicao[0][0]-1
- print posicao
- if(temp==1):
- aumentaCobra(posicao)
- print posicao
- mudaMapa(mapa, posicao[0][0], posicao[0][1])
- novaFruta(mapa)
- elif(comando=='S'):
- if(verificaTab(posicao[0][0]+1, posicao[0][1])):
- temp=verificaCasa(mapa, posicao[0][0]+1, posicao[0][1])
- if(temp<2):
- i=len(posicao)-1
- while(i>0):
- posicao[i][0]=posicao[i-1][0]
- posicao[i][1]=posicao[i-1][1]
- i=i-1
- posicao[0][0]=posicao[0][0]+1
- if(temp==1):
- aumentaCobra(posicao)
- mudaMapa(mapa, posicao[0][0], posicao[0][1])
- novaFruta(mapa)
- elif(comando=='A'):
- if(verificaTab(posicao[0][0], posicao[0][1]-1)):
- temp=verificaCasa(mapa, posicao[0][0], posicao[0][1]-1)
- if(temp<2):
- i=len(posicao)-1
- while(i>0):
- posicao[i][0]=posicao[i-1][0]
- posicao[i][1]=posicao[i-1][1]
- i=i-1
- posicao[0][1]=posicao[0][1]-1
- if(temp==1):
- aumentaCobra(posicao)
- mudaMapa(mapa, posicao[0][0], posicao[0][1])
- novaFruta(mapa)
- elif(comando=='D'):
- if(verificaTab(posicao[0][0], posicao[0][1]+1)):
- temp=verificaCasa(mapa, posicao[0][0], posicao[0][1]+1)
- if(temp<2):
- i=len(posicao)-1
- while(i>0):
- posicao[i][0]=posicao[i-1][0]
- posicao[i][1]=posicao[i-1][1]
- i=i-1
- posicao[0][1]=posicao[0][1]+1
- if(temp==1):
- aumentaCobra(posicao)
- mudaMapa(mapa, posicao[0][0], posicao[0][1])
- novaFruta(mapa)
- elif(comando=='E'):
- break
- # Tratar a entrada 'comando'
- # Modificar a cobra e o mapa de acordo com a entrada
- # Utilizar W, A, S, D para movimento e E para sair
- imprime_mapa(posicao)
- print "Saiu do jogo"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement