public Form1()
        {
            IntPtr SaveFilter = SetUnhandledExceptionFilter(IntPtr.Zero);

            InitializeComponent();
            SetUnhandledExceptionFilter(SaveFilter);
            // set position
            this.Left = 100;
            this.Top  = 100;
            // assign update delegate
            updateMethod = update;
            // setup icons
            iconSuccess       = loadRes("success.png");
            iconFailure       = loadRes("failure.png");
            iconUnknown       = loadRes("unknown.png");
            line              = loadRes("line.bmp");
            pictureLine.Image = line;
            // setup mazes
            bitmapMazeRedEmpty = loadRes("red_maze_empty.png");
            getScan(bitmapMazeRedEmpty, mazeRedEmpty);
            bitmapMazeLightblueEmpty = loadRes("lightblue_maze_empty.png");
            getScan(bitmapMazeLightblueEmpty, mazeLightblueEmpty);
            bitmapMazeBrownEmpty = loadRes("brown_maze_empty.png");
            getScan(bitmapMazeBrownEmpty, mazeBrownEmpty);
            // setup picture init boxes
            pictureInitBoxes.AddMultiple(pictureInit32Bit, pictureInitFoundGame, pictureInitLocated, pictureFrameRate);
            // reset
            reset();
            // catch close event
            FormClosing += new FormClosingEventHandler(ClosingEvent);
            // checkboxes
            checkBoxAutoPlay.Checked   = (bool)settings["Autoplay"];
            checkBoxVisualizer.Checked = (bool)settings["Visualizer"];
            // error check highscore
            if (((int)settings["Highscore"]) % 10 != 0)
            {
                settings["Highscore"] = 0;
                settings.Save();
            }
            // ai selection
            comboBoxAI.AutoCompleteSource = AutoCompleteSource.ListItems;
            comboBoxAI.AutoCompleteMode   = AutoCompleteMode.SuggestAppend;
            comboBoxAI.Items.Add(new AIItem("None", null));
            //comboBoxAI.Items.Add(new AIItem("RandomPac (Orig)", typeof(Pacman.Implementations.RandomPac)));
            //comboBoxAI.Items.Add(new AIItem("SmartPac (Orig)", typeof(Pacman.Implementations.SmartPac)));
            //comboBoxAI.Items.Add(new AIItem("SmartDijkstraPac (Orig)", typeof(Pacman.Implementations.SmartDijkstraPac)));

            foreach (string s in Directory.GetFiles(@"../Controllers/"))
            {
                if (Path.GetExtension(s) == ".dll")
                {
                    string   path  = Path.GetFullPath(s);
                    Assembly dll   = Assembly.LoadFile(path);
                    Type[]   types = dll.GetTypes();
                    foreach (Type t in types)
                    {
                        if (t.BaseType == typeof(BasePacman))
                        {
                            comboBoxAI.Items.Add(new AIItem(t.ToString(), t));
                        }
                    }
                }
            }

            foreach (object o in comboBoxAI.Items)
            {
                AIItem i = o as AIItem;
                if (i.ToString() == (string)settings["SelectedAI"])
                {
                    comboBoxAI.SelectedItem = i;
                    break;
                }
            }
        }
 private void comboBoxAI_SelectedIndexChanged(object sender, EventArgs e)
 {
     selectedAI             = (AIItem)comboBoxAI.SelectedItem;
     settings["SelectedAI"] = comboBoxAI.SelectedItem.ToString();
     settings.Save();
 }