band = {0:' '} pos = 0 n = 0 zustand = '1' kopfbewegung = None tt = {('1',' '):('2','I','R'), ('1','I'):('3',' ','L'), ('2',' '):('3','I','R'), ('2','I'):('4','I','R'), ('3',' '):('1','I','L'), ('3','I'):('2',' ','R'), ('4',' '):('5',' ','R'), ('4','I'):('1','I','S'), ('5',' '):('3','I','L'), ('5','I'):('1','I','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)