private void ShowBtn_Click(object sender, EventArgs e) { if (A == null) { return; } GridWorldForm2 sf = new GridWorldForm2(gwMap, blockSize, A, start, goal); sf.Show(); }
private void beginBtn_Click(object sender, EventArgs e) { if (exeThread != null && exeThread.IsAlive) { return; } InSearchState(); hcal.BlockSize = blockSize; if (radioButton1.Checked) { A = new AWA(new ANodeSucGen(new GridWorld(gwMap, blockSize)), hcal, 1); start = new ANode(); goal = new ANode(); } else if (radioButton3.Checked) { A = new AWinA(new ANodeSucGen(new GridWorld(gwMap, blockSize)), hcal); start = new ANode(); goal = new ANode(); } else if (radioButton2.Checked) { A = new Astar(new ANodeSucGen(new GridWorld(gwMap, blockSize)), hcal); start = new ANode(); goal = new ANode(); } else if (radioButton5.Checked) { A = new QLearning(new GridWorld(gwMap, blockSize), 0.5, 0.99, 0.2); start = new QNode(); goal = new QNode(); } else if (radioButton4.Checked) { A = new UCT(new UCTNodeSucGen(new GridWorld(gwMap, blockSize)), 2, 30); start = new UCTNode(); goal = new UCTNode(); } else if (radioButton6.Checked) { A = new SARSA(new GridWorld(gwMap, blockSize), 0.5, 0.99, 0.2); start = new QNode(); goal = new QNode(); } start.State = new GridWorldState(StartX, StartY); start.UsedOperator = new DefaultOperator("Init"); start.Parent = null; goal.State = new GridWorldState(GoalX, GoalY); goal.UsedOperator = new DefaultOperator("Init"); goal.Parent = null; if (!SetParameters(A)) { ReadyState(); return; } A.InitStates(start, goal); exeThread = new Thread(() => A.Execute()); exeThread.Start(); while (exeThread.IsAlive) { Application.DoEvents(); } StoppedState(); GridWorldForm2 sf = new GridWorldForm2(gwMap, blockSize, A, start, goal); sf.Show(); }