Advertisement
NickIsNotTaken

Untitled

Jul 21st, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.16 KB | None | 0 0
  1. import random
  2.  
  3. def make_choice(x,y,field):
  4. my_life = field[x][y]['life']
  5. act = ''
  6. #width = len(field)
  7. #height = len(field[0])
  8. tanks = []
  9. coin_up = False
  10. coin_down = False
  11. coin_left = False
  12. coin_right = False
  13. coin = False
  14. tank = False
  15. tank_up = False
  16. tank_down = False
  17. tank_left = False
  18. tank_right = False
  19.  
  20. tank_life_en = {}
  21. actions = []
  22.  
  23. if x - 1 != 0:
  24. for i in range(x-1, 0):
  25.  
  26. if field[i][y] == 1:
  27. coin_left = True
  28.  
  29. if field[i][y] not in [-1, 0, 1]:
  30. tank_left = True
  31. tank_life_en = field[i][y]['life']
  32. break
  33. if field[i][y] == -1:
  34. break
  35.  
  36. if x + 1 != len(field):
  37. for i in range(x+1, len(field)):
  38. if field[i][y] == 1:
  39. coin_right = True
  40.  
  41. if field[i][y] not in [-1, 0, 1]:
  42. tank_right = True
  43. tank_life_en = field[i][y]['life']
  44. break
  45. if field[i][y] == -1:
  46. break
  47.  
  48. if y - 1 != 0:
  49. for i in range(y-1, 0):
  50.  
  51. if field[x][i] == 1:
  52. coin_up = True
  53.  
  54. if field[x][i] not in [-1, 0, 1]:
  55. tank_up = True
  56. tank_life_en = field[x][i]['life']
  57. break
  58. if field[x][i] == -1:
  59. break
  60.  
  61. if y + 1 != len(field[x]):
  62. for i in range(y+1, len(field[x])):
  63.  
  64. if field[x][i] == 1:
  65. coin_down = True
  66.  
  67. if field[x][i] not in [-1, 0, 1]:
  68. tank_down = True
  69. tank_life_en = field[x][i]['life']
  70. break
  71. if field[x][i] == -1:
  72. break
  73.  
  74.  
  75.  
  76. if coin_up == True or coin_down == True or coin_left == True or coin_right == True:
  77. coin = True
  78. if coin_up == True:
  79. coin = True
  80. act = 'go_up'
  81. elif coin_down == True:
  82. coin = True
  83. act = 'go_down'
  84. elif coin_left == True:
  85. coin = True
  86. act = 'go_left'
  87. elif coin_right == True:
  88. coin = True
  89. act = 'go_right'
  90.  
  91. if tank_up == True or tank_down == True or tank_left == True or tank_right == True:
  92. tank = True
  93. if tank_up == True:
  94. if tank_life_en > my_life:
  95. if field[x+1][y] == 0:
  96. act = 'go_right'
  97. elif field[x-1][y] == 0:
  98. act == 'go_left'
  99. else:
  100. act = 'fire_up'
  101. elif tank_down == True:
  102. if tank_life_en > my_life:
  103. if field[x+1][y] == 0:
  104. act = 'go_right'
  105. elif field[x-1][y] == 0:
  106. act == 'go_left'
  107. else:
  108. act = 'fire_down'
  109. elif tank_left == True:
  110. if tank_life_en > my_life:
  111. if field[x][y+1] == 0:
  112. act = 'go_up'
  113. elif field[x][y-1] == 0:
  114. act = 'go_down'
  115. else:
  116. act = 'fire_left'
  117. elif tank_right == True:
  118. if tank_life_en > my_life:
  119. if field[x][y+1] == 0:
  120. act = 'go_up'
  121. elif field[x][y-1] == 0:
  122. act = 'go_down'
  123. else:
  124. act = 'fire_right'
  125.  
  126. if field[x+1][y] == 0:
  127. actions.append('go_right')
  128. if field[x-1][y] == 0:
  129. actions.append('go_left')
  130. if field[x][y+1] == 0:
  131. actions.append('go_up')
  132. if field[x][y-1] == 0:
  133. actions.append('go_down')
  134.  
  135.  
  136.  
  137. if tank == True:
  138. return act
  139. elif coin == True:
  140. return act
  141. else:
  142. return random.choice(actions)
  143.  
  144.  
  145.  
  146.  
  147.  
  148. if __name__ == "__main__":
  149. T = {"life": 10}
  150. my_field = [
  151. [0,0,0,0],
  152. [0,T,0,1],
  153. [0,0,T,0],
  154. [0,0,0,0]
  155. ]
  156. my_x = 1
  157. my_y = 1
  158. res = make_choice(my_x, my_y, my_field)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement