Exemplo n.º 1
0
        private void btn_save_Click(object sender, EventArgs e) //enregistrement de la carte dans la base de données
        {
            makemap(15, 10);
            emp = getEmp();
            var cells = testcontext.casemap.Where(p => p.id_map == emp.id);

            foreach (var cellule in cells)
            {
                testcontext.casemap.Remove(cellule);
            }
            emp = new map
            {
                nom_map = txtBxNomMap.Text
            };
            foreach (Cell cell in getCells())
            {
                Console.WriteLine(cell.getId());
                casemap casemap = new casemap
                {
                    id_map = emp.id,
                    mur    = cell.getTraversable(),
                    depart = cell.getCellDep(),
                    fin    = cell.getCellEnd(),
                    boue   = cell.getBoue(),
                    piege  = cell.getPiege(),
                    map    = emp,
                    x      = cell.getX(),
                    y      = cell.getY()
                };


                testcontext.casemap.Add(casemap);
            }
            testcontext.SaveChanges();
        }
Exemplo n.º 2
0
        private void btn_save_Click(object sender, EventArgs e) //enregistrement de la carte dans la base de données
        {
            int wid = 15;
            int hgt = 10;

            CellWid = picMaze.ClientSize.Width / (wid + 2);
            CellHgt = picMaze.ClientSize.Height / (hgt + 2);
            if (CellWid > CellHgt)
            {
                CellWid = CellHgt;
            }
            else
            {
                CellHgt = CellWid;
            }
            Xmin = (picMaze.ClientSize.Width - wid * CellWid) / 2;
            Ymin = (picMaze.ClientSize.Height - hgt * CellHgt) / 2;
            makemap(15, 10);
            emp         = getEmp();
            emp.nom_map = txtBxNom.Text;
            if (txtBxNom.Text == "")
            {
                emp.nom_map = "Sans Titre";
            }
            var cells = testcontext.casemap.Where(p => p.id_map == emp.id);

            foreach (var cellule in cells)
            {
                testcontext.casemap.Remove(cellule);
            }
            foreach (Cell cell in getCells())
            {
                casemap casemap = new casemap
                {
                    id_map = emp.id,
                    mur    = cell.getTraversable(),
                    depart = cell.getCellDep(),
                    fin    = cell.getCellEnd(),
                    boue   = cell.getBoue(),
                    piege  = cell.getPiege(),
                    map    = emp,
                    x      = cell.getX(),
                    y      = cell.getY()
                };


                testcontext.casemap.Add(casemap);
            }
            emp.nom_map = txtBxNom.Text;
            testcontext.SaveChanges();
        }
Exemplo n.º 3
0
        private void loadMap() // permet le chargement de la carte a partir de la base de données
        {
            //taille du labyrinthe
            int wid = 10;
            int hgt = 15;

            CellWid = picMaze.ClientSize.Width / (wid + 2);
            CellHgt = picMaze.ClientSize.Height / (hgt + 2);
            if (CellWid > CellHgt)
            {
                CellWid = CellHgt;
            }
            else
            {
                CellHgt = CellWid;
            }
            Xmin = (picMaze.ClientSize.Width - wid * CellWid) / 2;
            Ymin = (picMaze.ClientSize.Height - hgt * CellHgt) / 2;
            arrayBoue.Clear();
            arraydepart.Clear();
            arrayfin.Clear();
            arrayPiege.Clear();
            arraymur.Clear();
            nodes = new Cell[hgt, wid];
            casemap casemap  = new casemap();
            var     products = testcontext.casemap.Where(p => p.id_map == idmap);
            map     emp      = new map();
            var     map      = testcontext.map.Where(p => p.id == idmap).First <map>();

            setEmp(map);
            txtBxNom.Text = map.nom_map;
            int cal  = 0;
            int cal2 = 0;

            foreach (var produit in products) //Défini le type des cases et ses coordonnées
            {
                Cell cell = new Cell(produit.x, produit.y);
                cell.setId(produit.id);
                cell.setTraversable(produit.mur);
                cell.setBoue(produit.boue);
                cell.setCellDep(produit.depart);
                cell.setCellEnd(produit.fin);
                cell.setPiege(produit.piege);

                if (produit.piege == true)
                {
                    arrayPiege.Add(cell);
                }
                if (produit.boue == true)
                {
                    arrayBoue.Add(cell);
                }
                if (produit.depart == true)
                {
                    startCell = cell;
                    arraydepart.Add(cell);
                }
                if (produit.fin == true)
                {
                    endCell = cell;
                    arrayfin.Add(cell);
                }
                if (produit.mur == false)
                {
                    arraymur.Add(cell);
                }
                if (cal == wid - 1)
                {
                    cal  = 0;
                    cal2 = cal2 + 1;
                }
                else
                {
                    cal = cal + 1;
                }

                if (cal2 == hgt)
                {
                    cal2 = 0;
                }
                nodes[cal2, cal] = cell;
            }

            setCells(nodes);


            for (int r = 0; r < hgt; r++) //Défini les voisins de chaque cases
            {
                for (int c = 0; c < wid; c++)
                {
                    if (r > 0)
                    {
                        if (nodes[r - 1, c].getTraversable())
                        {
                            nodes[r, c].Neighbors[Cell.North] = nodes[r - 1, c];
                            nodes[r, c].setVoisinNord(nodes[r - 1, c]);
                        }
                        else
                        {
                            nodes[r, c].Neighbors[Cell.North] = null;
                            nodes[r, c].setVoisinNord(null);
                        }
                    }
                    if (r < hgt - 1)
                    {
                        if (nodes[r + 1, c].getTraversable())
                        {
                            nodes[r, c].Neighbors[Cell.South] = nodes[r + 1, c];
                            nodes[r, c].setVoisiSud(nodes[r + 1, c]);
                        }
                        else
                        {
                            nodes[r, c].Neighbors[Cell.South] = null;
                            nodes[r, c].setVoisiSud(null);
                        }


                        if (c < wid - 1)
                        {
                            if (nodes[r + 1, c + 1].getTraversable())
                            {
                                nodes[r, c].setVoisinSudEst(nodes[r + 1, c + 1]);
                            }
                            else
                            {
                                nodes[r, c].setVoisinSudEst(null);
                            }
                            if (r > 0)
                            {
                                if (nodes[r - 1, c + 1].getTraversable())
                                {
                                    nodes[r, c].setVoisinNordEst(nodes[r - 1, c + 1]);
                                }
                                else
                                {
                                    nodes[r, c].setVoisinNordEst(null);
                                }
                            }
                        }
                        if (c > 0)
                        {
                            if (nodes[r + 1, c - 1].getTraversable())
                            {
                                nodes[r, c].setVoisinSudOuest(nodes[r + 1, c - 1]);
                            }
                            else
                            {
                                nodes[r, c].setVoisinSudOuest(null);
                            }
                            if (r > 0)
                            {
                                if (nodes[r - 1, c - 1].getTraversable())
                                {
                                    nodes[r, c].setVoisinNordOuest(nodes[r - 1, c - 1]);
                                }
                                else
                                {
                                    nodes[r, c].setVoisinNordOuest(null);
                                }
                            }
                        }
                    }
                    if (c > 0)
                    {
                        if (nodes[r, c - 1].getTraversable())
                        {
                            nodes[r, c].Neighbors[Cell.West] = nodes[r, c - 1];
                            nodes[r, c].setVoisinOuest(nodes[r, c - 1]);
                        }
                        else
                        {
                            nodes[r, c].Neighbors[Cell.West] = null;
                            nodes[r, c].setVoisinOuest(null);
                        }
                    }
                    if (c < wid - 1)
                    {
                        if (nodes[r, c + 1].getTraversable())
                        {
                            nodes[r, c].Neighbors[Cell.East] = nodes[r, c + 1];
                            nodes[r, c].setVoisinEst(nodes[r, c + 1]);
                        }
                        else
                        {
                            nodes[r, c].Neighbors[Cell.East] = null;
                            nodes[r, c].setVoisinEst(null);
                        }
                    }
                }
            }
            DisplayMaze(nodes);
        }
Exemplo n.º 4
0
        public void btn_load_Click(object sender, EventArgs e) // gère le chargement depuis la base de données
        {
            //taille du labyrinthe
            int wid = Int16.Parse(txtWidth.Text);
            int hgt = Int16.Parse(txtHeight.Text);

            CellWid = picMaze.ClientSize.Width / (wid + 2);
            CellHgt = picMaze.ClientSize.Height / (hgt + 2);
            if (CellWid > CellHgt)
            {
                CellWid = CellHgt;
            }
            else
            {
                CellHgt = CellWid;
            }
            Xmin = (picMaze.ClientSize.Width - wid * CellWid) / 2;
            Ymin = (picMaze.ClientSize.Height - hgt * CellHgt) / 2;
            arrayBoue.Clear();
            arraydepart.Clear();
            arrayfin.Clear();
            arrayPiege.Clear();
            arraymur.Clear();
            nodes = new Cell[hgt, wid];
            casemap casemap = new casemap();

            /*  var products = testcontext.casemap.Where(p => p.id_map == 35);
             * map emp = new map();
             * var map = testcontext.map.Where(p => p.id == 35).First<map>();*/

            int    idmap;
            String idmapstring;

            idmapstring = comboBox1.SelectedValue.ToString();
            idmap       = Convert.ToInt32(idmapstring);
            var products = testcontext.casemap.Where(p => p.id_map == idmap);
            map emp      = new map();
            var map      = testcontext.map.Where(p => p.id == idmap).First <map>();

            setEmp(map);

            int cal  = 0;
            int cal2 = 0;

            foreach (var produit in products)
            {
                Cell cell = new Cell(produit.x, produit.y);
                cell.setId(produit.id);
                Console.WriteLine(produit.id);
                Console.WriteLine(cell.getId());
                cell.setTraversable(produit.mur);
                cell.setBoue(produit.boue);
                cell.setCellDep(produit.depart);
                cell.setCellEnd(produit.fin);
                cell.setPiege(produit.piege);

                if (produit.piege == true)
                {
                    arrayPiege.Add(cell);
                }
                if (produit.boue == true)
                {
                    arrayBoue.Add(cell);
                }
                if (produit.depart == true)
                {
                    startCell = cell;
                    arraydepart.Add(cell);
                }
                if (produit.fin == true)
                {
                    endCell = cell;
                    arrayfin.Add(cell);
                }
                if (produit.mur == false)
                {
                    arraymur.Add(cell);
                }
                if (cal == wid - 1)
                {
                    cal  = 0;
                    cal2 = cal2 + 1;
                }
                else
                {
                    cal = cal + 1;
                }

                if (cal2 == hgt)
                {
                    cal2 = 0;
                }
                nodes[cal2, cal] = cell;
            }

            setCells(nodes);


            for (int r = 0; r < hgt; r++)
            {
                for (int c = 0; c < wid; c++)
                {
                    if (r > 0)
                    {
                        if (nodes[r - 1, c].getTraversable())
                        {
                            nodes[r, c].Neighbors[Cell.North] = nodes[r - 1, c];
                            nodes[r, c].setVoisinNord(nodes[r - 1, c]);
                        }
                        else
                        {
                            nodes[r, c].Neighbors[Cell.North] = null;
                            nodes[r, c].setVoisinNord(null);
                        }
                    }
                    if (r < hgt - 1)
                    {
                        if (nodes[r + 1, c].getTraversable())
                        {
                            nodes[r, c].Neighbors[Cell.South] = nodes[r + 1, c];
                            nodes[r, c].setVoisiSud(nodes[r + 1, c]);
                        }
                        else
                        {
                            nodes[r, c].Neighbors[Cell.South] = null;
                            nodes[r, c].setVoisiSud(null);
                        }


                        if (c < wid - 1)
                        {
                            if (nodes[r + 1, c + 1].getTraversable())
                            {
                                nodes[r, c].setVoisinSudEst(nodes[r + 1, c + 1]);
                            }
                            else
                            {
                                nodes[r, c].setVoisinSudEst(null);
                            }
                            if (r > 0)
                            {
                                if (nodes[r - 1, c + 1].getTraversable())
                                {
                                    nodes[r, c].setVoisinNordEst(nodes[r - 1, c + 1]);
                                }
                                else
                                {
                                    nodes[r, c].setVoisinNordEst(null);
                                }
                            }
                        }
                        if (c > 0)
                        {
                            if (nodes[r + 1, c - 1].getTraversable())
                            {
                                nodes[r, c].setVoisinSudOuest(nodes[r + 1, c - 1]);
                            }
                            else
                            {
                                nodes[r, c].setVoisinSudOuest(null);
                            }
                            if (r > 0)
                            {
                                if (nodes[r - 1, c - 1].getTraversable())
                                {
                                    nodes[r, c].setVoisinNordOuest(nodes[r - 1, c - 1]);
                                }
                                else
                                {
                                    nodes[r, c].setVoisinNordOuest(null);
                                }
                            }
                        }
                    }
                    if (c > 0)
                    {
                        if (nodes[r, c - 1].getTraversable())
                        {
                            nodes[r, c].Neighbors[Cell.West] = nodes[r, c - 1];
                            nodes[r, c].setVoisinOuest(nodes[r, c - 1]);
                        }
                        else
                        {
                            nodes[r, c].Neighbors[Cell.West] = null;
                            nodes[r, c].setVoisinOuest(null);
                        }
                    }
                    if (c < wid - 1)
                    {
                        if (nodes[r, c + 1].getTraversable())
                        {
                            nodes[r, c].Neighbors[Cell.East] = nodes[r, c + 1];
                            nodes[r, c].setVoisinEst(nodes[r, c + 1]);
                        }
                        else
                        {
                            nodes[r, c].Neighbors[Cell.East] = null;
                            nodes[r, c].setVoisinEst(null);
                        }
                    }
                }
            }
            DisplayMaze(nodes);
        }