示例#1
0
        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);
                }
            }
        }
示例#2
0
        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        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];
                }
            }
        }
示例#3
0
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 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;
             }
         }
     }
 }
示例#4
0
        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);
                }
            }
        }