Advertisement
Guest User

Projeto - Tiago e Daniel

a guest
Jan 22nd, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.09 KB | None | 0 0
  1. # -*- coding: cp1252 -*-
  2. import sys
  3. import random
  4.  
  5. def verificaCasa(mapa, i, j):
  6. if(mapa[i][j]=='.'):
  7. return 0
  8. elif(mapa[i][j]=='*'):
  9. return 1
  10. elif(mapa[i][j]=='#'):
  11. return 2
  12.  
  13. def verificaTab(i, j):
  14. if(i<0 or i>19 or j<0 or j>19):
  15. return False
  16. else:
  17. return True
  18. def aumentaCobra(posicao):
  19. posicao.append([posicao[len(posicao)-1][0]+1, posicao[len(posicao)-1][1]])
  20. def mudaMapa(mapa, i, j):
  21. print i
  22. print j
  23. mapa[i][j]='.'
  24. def novaFruta(mapa):
  25. a=random.randint(0, 19)
  26. b=random.randint(0, 19)
  27. mapa[a][b]='*'
  28.  
  29.  
  30.  
  31. # Declara mapa
  32. mapa = [['.' for i in range(20)] for j in range(20)]
  33.  
  34. # Declara posicao da cabeca da cobra
  35. posicao = [[10, 10]]
  36.  
  37. # Funcao que imprime o mapa e a cabeca cobra
  38. # Precisa ser adaptada pra imprimir toda a cobra
  39. def imprime_mapa(pos):
  40. for i in range(20):
  41. for j in range(20):
  42. temp=0
  43. for k in range(len(pos)):
  44. if (i == pos[k][0] and j == pos[k][1]):
  45. sys.stdout.write('#')
  46. temp=1
  47. break
  48. if(temp==0):
  49. sys.stdout.write(mapa[i][j])
  50. print ("")
  51.  
  52. # O laço abaixo realiza as operacoes que devem ser feitas sempre que
  53. # um valor de direcao eh lido pelo usuario
  54. novaFruta(mapa)
  55. imprime_mapa(posicao)
  56. while (True):
  57. comando = raw_input()
  58. if(comando=='W'):
  59. if(verificaTab(posicao[0][0]-1, posicao[0][1])):#Falta botar o else para sair do jogo ou sair do outro lado
  60. temp=verificaCasa(mapa, posicao[0][0]-1, posicao[0][1])
  61. if(temp<2):
  62. i=len(posicao)-1
  63. while(i>0):
  64. posicao[i][0]=posicao[i-1][0]
  65. posicao[i][1]=posicao[i-1][1]
  66. i=i-1
  67. posicao[0][0]=posicao[0][0]-1
  68. print posicao
  69. if(temp==1):
  70. aumentaCobra(posicao)
  71. print posicao
  72. mudaMapa(mapa, posicao[0][0], posicao[0][1])
  73. novaFruta(mapa)
  74. elif(comando=='S'):
  75. if(verificaTab(posicao[0][0]+1, posicao[0][1])):
  76. temp=verificaCasa(mapa, posicao[0][0]+1, posicao[0][1])
  77. if(temp<2):
  78. i=len(posicao)-1
  79. while(i>0):
  80. posicao[i][0]=posicao[i-1][0]
  81. posicao[i][1]=posicao[i-1][1]
  82. i=i-1
  83. posicao[0][0]=posicao[0][0]+1
  84. if(temp==1):
  85. aumentaCobra(posicao)
  86. mudaMapa(mapa, posicao[0][0], posicao[0][1])
  87. novaFruta(mapa)
  88. elif(comando=='A'):
  89. if(verificaTab(posicao[0][0], posicao[0][1]-1)):
  90. temp=verificaCasa(mapa, posicao[0][0], posicao[0][1]-1)
  91. if(temp<2):
  92. i=len(posicao)-1
  93. while(i>0):
  94. posicao[i][0]=posicao[i-1][0]
  95. posicao[i][1]=posicao[i-1][1]
  96. i=i-1
  97. posicao[0][1]=posicao[0][1]-1
  98. if(temp==1):
  99. aumentaCobra(posicao)
  100. mudaMapa(mapa, posicao[0][0], posicao[0][1])
  101. novaFruta(mapa)
  102. elif(comando=='D'):
  103. if(verificaTab(posicao[0][0], posicao[0][1]+1)):
  104. temp=verificaCasa(mapa, posicao[0][0], posicao[0][1]+1)
  105. if(temp<2):
  106. i=len(posicao)-1
  107. while(i>0):
  108. posicao[i][0]=posicao[i-1][0]
  109. posicao[i][1]=posicao[i-1][1]
  110. i=i-1
  111. posicao[0][1]=posicao[0][1]+1
  112. if(temp==1):
  113. aumentaCobra(posicao)
  114. mudaMapa(mapa, posicao[0][0], posicao[0][1])
  115. novaFruta(mapa)
  116. elif(comando=='E'):
  117. break
  118.  
  119.  
  120. # Tratar a entrada 'comando'
  121. # Modificar a cobra e o mapa de acordo com a entrada
  122. # Utilizar W, A, S, D para movimento e E para sair
  123.  
  124. imprime_mapa(posicao)
  125. print "Saiu do jogo"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement