1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| private void Test_coups(int[,] plateau, int x, int y, string tour, bool premier_coup, int x_premier, int y_premier)
{
//Mise à jour du plateau de jeu selon coup testé
if (x != -1 && y != -1)
plateau = tour_jeu(plateau, x, y, (tour == "noirs")? "blancs": "noirs");
int joueur = (tour == "noirs") ? 2 : 1;
int ennemi = (tour == "noirs") ? 1 : 2;
//Verification fin de partie
if (compter_cases(plateau) == Jeu.NOMBRE_CASES * Jeu.NOMBRE_CASES)
{
determ(x_premier, y_premier, compter_noirs(plateau));
//Console.WriteLine(compter_noirs(plateau));
//return;
}
else
{
//Test des différents coups possibles
int increm = 0;
bool coup_possible = false;
for (int i = 0; i < Jeu.NOMBRE_CASES; i++)
{
for (int j = 0; j < Jeu.NOMBRE_CASES; j++)
{
if (plateau[i, j] == 0)
{
# region Cas du dessus
if (j > 1 && plateau[i, j - 1] == ennemi && !coup_possible)
{
increm = 2;
do
{
if (plateau[i, j - increm] == joueur) coup_possible = true;
else if (plateau[i, j - increm] == ennemi) increm++;
else break;
} while ((j - increm) >= 0 && !coup_possible);
}
#endregion
#region Cas du dessous
#region Cas à droite
#region Cas à gauche
#region Cas au dessus, à droite
#region Cas au dessus, à gauche
#region Cas en dessous, à droite
#region Cas en dessous, à gauche
if (coup_possible)
{
if (premier_coup)
{
x_premier = i;
y_premier = j;
}
Test_coups(plateau, i, j, (joueur == 1) ? "noirs" : "blancs", false, x_premier, y_premier);
}
coup_possible = false;
}
}
}
}
} |
Partager