fork(1) download
  1. def vaiCavalo( origem, destino ):
  2. casasTestadas = [[False]*8 for i in range(8)]
  3. passos = [origem+[[]]]
  4.  
  5. while True:
  6. proximosPassos = []
  7. for passo in passos:
  8. for movimento in [[-1,-2],[-2,-1],[-2,1],[-1,2],[1,2],[2,1],[2,-1],[1,-2]]:
  9. x,y = passo[0]+movimento[0], passo[1]+movimento[1]
  10. if [x,y] == destino:
  11. return passo[2]+[[x,y]]
  12. if 0 <= x < 8 and 0 <= y < 8 and not casasTestadas[x][y]:
  13. proximosPassos.append([x,y,passo[2]+[[x,y]]])
  14. casasTestadas[x][y] = True
  15. passos = proximosPassos
  16.  
  17. print("Caminho feito:\n", vaiCavalo([1,1],[7,7]))
Success #stdin #stdout 0.01s 9992KB
stdin
Standard input is empty
stdout
Caminho feito:
 [[2, 3], [3, 5], [5, 6], [7, 7]]