Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. import random
  2. class env:
  3. steps = 0
  4. puntos = 0
  5. # 0 = limpio
  6. # 1 = sucio
  7. # 2 = aspiradora
  8. def __init__ (self,sizeX,sizeY,init_posX,init_posY,dirt_rate):
  9. self.sizeX = sizeX
  10. self.sizeY = sizeY
  11. self.m = [sizeX][sizeY]
  12. tamaño = sizeX*sizeY
  13. dirtSlotsAmount = (dirt_rate * tamaño)/100
  14. self.m[init_posX][init_posY] = 2
  15. for i in range (0,sizeX):
  16. for j in range(0,sizeY):
  17. self.m[i][j] = 0
  18. # if (i < dirt_rate):
  19. # random.randint()
  20. i = 0
  21. while (i != dirtSlotsAmount):
  22. slot = random.randint(0,tamaño)
  23. if (self.m[slot] == 0):
  24. self.m[slot] = 1
  25. i = i + 1
  26. def accept_action(self,action,x,y):
  27. # arriba abajo izquierda derecha limpiar nohacernada
  28. if (action == arriba):
  29. if (self.m[x][y+1] != None):
  30. self.steps = self.steps + 1
  31. return True
  32. return False
  33. elif (action == abajo):
  34. if (self.m[x][y-1] != None):
  35. self.steps = self.steps + 1
  36. return True
  37. return False
  38. elif (action == izquierda):
  39. if (self.m[x-1][y] != None):
  40. self.steps = self.steps + 1
  41. return True
  42. return False
  43. elif (action == derecha):
  44. if (self.m[x+1][y] != None):
  45. self.steps = self.steps + 1
  46. return True
  47. return False
  48. elif (action == limpiar):
  49. if (self.m[x][y] == 1):
  50. self.puntos = self.puntos + 1
  51. self.steps = self.steps + 1
  52. return True
  53. return False
  54. else:
  55. self.steps = self.steps + 1
  56. def is_dirty(self,x,y):
  57. if (self.m[x][y] == 1):
  58. return True
  59. return False
  60. def get_performance(self):
  61. return self.puntos/self.steps
  62. def print_environment(self):
  63. for a in range(0,self.sizeX):
  64. print("")
  65. for b in range(0,self.sizeY):
  66. print(self.m[a][b],end=' ')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement