public static int CheckValeur(int[,] matrice, int l, int c)
int nbligne = matrice.GetLength(0);
int nbcol = matrice.GetLength(1);
c = (c % nbcol + nbcol) % nbcol;
l = (l % nbligne + nbligne) % nbligne;
public static int NbCellulesVie(int[,] matrice, int ligne, int col)
if (matrice != null && matrice.Length != 0)
if (matrice[ligne, col] == 1)
for (int l = ligne - 1; l <= ligne + 1; l++)
for (int c = col - 1; c <= col + 1; c++)
if (CheckValeur(matrice, l, c) == 1)
public static int VieOuMort(int[,] mat, int ligne, int colonne)
if (mat != null && colonne >= 0 && ligne >= 0 && ligne < mat.GetLength(0) && colonne < mat.GetLength(1) && mat.GetLength(0) > 0 && mat.GetLength(1) > 0)
if (NbCellulesVie(mat, ligne, colonne) != 3 )
if (NbCellulesVie(mat, ligne, colonne) == 2 && mat[ligne,colonne] == 1 )
if (NbCellulesVie(mat, ligne, colonne) == 3)
public static int TotalCellulesVie(int[,] matrice)
if (matrice != null && matrice.Length != 0)
for (int l = 0; l < matrice.GetLength(0); l++)
for (int c = 0; c < matrice.GetLength(1); c++)
public static int[,] CreerMatrice(int lignes, int col)
if (lignes != 0 && col != 0)
resultat = new int[lignes, col];
Console.WriteLine("Mauvaise Valeurs");
public static bool RemplissageMatrice(int[,] matrice, int taux)
if (matrice != null && matrice.Length != 0)
if (taux >= 10 && taux <= 90)
Random rand = new Random();
for (int l = 0; l < matrice.GetLength(0); l++)
for (int c = 0; c < matrice.GetLength(1); c++)
temp = rand.Next(0, 101);
public static void AffichageMatriceGrille(int[,] matrice)
if (matrice != null && matrice.Length != 0)
for (int l = 0; l < matrice.GetLength(0); l++)
for (int c = 0; c < matrice.GetLength(1); c++)
public static int[,] JDLVEtapeSuivante(int[,] matrice)
if (matrice != null && matrice.Length != 0)
int[,] temp = new int[matrice.GetLength(0), matrice.GetLength(1)];
for (int l = 0; l < matrice.GetLength(0); l++)
for (int c = 0; c < matrice.GetLength(1); c++)
temp[l, c] = VieOuMort(matrice, l, c);
public static bool ChoixDuJeu(int valeur,int[,] Jeu)
Jeu = new int[5,5] {{0,0,0,0,0},{0,0,0,0,0},{0,1,1,1,0},{0,0,0,1,0},{0,0,1,0,0}} ;
AffichageMatriceGrille(Jeu);
Console.WriteLine("taper 1 pour la génération suivante et 2 pour stoper");
int t = Convert.ToInt32(Console.ReadLine());
Jeu = JDLVEtapeSuivante(Jeu);
Console.WriteLine(" nous somme à la génération " + n);
AffichageMatriceGrille(Jeu);
Console.WriteLine("taper 1 pour la génération suivante et 2 pour stoper");
t = Convert.ToInt32(Console.ReadLine());
if (valeur!=2 && valeur!=1)
public static void JeuSANSpreview(int [,] Jeu)
AffichageMatriceGrille(Jeu);
Console.WriteLine("taper 1 pour la génération suivante et 2 pour stoper");
int t = Convert.ToInt32(Console.ReadLine());
Jeu = JDLVEtapeSuivante(Jeu);
int popu = TotalCellulesVie(Jeu);
Console.WriteLine("Nous somme à la génération " + n + " et il y a " + popu + " individu");
AffichageMatriceGrille(Jeu);
Console.WriteLine("taper 1 pour la génération suivante et 2 pour stoper");
t = Convert.ToInt32(Console.ReadLine());
public static void Main()
Console.WriteLine("bienvenue dans le jeu de la vie");
Console.WriteLine("Combien de collones?...");
int nbcol = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Combien de lignes?...");
int nbligne = Convert.ToInt32(Console.ReadLine());
int[,] Jeu = CreerMatrice(nbligne, nbcol);
Console.WriteLine("Vous voulez remplir à quel pourcentage?...");
int pourcent = Convert.ToInt32(Console.ReadLine());
RemplissageMatrice(Jeu,pourcent);
Console.WriteLine("veuillez choisir votre mode de jeu");
Console.WriteLine("saisir 1 pour le Jeu DLV classique avec visualisation des états futurs");
Console.WriteLine("saisir 2 pour le Jeu DLV classique sans visualisation intermédiaire des états futurs");
int typedejeu = Convert.ToInt32(Console.ReadLine());
ChoixDuJeu(typedejeu, Jeu);
while (typedejeu != 1 && typedejeu != 2)
Console.WriteLine("veuillez saisir une proposition valide(1 ou 2)....");
typedejeu = Convert.ToInt32(Console.ReadLine());
ChoixDuJeu(typedejeu, Jeu);