Allow turning on/off the rotor advance
This commit is contained in:
		
							parent
							
								
									f6f870d7dd
								
							
						
					
					
						commit
						700ad655c2
					
				
					 1 changed files with 5 additions and 1 deletions
				
			
		| 
						 | 
					@ -14,6 +14,8 @@ class Machine {
 | 
				
			||||||
    let reflector: Reflector
 | 
					    let reflector: Reflector
 | 
				
			||||||
    let plugboard: Plugboard
 | 
					    let plugboard: Plugboard
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    var rotorAdvanceEnabled: Bool = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    init(rotors: [Rotor], reflector: Reflector, plugboard: Plugboard) {
 | 
					    init(rotors: [Rotor], reflector: Reflector, plugboard: Plugboard) {
 | 
				
			||||||
        self.rotors = rotors
 | 
					        self.rotors = rotors
 | 
				
			||||||
        self.reflector = reflector
 | 
					        self.reflector = reflector
 | 
				
			||||||
| 
						 | 
					@ -21,7 +23,9 @@ class Machine {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    func encode(c: Character) throws -> Character {
 | 
					    func encode(c: Character) throws -> Character {
 | 
				
			||||||
        advanceRotors()
 | 
					        if rotorAdvanceEnabled {
 | 
				
			||||||
 | 
					            advanceRotors()
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        var output = c
 | 
					        var output = c
 | 
				
			||||||
        output = try plugboard.encode(output)
 | 
					        output = try plugboard.encode(output)
 | 
				
			||||||
        for rotor in rotors.reverse() {
 | 
					        for rotor in rotors.reverse() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue