band = {0:' '} pos = 0 n = 0 zustand = 'z0' kopfbewegung = None tt = {('z0',' '):('z1','I','R'), ('z0','I'):('z1','I','L'), ('z1',' '):('z0','I','L'), ('z1','I'):('z2',' ','L'), ('z2',' '):('z0','I','S'), ('z2','I'):('z3','I','L'), ('z3',' '):('z3','I','R'), ('z3','I'):('z0',' ','R'),} # print(n,band,pos,zustand) # DEBUG while kopfbewegung != 'S': n = n + 1 gelesen = band.get(pos,' ') (zustand,zuschreiben,kopfbewegung) = tt.get((zustand,gelesen),('F','F','S')) band.update({pos:zuschreiben}) if kopfbewegung == 'L': pos = pos - 1 elif kopfbewegung == 'R': pos = pos + 1 # print(n,band,pos,zustand) # DEBUG Bandinhalt = ''.join([band.get(x) for x in sorted(band)]) anz = len(Bandinhalt.replace(' ','')) print(Bandinhalt,anz,n) PosInhalt = pos - min(sorted(band)) Position = ' '*PosInhalt+'^'+' '*(len(Bandinhalt)-PosInhalt-1) print(Position,pos)