예제 #1
0
 public STbSimulator(STb <F, T, S> stb)
 {
     this.stb                   = stb;
     this.exploredSteps         = new Dictionary <int, Dictionary <Tuple <T, T>, Tuple <int, T> > >();
     this.moves                 = new Dictionary <int, List <Tuple <ConsList <bool>, BaseRule <T>, Move <Rule <T> > > > >();
     this.final_moves           = new Dictionary <int, List <Tuple <ConsList <bool>, BaseRule <T>, Move <Rule <T> > > > >();
     this.uncovered_moves       = new List <Tuple <ConsList <bool>, BaseRule <T>, Move <Rule <T> > > >();
     this.uncovered_final_moves = new List <Tuple <ConsList <bool>, BaseRule <T>, Move <Rule <T> > > >();
     foreach (var q in stb.States)
     {
         moves[q] = new List <Tuple <ConsList <bool>, BaseRule <T>, Move <Rule <T> > > >();
         moves[q].AddRange(stb.EnumerateNonFinalMovesWithDirections(q));
         final_moves[q] = new List <Tuple <ConsList <bool>, BaseRule <T>, Move <Rule <T> > > >();
         final_moves[q].AddRange(stb.EnumerateFinalMovesWithDirections(q));
     }
 }