What to do Next
After the code is working, what to do next.
- Remove redundant code. There is a lot of redundant/useless code
in the python files (*.py). It is there because I did a lot of
tinkering with code while figuring out what I wanted to do.
As an example, with a little re-structuring multiple global
variables could be eliminated.
- Cleanup/re-structure the code. For example,
- Eliminate the EnigmaRotor class?
- Move more functionality into the EnigmaRotor class?
- Add help information to the GUI?
- Make a better GUI
- Create documentation. (Use Pydoc for the Python class interface?)
- Currently rotor lists contain absolute index values. Change them to
relative index values. (Relative to the current index +N or – N?)
Also use pop/append to rotate a rotor (list)?
For example: next_rotor_idx = (current_rotor_idx + list[current_rotor_idx]) % list_length
- Create a program to encrypt/decrypt a file.
What do you do with characters not in the alphabet? New-line? Carriage-return?
- Create an expanded alphabet. For example, add the characters
' ', '\n', '\r', and others. (perhaps lowercase?)
(remember there must be a even number of characters in the alphabet.)
- Create a software enigma machine that allow a character to substitute itself.
(Bypass the hardware limitation.)
- Output Morse code? Input Morse code? (What is a Numbers Station?)
- Create a GUI that somehow simulates "lighting a lamps".
(Actual hardware light bulbs? Seven segment display?)
- Create an Enigma Machine that can encrypt/decrypt binary files/data.
(split bytes into nibbles? base64 binary-to-text encoding?)