11from rich .console import Console
22from rich .text import Text
3- from enigmapython .RotatingReflector import RotatingReflector
3+
4+ from enigmapython .RotatingReflector import RotatingReflector
45
56class XRay ():
67 @staticmethod
@@ -21,9 +22,13 @@ def render_enigma_xray(enigma):
2122
2223 rotor_walls_top = " " .join (["+-----+" ] * rotor_count )
2324
24- rotors_positions = " " .join (["{:02}" .format (enigma .rotors [i ].position ) for i in range (rotor_count - 1 , - 1 , - 1 )])
25+ rotors_positions = " " .join (["{} ({:02})" .format (enigma .alphabet_list [enigma .rotors [i ].position ].upper (),enigma .rotors [i ].position ) for i in range (rotor_count - 1 , - 1 , - 1 )])
26+
27+ rotors_rings = " " .join (["{} ({:02})" .format (enigma .alphabet_list [enigma .rotors [i ].ring ].upper (),enigma .rotors [i ].ring ) for i in range (rotor_count - 1 , - 1 , - 1 )])
28+
29+ reflector_ring = ""
2530
26- rotors_rings = " " .join (["{:02} " .format (enigma .rotors [i ].ring ) for i in range (rotor_count - 1 , - 1 , - 1 )])
31+ rotor_walls_position = " " .join (["| {} | " .format (enigma .alphabet_list [ enigma . rotors [i ].position ]. upper () ) for i in range (rotor_count - 1 , - 1 , - 1 )])
2732
2833 rotor_walls = " " .join (["| |" ] * rotor_count )
2934
@@ -42,17 +47,17 @@ def render_enigma_xray(enigma):
4247 { rotor_numbers }
4348 +-----+ { rotor_walls_top } +-----+ +-----+
4449 | | { rotor_walls } | | | |
45- | +--|--<--{ rotor_wiring_top } |-----|--<--|-----|----< { enigma .journal [- 1 ]['input_char' ] if len (enigma .journal ) >= 1 else ' ' } <-- Key
50+ | +--|--<--{ rotor_wiring_top } |-----|--<--|-----|----< { enigma .journal [- 1 ]['input_char' ] if len (enigma .journal ) >= 1 else ' ' } <-- Key ⌨️
4651 | | { rotor_walls_forward } | { enigma .etw .journal [- 2 ]['output_char' ] if len (enigma .etw .journal ) >= 2 else ' ' } | | { enigma .plugboard .journal [- 2 ]['output_char' ] if len (enigma .plugboard .journal ) >= 2 else ' ' } | |
4752 | | | { rotor_walls } | | | |
4853 | | | { rotor_walls } | | | |
4954 | | | { enigma .reflector .journal [- 1 ]['output_char' ] if len (enigma .reflector .journal ) >= 1 else ' ' } | { rotor_walls_backward } | { enigma .etw .journal [- 1 ]['output_char' ] if len (enigma .etw .journal ) >= 2 else ' ' } | |
50- | +--|-->--{ rotor_wiring_bottom } |-----|-->--|-----|----> { enigma .journal [- 1 ]['output_char' ] if len (enigma .journal ) >= 1 else ' ' } --> Lamp
55+ | +--|-->--{ rotor_wiring_bottom } |-----|-->--|-----|----> { enigma .journal [- 1 ]['output_char' ] if len (enigma .journal ) >= 1 else ' ' } --> Lamp 💡
5156 | | { rotor_walls } | | | |
5257 +-----+ { rotor_walls_bottom } +-----+ +-----+
5358
54- Pos.: { "{:02}" .format (enigma .reflector .position ) if isinstance (enigma .reflector , RotatingReflector ) else ' ' } { rotors_positions }
55- Ring: { rotors_rings }
59+ Pos.: { "{} ({ :02}) " .format (enigma .alphabet_list [ enigma . reflector .position ]. upper (), enigma . reflector . position ) if isinstance (enigma .reflector , RotatingReflector ) else ' N/A ' } { rotors_positions }
60+ Ring: { "{} ({:02})" . format ( enigma . alphabet_list [ enigma . reflector . ring ]. upper (), enigma . reflector . ring ) } { rotors_rings }
5661 """
5762 console .print (Text (diagram , style = "bold" ))
5863 return Text (diagram , style = "bold" )
0 commit comments