public MazeState(int iX, int iY, Direction d, MazeDomain md) { X = iX; Y = iY; CurrentDirection = d; m_mdMaze = md; }
static void Main(string[] args) { string path = System.IO.Directory.GetCurrentDirectory(); FileStream fs = new FileStream(path + "Debug.txt", FileMode.Create); Debug.Listeners.Add(new TextWriterTraceListener(Console.Out)); Debug.Listeners.Add(new TextWriterTraceListener(fs)); MazeDomain maze = new MazeDomain(path + "/Maze3.txt"); PointBasedValueIteration pbvi = new PointBasedValueIteration(maze); pbvi.PointBasedVI(100, 20); //MDPValueFunction v = new MDPValueFunction(maze); //v.ValueIteration(0.5); //RandomPolicy p0 = new RandomPolicy(maze); //MostLikelyStatePolicy p1 = new MostLikelyStatePolicy(v); //VotingPolicy p2 = new VotingPolicy(v); //QMDPPolicy p3 = new QMDPPolicy(v, maze); //double dADR1 = maze.ComputeAverageDiscountedReward(p1, 100, 100); //double dADR2 = maze.ComputeAverageDiscountedReward(p2, 100, 100); //double dADR3 = maze.ComputeAverageDiscountedReward(p3, 100, 100); double dADR4 = maze.ComputeAverageDiscountedReward(pbvi, 100, 100); MazeViewer viewer = new MazeViewer(maze); viewer.Start(); maze.SimulatePolicy(pbvi, 10, viewer); Debug.Close(); }
internal MazeViewer(MazeDomain maze) { InitializeComponent(); m_mdMaze = maze; Size = new Size(m_mdMaze.Width * SCALE + 50, 100 + (m_mdMaze.Height + 3) * SCALE); MazePictureBox.Size = new Size(m_mdMaze.Width * SCALE, (m_mdMaze.Height + 3) * SCALE); RefreshForm = new RefreshDelegate(RefreshFormMethod); HideForm = new HideDelegate(HideFormMethod); CurrentState = null; SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint | ControlStyles.SupportsTransparentBackColor | ControlStyles.AllPaintingInWmPaint, true); Active = false; m_bThreadRunning = false; CurretnUpdateState = null; }