none
JeuDémineu RRS feed

  • Question

  • En effet voici le code du Jeu: J'aimerais avoir des réponse plus explicites sur les commentaires dans le code.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace JeuDémineur
    {
        class Program
        {
            static void Main(string[] args)
            {
                string[] nivo1 = { "Débutant", "Intermédiaire", "Avancé" };
                int[] nivo2 = { 10, 40, 99 };
                int niv = 0;
                int mines, nbmines = 0, lin = 0, col = 0;

                choisiNiveau(ref niv);
                Console.Clear();//Efface de la mémoire tampon de la console et de la fenêtre de console correspondante les informations d'affichage.
                switch (niv)
                {
                    case 1:

                        lin = 9;
                        col = 9;
                        break;
                    case 2:
                        {
                            lin = 16;
                            col = 16;
                            break;
                        }
                    case 3:
                        {
                            lin = 16;
                            col = 30;
                            break;
                        }
                }
                 //Incompris !!!!!!!!!!!
                int[,] demineur = new int[lin, col];
                mines = nivo2[niv - 1];
                PlacerMines(demineur, mines);
                placerchiffre(demineur);
                Afficher(demineur);


                Console.ReadKey();// J'aimerais savoir le Rôle de cette fonction  !!!!!!!!
            }

            private static void Afficher(int[,] demineur)
            {
                for (int i = 0; i < demineur.GetLength(0); i++)
                {
                    for (int j = 0; j < demineur.GetLength(1); j++)
                    {
                        /*if (j % demineur.GetLength(1) == 0)
                        {
                            Console.WriteLine();
                        }*/
                        if (demineur[i, j] == -1)
                            Console.Write(" * ");
                        else if (demineur[i, j] == 0)
                            Console.Write(" . ");
                        else Console.Write(" {0} ", demineur[i, j]);
                    }
                    Console.WriteLine();
                }
            }

            static void choisiNiveau(ref int niv)
            {
                Console.WriteLine("Jeu démineur");
                Console.WriteLine("------------");
                Console.WriteLine("Niveau de difficulté (1,2 ou 3)");
                Console.WriteLine("-1- Débutant : Grille 9x9 et 10 Mines");
                Console.WriteLine("-2- Intermédiaire : Grille 16x16 et 40 Mines");
                Console.WriteLine("-3- Avancé : Grille 16x30 et 99 Mines");
                Console.WriteLine("Votre choix ?");
                niv = int.Parse(Console.ReadLine());// J'aimerais savoir le Rôle de cette fonction  !!!!!!!!
                while ((niv < 1 || niv > 3))
                {
                    Console.WriteLine("Mauvais choix! Réécrire ?");
                    niv = int.Parse(Console.ReadLine());
                }
            }

            static void PlacerMines(int[,] demineur, int mines)
            {
                Random rnd = new Random();
                while (mines != 0)
                {
                    int x = rnd.Next(demineur.GetLength(0));// J'aimerais savoir le Rôle de cette fonction  !!!!!!!!!!
                    int y = rnd.Next(demineur.GetLength(1));// J'aimerais savoir le Rôle de cette fonction  !!!!!!!!!!
                    if (demineur[x, y] != -1)
                    {
                        demineur[x, y] = -1;
                        mines--;
                    }

                }

            }
            static void   placerchiffre(int[,] demineur)
            {
               
                for(int i=0;i < demineur.GetLength(0);i++)
                    for(int j=0; j<demineur.GetLength(1);j++)
                    {
                        if(demineur[i,j]==0)
                            demineur[i,j]=caculerchiffre(demineur, i, j);

                    }
            }

            private static int caculerchiffre(int[,] d, int i, int j)
            {
                int n = 0;

                for (int x = i - 1; x <= i + 1; x++)
                    for (int y = j - 1; y <= j + 1; y++)
                    {
                        if (x >= 0 && y >= 0 && x < d.GetLength(0) && y < d.GetLength(1))
                            if (d[x, y] == -1)
                                n++;
                    }
                return n;
            }
            /*static void Jouer(int[,] demineur,int i,int j)
            {
                if(demineur[i,j]!=0)
                    Devoilercase(demineur,nb,i,j)
                else if(demineur[i,j]=-1;
                else
                    for(i=0;i<demineur.GetLength(0);i++)
                        for(j=0;j<demineur.GetLength(1);i++)
            }*/

        }
    }

    jeudi 5 mars 2015 02:42

Réponses