siemka, piszę sapera w c++ i natknąłem się na pewien problem. Mianowicie chciałem by konstruktor losował mi pozycja min za pomocą funkcji rand. Na początku losuje randem wiersz a potem kolumnę tablicy dwuwymiarowej. Ilość min ma być podyktowana 3 stopniami trudności i opisuje ją równianie
amountOfMines = width * high * EasyLevel; gdzie EasyLevel = 0.1. Konstruktor jednak nie spełnia swojej roli a jedynie wyświetla puste pola (bez min)...
Czy byłby ktoś w stanie nakreślić mój błąd w kodzie bądź złe podejście do problemu?
Minesweeperboard ::Minesweeperboard(int width, int high, GameMode mode) {
for (int i = 0; i < width; i++) {
for (int j = 0; j < high; j++) {
board[j][i].hasMine = 0;
board[j][i].hasFlag = 0;
board[j][i].isRevealed = 0;
}
}
srand(time(NULL));
int EasyLevel=0.1, NormalLevel=0.2, HardLevel=0.3, column=0, raw=0, amountOfMines=0;
if(mode==EASY){
amountOfMines = width * high * EasyLevel;
for(int i=0; i<10; i++){
column = rand() % high;
raw = rand() % width;
board[raw][column].hasMine = 1;
}
}
if(mode==NORMAL){
amountOfMines = width * high * NormalLevel;
for(int i=0; i<amountOfMines; i++){
column = rand()%high;
raw = rand()%width;
board[raw][column].hasMine=1;
}
}if(mode==HARD){
amountOfMines = width * high * HardLevel;
for(int i=0; i<amountOfMines; i++){
column = rand()%high;
raw = rand()%width;
board[raw][column].hasMine=1;
}
}
}