public int CountSequencesFromKey(Key key, KeypadSequence sequence) { if (!sequence.IsValidSequence()) return 0; if (sequence.Length == _pathSize) return 1; int count = 0; var possibleMoves = this._moveStrategy.GetPossibleMoves(key); foreach (var move in possibleMoves) count += CountSequencesFromKey(move, _board.KeyPress(move, new KeypadSequence(sequence))); return count; }
public void test_sequence_with_more_than_2_vowels_is_invalid() { var sequence = new KeypadSequence(); sequence.Add(Key.A).Add(Key.B).Add(Key.E).Add(Key.I); Assert.IsFalse(sequence.IsValidSequence()); }
public void test_sequence_with_lessthan_2_vowels_is_valid() { var sequence = new KeypadSequence(); sequence.Add(Key.A).Add(Key.C).Add(Key.D); Assert.IsTrue(sequence.IsValidSequence()); }
public KeypadSequence(KeypadSequence copy) { _keySequence.AddRange(copy.Keys); }
public KeypadSequence KeyPress(Key k, KeypadSequence sequence) { sequence.Add(k); return sequence; }