def acha_posicao(carac,lab):
for i in range(len(lab)):
for j in range(len(lab[0])):
if lab[i][j] == carac:
return (i,j)
def mov_inim(lin,col,c_l,c_c,lab):
lab[lin][col] = ' '
lab[lin + c_l][col + c_c] = 'X'
for lin in lab:
for e in lin:
if e == '*':
return False
return True
def movimento_valido(lin,col,lab):
if col > ((len(lab[0])) -1) or lin < 0 or col < 0 or lin > len(lab) or lab[lin][col] == 'P': return False
return True
def move_inimigo(lab):
lin_I,col_I = acha_posicao('X', lab)
lin_J,col_J = acha_posicao('*',lab)
if lin_I == lin_J:
if col_I < col_J and movimento_valido(lin_I,col_I +1,lab):
return mov_inim(lin_I,col_I,0,1,lab)
elif col_I > col_J and movimento_valido(lin_I,col_I - 1,lab) :
return mov_inim(lin_I,col_I,0,-1,lab)
elif movimento_valido(lin_I + 1,col_I + 1,lab):
return mov_inim(lin_I,col_I,+1,0,lab)
elif movimento_valido(lin_I - 1,col_I -1,lab):
return mov_inim(lin_I,col_I,-1,0,lab)
elif col_I == col_J:
if lin_I > lin_J and movimento_valido(lin_I - 1 ,col_I,lab):
return mov_inim(lin_I,col_I,-1,0,lab)
elif lin_I < lin_J and movimento_valido(lin_I + 1,col_I,lab):
return mov_inim(lin_I,col_I,1,0,lab)
elif movimento_valido(lin_I + 1,col_I + 1,lab):
return mov_inim(lin_I,col_I,+1,0,lab)
elif movimento_valido(lin_I - 1,col_I -1,lab):
return mov_inim(lin_I,col_I,-1,0,lab)
ZGVmIGFjaGFfcG9zaWNhbyhjYXJhYyxsYWIpOiAKCWZvciBpIGluIHJhbmdlKGxlbihsYWIpKToKCQlmb3IgaiBpbiByYW5nZShsZW4obGFiWzBdKSk6CgkJCWlmIGxhYltpXVtqXSA9PSBjYXJhYzoKCQkJCXJldHVybiAoaSxqKQpkZWYgbW92X2luaW0obGluLGNvbCxjX2wsY19jLGxhYik6ICAKCWxhYltsaW5dW2NvbF0gPSAnICcKCWxhYltsaW4gKyBjX2xdW2NvbCArIGNfY10gPSAnWCcKCWZvciBsaW4gaW4gbGFiOgoJCWZvciBlIGluIGxpbjoKCQkJaWYgZSA9PSAnKic6CgkJCQlyZXR1cm4gRmFsc2UKCXJldHVybiBUcnVlCmRlZiBtb3ZpbWVudG9fdmFsaWRvKGxpbixjb2wsbGFiKToKCWlmIGNvbCA+ICgobGVuKGxhYlswXSkpIC0xKSBvciBsaW4gPCAwIG9yIGNvbCA8IDAgb3IgbGluICA+IGxlbihsYWIpIG9yIGxhYltsaW5dW2NvbF0gPT0gJ1AnOiByZXR1cm4gRmFsc2UJCQoJcmV0dXJuIFRydWUKZGVmIG1vdmVfaW5pbWlnbyhsYWIpOgoJbGluX0ksY29sX0kgPSBhY2hhX3Bvc2ljYW8oJ1gnLCBsYWIpCglsaW5fSixjb2xfSiA9IGFjaGFfcG9zaWNhbygnKicsbGFiKQoJaWYgbGluX0kgPT0gbGluX0o6CgkJaWYgY29sX0kgPCBjb2xfSiBhbmQgbW92aW1lbnRvX3ZhbGlkbyhsaW5fSSxjb2xfSSArMSxsYWIpOgoJCQlyZXR1cm4gbW92X2luaW0obGluX0ksY29sX0ksMCwxLGxhYikKCQllbGlmIGNvbF9JID4gY29sX0ogYW5kIG1vdmltZW50b192YWxpZG8obGluX0ksY29sX0kgLSAxLGxhYikgOgoJCQlyZXR1cm4gbW92X2luaW0obGluX0ksY29sX0ksMCwtMSxsYWIpCgkJZWxpZiBtb3ZpbWVudG9fdmFsaWRvKGxpbl9JICsgMSxjb2xfSSArIDEsbGFiKToKCQkJcmV0dXJuIG1vdl9pbmltKGxpbl9JLGNvbF9JLCsxLDAsbGFiKQoJCWVsaWYgbW92aW1lbnRvX3ZhbGlkbyhsaW5fSSAtIDEsY29sX0kgLTEsbGFiKToKCQkJcmV0dXJuIG1vdl9pbmltKGxpbl9JLGNvbF9JLC0xLDAsbGFiKQoJZWxpZiBjb2xfSSA9PSBjb2xfSjoKCQlpZiBsaW5fSSA+IGxpbl9KIGFuZCBtb3ZpbWVudG9fdmFsaWRvKGxpbl9JIC0gMSAsY29sX0ksbGFiKToKCQkJcmV0dXJuIG1vdl9pbmltKGxpbl9JLGNvbF9JLC0xLDAsbGFiKQoJCWVsaWYgbGluX0kgPCBsaW5fSiBhbmQgbW92aW1lbnRvX3ZhbGlkbyhsaW5fSSArIDEsY29sX0ksbGFiKToKCQkJcmV0dXJuIG1vdl9pbmltKGxpbl9JLGNvbF9JLDEsMCxsYWIpCgkJZWxpZiBtb3ZpbWVudG9fdmFsaWRvKGxpbl9JICsgMSxjb2xfSSArIDEsbGFiKToKCQkJcmV0dXJuIG1vdl9pbmltKGxpbl9JLGNvbF9JLCsxLDAsbGFiKQoJCWVsaWYgbW92aW1lbnRvX3ZhbGlkbyhsaW5fSSAtIDEsY29sX0kgLTEsbGFiKToKCQkJcmV0dXJuIG1vdl9pbmltKGxpbl9JLGNvbF9JLC0xLDAsbGFiKQk=