Witajcie!
Potrzebuję się dzisiaj uporać z problemem...a już mi się pomysły skończyły...może ktoś coś poradzi.
Fragment gierki saper: funkcja, która ma wypełnić tablicę losowo minami (ozn 9) - użytkownik podaje ich ilość w procentach. Problem jest w funkcji losowej przy większych wartościach procentów (np 100%) - pętla się nie kończy, albo wykonuje się strasznie długo... Losowane liczby się powtarzają nie wypełniając całej tabeli.
void bomby (int **plansza) {
int x, proc;
cout<<"Ile ma byc bomb na planszy (procentowo)?"<<endl;
cin>>proc;
//oblicznie ilości bomb
x=static_cast<int>((proc*width*height)/100);
srand ((int) time(NULL));
for (int i=0;i<x;i++){
int losX=rand()%(width);
int losY=rand()%(height);
if (plansza[losY][losX]!=9) {
plansza[losY][losX]=9;
} else { i--; }
}
Jeśli widzi ktoś tu błąd albo ma pomysł na rozwiązanie problemu to proszę o pomoc.