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
| /// <summary>
/// Vérifie s'il existe (ou pas) 2 adresses identiques dans le tableau
/// </summary>
/// <param name="pEntierRecherche">entier à chercher dans le tableau</param>
/// <returns>oui ou non l'entier se trouve déjà dans le tableau</returns>
/// -----------------------------------------------------------------------------------------------
private bool Existe(int pEntierRecherche)
{
for (int row = 0; row < viaGrilleJeu.RowCount; row++)
{
for (int column = 0; column < viaGrilleJeu.ColumnCount; column++)
{
if (m_tabIndexImages[row,column] == pEntierRecherche)
{
return true;
}
}
}
return false;
}
/// ---------------------------------------------------------------------------------
/// <summary>
/// Place des mines (MAX_NOMBRE_MINES) dans le tableau des mines.
/// </summary>
/// ---------------------------------------------------------------------------------
private void PlacerMinesAleatoirement()
{
// Placer le nombre maximum de mines permis dans le tableau.
Address[] tabAdressesMines = new Address[MAX_NOMBRE_MINES];
int adresseRangee;
int adresseColonne;
for (int cptMines = 0; cptMines < MAX_NOMBRE_MINES; cptMines++)
{
adresseRangee = viaGrilleJeu.RandomInt(0, viaGrilleJeu.RowCount);
adresseColonne = viaGrilleJeu.RandomInt(0, viaGrilleJeu.ColumnCount);
// Ne pas placer 2 adresses identiques dans le tableau.
do
{
tabAdressesMines[cptMines] = new Address(adresseRangee, adresseColonne);
} while (Existe(adresseRangee) && Existe(adresseColonne));
}
PlacerMines(tabAdressesMines);
} |
Partager