Ejemplo n.º 1
0
        private void button1_Click(object sender, EventArgs e)
        {
            // initialiser

            robot = new Robot(Largeur);
            // état initial du robot
            robot.Direction = Direction.Nord;
            robot.X         = 0;
            robot.Y         = Largeur - 1;
            currentT        = 0;

            button3.Enabled = true;
            button2.Enabled = true;
            NbBonbons       = 0;
            Liste.Text      = null;

            // schéma de la pièce avec les murs représentées sous la forme d'un carré
            // En fait la pièce est torique dans ses deux dimensions
            // cela signifie que si on déborde d'un bord, on arrive sur le bord opposé
            // la direction du robot ne change évidemment pas
            piece    = new int[Largeur][];
            piece[0] = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            piece[1] = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            piece[2] = new int[] { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1 };
            piece[3] = new int[] { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 };
            piece[4] = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            piece[5] = new int[] { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 };
            piece[6] = new int[] { 0, 0, 1, 1, 1, 0, 1, 0, 0, 0 };
            piece[7] = new int[] { 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 };
            piece[8] = new int[] { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 };
            piece[9] = new int[] { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 };

            reseau = new KohonenMapRobot(256, 1.0, Piece.Width, Piece.Height);

            pasX = (int)(Piece.Width / Largeur);
            pasY = (int)(Piece.Height / Largeur);

            Graphics g = Piece.CreateGraphics();

            g.Clear(Color.White);

            DessinerMurs(g);
            DisposerBonbons(g, 5);
            DessinerRobot(g, robot);

            double[] senseurs = CapturerSenseurs(robot);

            Liste.Text += string.Format("Senseur: {0}/{1}/{2}", senseurs[0].ToString("0.0000;-0.0000"), senseurs[1].ToString("0.0000;-0.0000"), senseurs[2].ToString("0.0000;-0.0000")) + Environment.NewLine;
        }
Ejemplo n.º 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            // initialiser

            robot = new Robot(Largeur);
            // état initial du robot
            robot.Direction = Direction.Nord;
            robot.X = 0;
            robot.Y = Largeur - 1;
            currentT = 0;

            button3.Enabled = true;
            button2.Enabled = true;
            NbBonbons = 0;
            Liste.Text = null;

            // schéma de la pièce avec les murs représentées sous la forme d'un carré
            // En fait la pièce est torique dans ses deux dimensions
            // cela signifie que si on déborde d'un bord, on arrive sur le bord opposé
            // la direction du robot ne change évidemment pas
            piece = new int[Largeur][];
            piece[0] = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            piece[1] = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            piece[2] = new int[] { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1 };
            piece[3] = new int[] { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 };
            piece[4] = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            piece[5] = new int[] { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 };
            piece[6] = new int[] { 0, 0, 1, 1, 1, 0, 1, 0, 0, 0 };
            piece[7] = new int[] { 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 };
            piece[8] = new int[] { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 };
            piece[9] = new int[] { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 };

            reseau = new KohonenMapRobot(256, 1.0, Piece.Width, Piece.Height);

            pasX = (int)(Piece.Width / Largeur);
            pasY = (int)(Piece.Height / Largeur);

            Graphics g = Piece.CreateGraphics();
            g.Clear(Color.White);

            DessinerMurs(g);
            DisposerBonbons(g, 5);
            DessinerRobot(g, robot);

            double[] senseurs = CapturerSenseurs(robot);

            Liste.Text += string.Format("Senseur: {0}/{1}/{2}", senseurs[0].ToString("0.0000;-0.0000"), senseurs[1].ToString("0.0000;-0.0000"), senseurs[2].ToString("0.0000;-0.0000")) + Environment.NewLine;
        }