@zerix: Bist du sicher, dass das richtig ist? Denn laut Aufgabe heisst es:
Aber durch dein rb() und rf() ist mir erst klar geworden, dass die Rotation auch in die andere Richtung gehen kann - vielleicht ist das ja in der Aufgabenstellung mit "jeweils in umgekehrter Richtung" gemeint. Dann hiesse das, dass die Walzen bei Eingabe eines einzigen Buchstabens in zwei verschiedene Richtungen drehen (können). In der Umsetzung erhöht das die Anzahl zu berücksichtigender Möglichkeiten; bisher hatten meine Walzen nur die Vorwärts-Richtung gekannt.
rb ist rückwärts rotieren. Das ist für Walze 1 und 2 gegeben, in welche Richtung Walze 3 rotiert ist gar nicht angegeben, d.h. sie könnte in die andere Richtung rotieren.
Nein, das "in umgekehrter Richtung" bedeutet was anderes.
Wenn man W verschlüsseln möchte, wird bei Walze 1 an Stelle 'W' geschaut (W1['W']). Beim Rückweg wird dann der Buchstabe der Umkehrrolle genommen, bspw. 'W' und es wird dann geschaut, wo steht das 'W' und dann wird mit den jeweiligen Index weitergemacht. Das wäre in Grundstellung das 'N'. Das heißt bei Walze 3 steht am Index 'N' das 'W'. W3['N'] = 'W'. Mit dem 'N' geht man dann zur Walze 2 und macht das dort mit den 'N'.
Viele Grüße
Sascha