public static void Main(string[] args)
Console.WriteLine("Saisir le nombre de lignes puis de colonnes tu tableau");
int nblignes=Convert.ToInt32(Console.ReadLine());
int nbcolonnes=Convert.ToInt32(Console.ReadLine());
int [,] tab = GenererTableau(nblignes,nbcolonnes);
while (!finDePartie(tab))
int colonne=DemanderJeu(tab,((j%2+1)));
if (colonneValide(tab,colonne,nblignes,nbcolonnes))
AjouterJeton(tab,colonne,(j%2+1));
static bool finDePartie(int[,]tab)
if (victoireHorizontale(tab) || victoireVerticale(tab) || victoireDiag1(tab) || victoireDiag2(tab))
static int[,] GenererTableau(int nblignes, int nbcolonnes)
int [,] tab = new int [nblignes,nbcolonnes];
for (int j=0;j<nbcolonnes;j++)
for (int i=0; i< nblignes; i++)
static void AfficherTab(int [,] tab)
for ( int i = 0; i<tab.GetLength(0);i++)
for (int j = 0;j<(tab.GetLength(1));j++)
Console.Write(" | " + 0);
Console.Write(" | " + 1);
static bool colonneValide(int [,]tab,int colonne,int nblignes,int nbcolonnes)
if ( colonne >nbcolonnes || colonne <0)
if ( tab[0,colonne] != 0)
static int DemanderJeu(int[,] tab,int joueur)
Console.WriteLine("Joueur n° " + joueur + " Choisissez une colonne");
int colonne= Convert.ToInt32(Console.ReadLine())-1;
static int lignevalide(int [,]tab,int colonne)
for (int i =5; (i>-1) && (r==false); i--)
static void AjouterJeton(int[,] tab,int colonne,int joueur)
tab[lignevalide(tab,colonne),colonne]=1;
tab[lignevalide(tab,colonne),colonne]=2;
static bool victoireVerticale(int [,] tab)
for (int j=0;j<tab.GetLength(1);j++)
for (int i=0;i<=tab.GetLength(0)-4;i++)
switch(tab[i,j]+tab[i+1,j]+tab[i+2,j]+tab[i+3,j])
if (tab[i,j]==1 && tab[i+1,j]==1 && tab[i+2,j]==1 && tab[i+3,j]==1)
Console.WriteLine("Le joueur n°1 a gagné!");
Console.WriteLine("Le joueur n°2 a gagné!");
static bool victoireHorizontale(int [,] tab)
for (int j=0;j<tab.GetLength(1);j++)
for (int i=0;i<=tab.GetLength(0)-4;i++)
switch(tab[i,j]+tab[i+1,j]+tab[i+2,j]+tab[i+3,j])
if (tab[i,j]==1 && tab[i+1,j]==1 && tab[i+2,j]==1 && tab[i+3,j]==1)
Console.WriteLine("Le joueur n°1 a gagné!");
Console.WriteLine("Le joueur n°2 a gagné!");
static bool victoireDiag1(int[,] tab)
for (int j=0;j<tab.GetLength(1)-4;j++)
for (int i=0;i<tab.GetLength(0)-4;i++)
switch(tab[i,j]+tab[i+1,j+1]+tab[i+2,j+2]+tab[i+3,j+3])
if (tab[i,j]==1 && tab[i+1,j+1]==1 && tab[i+2,j+2]==1 && tab[i+3,j+2]==1)
Console.WriteLine("Le joueur n°1 a gagné!");
Console.WriteLine("Le joueur n°2 a gagné!");
static bool victoireDiag2(int [,]tab)
for (int j=tab.GetLength(1)-4;j>=4;j++)
for (int i=0;i<tab.GetLength(0)-4;i++)
switch(tab[i,j]+tab[i+1,j-1]+tab[i+2,j-2]+tab[i+3,j-3])
if (tab[i,j]==1 && tab[i+1,j-1]==1 && tab[i+2,j-2]==1 && tab[i+3,j-2]==1)
Console.WriteLine("Le joueur n°1 a gagné!");
Console.WriteLine("Le joueur n°2 a gagné!");