public MasterMind(int pegs, int colors)
 {
     config = new Config(pegs, colors);
     root = new RootNode.RootGrade((new RootNode(config)));
     currentPos = root;
 }
 public virtual void addGradedMove(int[] pegs, int whites, int blacks)
 {
     MoveNode tmpMove = currentPos.addSubMove(config.makePegSet(pegs));
     currentPos = tmpMove.addSubGrade(config.array2id[blacks][whites]);
 }
 /* Functionality Methods */
 public virtual void selectGrade(int blacks, int whites)
 {
     currentPos = currentPos.followingMoves.GetEnumerator().Current.pruneSubGrades(config.array2id[blacks][whites]);
 }