Salut à tous !
Voilà, je suis encore débutant en programmation, et je tente de développer un démineur. Pour l'instant, le programme est essentiellement composé de fonctions assez simples (afficher le plateau, gérer les clics droits et gauches...). Je suis actuellement en train de générer les mines aléatoirement. Le problème étant, certaines mines sont positionnées au même endroit. En effet, les coordonnées de la mine sont définis aléatoirement en x et en y avant d'être centrées au centre de la case à partir de ces coordonnées. Les cases faisant 50 pixels de côté et le plateau 501 pixels sur 500 (10 x 10 cases donc), la probabilité d'avoir plusieurs mines sur une même case est assez élevée (je voudrais entre 10 et 20 mines).
J'ai essayé plusieurs choses pour remédier à ce problème, utilisation de conditions, différents types de boucles, mais rien n'y fait, je me retrouve soit avec une boucle infinie, ou le même problème qu'avant...
J'utilise une seule bibliothèque graphique simplifiant certaines fonctions graphiques (je ne m'en sers ici que pour la variable aléatoire et tracer un cercle plein)
DEMIN mines(DEMIN dm) //fonction de placement de mines
{
POINT mine;
int nombre_mines;
for(nombre_mines=1; nombre_mines<15; nombre_mines++)
{
mine.x = alea_int(499); mine.y = alea_int(499); //définition aléatoire des coordonnées en x et en y sur un intervalle de 1 à 499
mine.x = (mine.x/50)*50+25; mine.y = (mine.y/50)*50+25; //centrage des mines au centre de la case
draw_fill_circle(mine, 13, color5); //dessin de la mine à partir du centre de la case
dm.tab[mine.x/50][mine.y/50] = 1; //placement de la mine dans un quadrillage virtuel défini plus haut (10 x 10 cases)
}
}
Voilà, c'est la "première" version du programme qui fonctionne, qui place les mines aléatoirement mais qui peut en placer plusieurs sur la même case.
Merci d'avance pour votre aide ! 