fork download
  1. def acha_posicao(carac,lab):
  2. for i in range(len(lab)):
  3. for j in range(len(lab[0])):
  4. if lab[i][j] == carac:
  5. return (i,j)
  6. def mov_inim(lin,col,c_l,c_c,lab):
  7. lab[lin][col] = ' '
  8. lab[lin + c_l][col + c_c] = 'X'
  9. for lin in lab:
  10. for e in lin:
  11. if e == '*':
  12. return False
  13. return True
  14. def movimento_valido(lin,col,lab):
  15. if col > ((len(lab[0])) -1) or lin < 0 or col < 0 or lin > len(lab) or lab[lin][col] == 'P': return False
  16. return True
  17. def move_inimigo(lab):
  18. lin_I,col_I = acha_posicao('X', lab)
  19. lin_J,col_J = acha_posicao('*',lab)
  20. if lin_I == lin_J:
  21. if col_I < col_J and movimento_valido(lin_I,col_I +1,lab):
  22. return mov_inim(lin_I,col_I,0,1,lab)
  23. elif col_I > col_J and movimento_valido(lin_I,col_I - 1,lab) :
  24. return mov_inim(lin_I,col_I,0,-1,lab)
  25. elif movimento_valido(lin_I + 1,col_I + 1,lab):
  26. return mov_inim(lin_I,col_I,+1,0,lab)
  27. elif movimento_valido(lin_I - 1,col_I -1,lab):
  28. return mov_inim(lin_I,col_I,-1,0,lab)
  29. elif col_I == col_J:
  30. if lin_I > lin_J and movimento_valido(lin_I - 1 ,col_I,lab):
  31. return mov_inim(lin_I,col_I,-1,0,lab)
  32. elif lin_I < lin_J and movimento_valido(lin_I + 1,col_I,lab):
  33. return mov_inim(lin_I,col_I,1,0,lab)
  34. elif movimento_valido(lin_I + 1,col_I + 1,lab):
  35. return mov_inim(lin_I,col_I,+1,0,lab)
  36. elif movimento_valido(lin_I - 1,col_I -1,lab):
  37. return mov_inim(lin_I,col_I,-1,0,lab)
Success #stdin #stdout 0.02s 4672KB
stdin
Standard input is empty
stdout
Standard output is empty