package combo;

public class CombinationLock {
	private boolean isOpen;
	private boolean hasFirstDigit;
	private int comboDigitHigh, comboDigitLow;
	
	public CombinationLock(int combo) {
		comboDigitLow = combo % 10;
		comboDigitHigh = combo / 10;
		
		hasFirstDigit = false;
		isOpen = false;
	}
	
	public  boolean isOpen() {
		return isOpen;
	}
	
	// Post-condition: Lock completely reset - as if no digits entered.
	public void close() {
		isOpen = false;
		hasFirstDigit = false;
	}
	
	public void enter(int digit) {
		if (hasFirstDigit) {
			if (digit == comboDigitLow) {
				isOpen = true;
			} else if (digit != comboDigitHigh) {
				hasFirstDigit = false;
			}
		} else if (digit == comboDigitHigh) {
			hasFirstDigit = true;
		}
	}
}

