def kasSees(koht): if koht[0]<'a': return False if koht[0]>'h': return False if koht[1]<'1': return False if koht[1]>'8': return False return True def tahenihe(taht, nihe): return chr(ord(taht)+nihe) def leiaKaigud(koht): v=[] for samm1 in [-2, 2]: for samm2 in [-1, 1]: uus=tahenihe(koht[0], samm1)+tahenihe(koht[1], samm2) if kasSees(uus): v.append(uus) uus=tahenihe(koht[0], samm2)+tahenihe(koht[1], samm1) if kasSees(uus): v.append(uus) return v algkoht="f1" sihtkoht="f3" etturid=["d2", "e2", "f2"] leitud=[[algkoht, 0, ""]] uuritud=[] tagasitee={} while leitud: uuritav=leitud[0] leitud=leitud[1:] kohad=leiaKaigud(uuritav[0]) for koht in kohad: if koht not in leitud+uuritud+etturid: leitud.append([koht, uuritav[1]+1, uuritav[0]]) tagasitee[koht]=uuritav[0] if koht==sihtkoht: print("kohal") break uuritud.append(uuritav[0]) #print(leiaKaigud("b2")) #print(uuritud) koht=sihtkoht while koht!=algkoht: print(koht, end="-") koht=tagasitee[koht] print(algkoht) #print(tagasitee)