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(); }
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(); }
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); }
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); }