Guest User

heroi.rb

a guest
Mar 6th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. class Heroi
  2. attr_accessor :linha, :coluna
  3. #para acessar diretamente usar @linha ou @coluna
  4. #attr_writer
  5. #attr_reader
  6.  
  7. def calcula_nova_posicao direcao
  8. novo_heroi=self.dup
  9. #dicionario via array associativo, substituindo case when para as posições
  10. movimentos = {"W"=>[-1,0],
  11. "S"=>[+1,0],
  12. "A"=>[0,-1],
  13. "D"=>[0,+1]
  14. }
  15. movimento = movimentos[direcao]
  16. if movimento!=nil&&movimento!=[]
  17. novo_heroi.linha+=movimento[0]
  18. novo_heroi.coluna+=movimento[1]
  19. end
  20. novo_heroi
  21. end
  22.  
  23. def to_array
  24. [linha,coluna]
  25. end
  26.  
  27. def remove_do mapa
  28. mapa[linha][coluna] = " "
  29. end
  30.  
  31. def coloca_no mapa
  32. mapa[linha][coluna] = "H"
  33. end
  34.  
  35. def direita
  36. calcula_nova_posicao "D"
  37. end
  38.  
  39. def esquerda
  40. calcula_nova_posicao "A"
  41. end
  42. def abaixo
  43. calcula_nova_posicao "S"
  44. end
  45. def acima
  46. calcula_nova_posicao "W"
  47. end
  48.  
  49.  
  50. end
Advertisement
Add Comment
Please, Sign In to add comment