void découverteauatique2(Unité2D u) { var list = new List <Unité2D>(); int I = u.I; int J = u.J; if (I < CotéMap - 1) { list.Add(matrice[I + 1, J, 0]); } if ((I < CotéMap - 1) && (J < CotéMap - 1)) { list.Add(matrice[I + 1, J + 1, 0]); } if (J < CotéMap - 1) { list.Add(matrice[I, J + 1, 0]); } if (I > 0) { list.Add(matrice[I - 1, J, 0]); } if (J > 0) { list.Add(matrice[I, J - 1, 0]); } if ((I > 0) && (J > 0)) { list.Add(matrice[I - 1, J - 1, 0]); } if ((I > 0) && (J < CotéMap - 1)) { list.Add(matrice[I - 1, J + 1, 0]); } if ((I < CotéMap - 1) && (J > 0)) { list.Add(matrice[I + 1, J - 1, 0]); } foreach (var unité2d in list) { if (unité2d.bombe == true) { if (unité2d.image != DicoTuiles[Motifs.drapeau]) { gameover = true; découvrelesbombes(u); unité2d.image = DicoTuiles[Motifs.bomberouge]; SonPerdu(); return; } } else // unité2d.image = DicoTuiles[Motifs.un]; { découverteauatique(unité2d); } } }
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ private void découvrelesbombes(Unité2D u) { foreach (var u2d in matrice) { if (u2d.bombe == true) { u2d.image = DicoTuiles[Motifs.bombe]; u.image = DicoTuiles[Motifs.bomberouge]; } } }
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ internal void creation_matrice() { matrice = new Unité2D[CotéMap, CotéMap, HauteurMap]; for (int k = 0; k < HauteurMap; k++) { for (int i = 0; i < CotéMap; i++) { for (int j = 0; j < CotéMap; j++) { var u = new Unité2D(); u.I = i; u.J = j; u.color = Colors.Red; u.image = DicoTuiles[Motifs.dalle3d]; matrice[i, j, k] = u; } } } }
void découverteauatique(Unité2D u) { var list = new List <Unité2D>(); int I = u.I; int J = u.J; if (I < CotéMap - 1) { list.Add(matrice[I + 1, J, 0]); } if ((I < CotéMap - 1) && (J < CotéMap - 1)) { list.Add(matrice[I + 1, J + 1, 0]); } if (J < CotéMap - 1) { list.Add(matrice[I, J + 1, 0]); } if (I > 0) { list.Add(matrice[I - 1, J, 0]); } if (J > 0) { list.Add(matrice[I, J - 1, 0]); } if ((I > 0) && (J > 0)) { list.Add(matrice[I - 1, J - 1, 0]); } if ((I > 0) && (J < CotéMap - 1)) { list.Add(matrice[I - 1, J + 1, 0]); } if ((I < CotéMap - 1) && (J > 0)) { list.Add(matrice[I + 1, J - 1, 0]); } int bombeslimitrohes = 0; foreach (var unité2d in list) { if (unité2d.bombe == true) { bombeslimitrohes++; } if (bombeslimitrohes == 0) { } } if (bombeslimitrohes == 0) { u.image = DicoTuiles[Motifs.zero]; u.découvert = true; foreach (var unité2d in list) { if (unité2d.bombe == true) { bombeslimitrohes++; } } } if (bombeslimitrohes == 1) { u.image = DicoTuiles[Motifs.un]; u.découvert = true; } if (bombeslimitrohes == 2) { u.image = DicoTuiles[Motifs.deux]; u.découvert = true; } if (bombeslimitrohes == 3) { u.image = DicoTuiles[Motifs.trois]; u.découvert = true; } if (bombeslimitrohes >= 4) { u.image = DicoTuiles[Motifs.quatre]; u.découvert = true; } if (bombeslimitrohes != 0) { return; } foreach (var unit in list) { if ((unit.bombe == false) && (unit.découvert == false)) { découverteauatique(unit); } } }