Advertisement
Xlorddx

Untitled

Aug 23rd, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.49 KB | None | 0 0
  1. import random
  2.  
  3. def make_choice(x,y,field):
  4.     width = len(field)
  5.     height = len(field[0])
  6.     left_coin = 1000
  7.     right_coin = 1000
  8.     up_coin = 1000
  9.     down_coin = 1000
  10.     actions = ["go_up", "go_down", "go_left","go_right"]
  11.     my_life = field[x][y]["life"]
  12.    
  13.     for r in range(y+1, height):
  14.         if field[x][r] not in [-1, 0 ,1]:
  15.             if field[x][y]["life"] < field[x][r]["life"]:
  16.                 if field[x+1][y]== 0:
  17.                     return "go_right"
  18.                 elif filed[x-1][y]== 0:
  19.                     return "go_left"
  20.                 elif filed[x][y-1]== 0:
  21.                     return "go_up"
  22.         if field[x][r] == -1:
  23.             break
  24.         if field[x][r] not in [-1, 0 ,1]:
  25.             return "fire_down"
  26.  
  27.     for z in range(x+1, width):
  28.         if field[z][y] not in [-1, 0 ,1]:
  29.             if field[x][y]["life"] < field[z][y]["life"]:
  30.                 if field[x][y+1]== 0:
  31.                     return "go_down"
  32.                 elif filed[x][y-1]== 0:
  33.                     return "go_up"
  34.                 elif filed[x-1][y]== 0:
  35.                     return "go_left"
  36.         if field[z][y] == -1:
  37.             break
  38.         if field[z][y] not in [-1, 0 ,1]:
  39.             return "fire_right"
  40.  
  41.     for f in range(y-1,-1,-1):
  42.         if field[x][f] not in [-1, 0 ,1]:
  43.             if field[x][y]["life"] < field[x][f]["life"]:
  44.                 if field[x+1][y]== 0:
  45.                     return "go_right"
  46.                 elif filed[x-1][y]== 0:
  47.                     return "go_left"
  48.                 elif filed[x][y+1]== 0:
  49.                     return "go_down"
  50.         if field[x][f] == -1:
  51.             break
  52.         if field[x][f] not in [-1, 0 ,1]:
  53.             return "fire_up"
  54.  
  55.     for j in range(x-1,-1,-1):
  56.         if field[j][y] not in [-1, 0 ,1]:
  57.             if field[x][y]["life"] < field[j][y]["life"]:
  58.                 if field[x][y+1]== 0:
  59.                     return "go_down"
  60.                 elif filed[x][y-1]== 0:
  61.                     return "go_up"
  62.                 elif filed[x+1 ][y]== 0:
  63.                     return "go_right"
  64.         if field[j][y] == -1:
  65.             break
  66.         if field[j][y] not in [-1, 0 ,1]:
  67.             return "fire_left"
  68.        
  69.    
  70.    
  71. #счёт пути до монет    
  72.     for i in range(y-1,-1,-1):
  73.         if field [x][i]==-1:
  74.             break
  75.         if field[x][i] == 1:
  76.             up_coin = abs(x-i)
  77.             break
  78.  
  79.     for a in range(x+1, width):
  80.         if field [a][y]==-1:
  81.             break
  82.         if field[a][y] == 1:
  83.             right_coin = abs(a-y)
  84.             break
  85.  
  86.     for b in range(x-1,-1,-1):
  87.         if field [b][y]==-1:
  88.             break
  89.         if field[b][y] == 1:
  90.             left_coin = abs(b-y)
  91.             break
  92.  
  93.     for d in range(y+1, height):
  94.         if field [x][d]==-1:
  95.             break
  96.         if field[x][d] == 1:
  97.             down_coin = abs(x-d)
  98.             break
  99.    
  100.     if up_coin == min([up_coin, left_coin, right_coin, down_coin, 999]):
  101.         if field [x][y-1]:
  102.             return "go_up"
  103.     if down_coin == min([up_coin, left_coin, right_coin, down_coin, 999]):
  104.         if field [x][y+1]:
  105.             return "go_down"
  106.     if left_coin == min([up_coin, left_coin, right_coin, down_coin, 999]):
  107.         if field [x-1][y]:
  108.             return "go_left"
  109.     if right_coin == min([up_coin, left_coin, right_coin, down_coin, 999]):
  110.         if field [x+1][y]:
  111.             return "go_right"
  112.     return random.choice(actions)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement