using System; using System.Collections; using System.Collections.Generic; using YavscLib; namespace Yavsc.Models.IT.Modeling { public abstract class Code : ICode where TLetter : ILetter { IEnumerator IEnumerable.GetEnumerator() { throw new NotImplementedException(); } /// /// !a Count^3 task len /// /// public bool Validate() { foreach (var letter in this) { var word = this.CreateWord(letter); foreach (var other in this) { IWord first = word.Aggregate(other); foreach (var tierce in this) { var otherword = word.Aggregate(tierce); if (first.Equals(otherword)) return false; } } } return true; } public abstract IEnumerator GetEnumerator(); public abstract IWord CreateWord(TLetter letter); } }