Documentos de Académico
Documentos de Profesional
Documentos de Cultura
V2 Sensitive
V2 Sensitive
"""
Spyder Editor
plt.show(block=False)
tmz = 6
sala = np.zeros((tmz,tmz))
for x in range(0,(len(sala))):
for y in range(0,(len(sala[0]))):
if (x == 0):
sala[x][y] = 1
if (x == (len(sala)-1)):
sala[x][y] = 1
if (y == 0) :
sala[x][y] = 1
if (y == (len(sala[0])-1)):
sala[x][y] = 1
posAPAy = 1
posAPAx = 1
sugeiraO = 0
for x in range(1,(len(sala)-1)):
for y in range(1,(len(sala[0])-1)):
sala[x][y] = random.randint(0,1)*2
for x in range(1,(len(sala)-1)):
for y in range(1,(len(sala[0])-1)):
if sala[x][y] == 2:
sugeiraO += 1
cont = 0
teste01 = sala.copy()
print(teste01)
exibir(sala)
respostateste = []
resposta = []
respostaO = []
#1 baixa
#2 sobe
#3 esquerda
#4 direita
#5 limpa
aCao = 9999
aCaoNOK = 1
posAPAx1 = 1
posAPAy1 = 1
print("sugeira = ",sugeiraO)
resposta.clear()
respostaO.clear()
primeira = 1
z=0
while z<100000:
#inicio teste
#print(z)
z = z+1
teste01 = sala.copy()
sujo = 1
posAPAx1 = 1
posAPAy1 = 1
posAPAy = 1
posAPAx = 1
resposta.clear()
while sujo:
#exibir(teste01)
cont +=1
if teste01[posAPAx][posAPAy] == 2:
aCao = 5
else:
aCaoNOK = 1
while (aCaoNOK):
#sensitivo
aCao1 = 1
if aCao1 == 1 and aCaoNOK:
posAPAx1 = posAPAx
posAPAy1 = posAPAy +1
if (teste01[posAPAx1][posAPAy1] == 2):
aCao = aCao1
aCaoNOK = 0
aCao1 = 2
if aCao1 == 2 and aCaoNOK:
posAPAx1 = posAPAx
posAPAy1 = posAPAy -1
if (teste01[posAPAx1][posAPAy1] == 2):
aCao = aCao1
aCaoNOK = 0
aCao1 = 3
if aCao1 == 3 and aCaoNOK:
posAPAx1 = posAPAx -1
posAPAy1 = posAPAy
if (teste01[posAPAx1][posAPAy1] == 2):
aCao = aCao1
aCaoNOK = 0
aCao1 = 4
if aCao1 == 4 and aCaoNOK:
posAPAx1 = posAPAx +1
posAPAy1 = posAPAy
if (teste01[posAPAx1][posAPAy1] == 2):
aCao = aCao1
aCaoNOK = 0
if aCaoNOK:
aCao1 = random.randint(1,4)
if aCao1 == 1:
posAPAx1 = posAPAx
posAPAy1 = posAPAy +1
if aCao1 == 2:
posAPAx1 = posAPAx
posAPAy1 = posAPAy -1
if aCao1 == 3:
posAPAx1 = posAPAx -1
posAPAy1 = posAPAy
if aCao1 == 4:
posAPAx1 = posAPAx +1
posAPAy1 = posAPAy
if teste01[posAPAx1][posAPAy1] != 1:
aCao = aCao1
aCaoNOK = 0
if aCao !=5:
resposta.append(aCao)
if aCao == 5:
teste01[posAPAx][posAPAy] = 0
if aCao == 4:
posAPAx +=1
if aCao == 3:
posAPAx -=1
if aCao == 2:
posAPAy -= 1
if aCao == 1:
posAPAy += 1
sugeira = 0
for x in range(1,(len(teste01)-1)):
for y in range(1,(len(teste01[0])-1)):
if teste01[x][y] == 2:
sugeira += 1
#print(sugeira)
#print(cont)
if sugeira == 0:
sujo=0
if primeira ==1:
primeira = 0
respostaO = resposta.copy()
if len(resposta)<len(respostaO):
print("resposta atual =",len(resposta))
print("resposta melhor =",len(respostaO))
respostaO = resposta.copy()
resposta.clear()
#print("resposta atual limpa=",len(resposta))
if ((len(respostaO))<(sugeiraO+1)):
z = 100010
print("saiu pelo minimo x =", z, "resposta = ",len(respostaO),"sujeira =
",sugeiraO)
posAPAx = 1
posAPAy = 1
exibir(sala)
print("sugeira = ",sugeiraO)
print("resposta",respostaO)
print("tamanho resposta",len(respostaO))
print(sala,"\n\n")
print(teste01,"\n\n")
aCao = 0
if sala[posAPAx][posAPAy] == 2:
aCao = 5
if aCao == 5:
sala[posAPAx][posAPAy] = 0
for x in range(0,(len(respostaO))):
aCao = respostaO[x]
if aCao == 4:
posAPAx +=1
if aCao == 3:
posAPAx -=1
if aCao == 2:
posAPAy -= 1
if aCao == 1:
posAPAy += 1
if sala[posAPAx][posAPAy] == 2:
aCao = 5
if aCao == 5:
sala[posAPAx][posAPAy] = 0
exibir(sala)
exibir(sala)