Делаю игру наподобие сапера. Нужно сгенерировать рандомное число, которое будет индексом клетки таблицы с бомбой. Но дело в том, что часто одно и тоже число генерируется два раза (делаю с помощью цикла) и вместо трех бомбочек появляется две. Это нужно как-то исправить, но в голову вообще ничего не приходит.
Вот код:
//Функция отрисовки таблицы (поля)
var drawGrid = function (){
var gameZone = document.querySelector("#gameGrid");
var gameZoneHTML = "";
for (var i = 0; i < gridSize; i++){
gameZoneHTML += "";
for (var j = 0; j< gridSize; j++){
gameZoneHTML += ""
};
gameZoneHTML += "";
}
gameZone.innerHTML = gameZoneHTML;
}
//Функция генерации бомбочек легкой сложности
var placeBombsEasy = function(){
for (i = 0; i<3; i++){
var tds = document.querySelectorAll("td");
tds[Math.floor(Math.random()*25)].classList.add("bomb")}
}
//Функция генерации бомбочек средней сложности
var placeBombsNorm = function(){
for (i = 0; i<9; i++){
var tds = document.querySelectorAll("td");
tds[Math.floor(Math.random()*49)].classList.add("bomb")}
}
//Функция генерации бомбочек сложной сложности
var placeBombsHard = function(){
for (i = 0; i<15; i++){
var tds = document.querySelectorAll("td");
tds[Math.floor(Math.random()*100)].classList.add("bomb")}
}
//Добавляем переменную размера поля
var gridSize;
//Выбираем кнопку "легкая"
var difEasy = document.querySelector("#difEasy");
//Выбираем кнопку "нормальная"
var difNorm = document.querySelector("#difNorm");
//Выбираем кнопку "сложная"
var difHard = document.querySelector("#difHard");
//Если нажали на кнопку "легкая", построить таблицу 5х5 и расположить 3 бомбы
difEasy.addEventListener("click", function(){
gridSize = 5;
drawGrid();
placeBombsEasy();
});
//Если нажали на кнопку "нормальная", построить таблицу 7х7 расположить 9 бомб
difNorm.addEventListener("click", function(){
gridSize = 7;
drawGrid();
placeBombsNorm();
});
//Если нажали на кнопку "сложная", построить таблицу 10х10 расположить 10 бомб
difHard.addEventListener("click", function(){
gridSize = 10;
drawGrid();
placeBombsHard();
});
Вот код:
//Функция отрисовки таблицы (поля)
var drawGrid = function (){
var gameZone = document.querySelector("#gameGrid");
var gameZoneHTML = "";
for (var i = 0; i < gridSize; i++){
gameZoneHTML += "";
for (var j = 0; j< gridSize; j++){
gameZoneHTML += ""
};
gameZoneHTML += "";
}
gameZone.innerHTML = gameZoneHTML;
}
//Функция генерации бомбочек легкой сложности
var placeBombsEasy = function(){
for (i = 0; i<3; i++){
var tds = document.querySelectorAll("td");
tds[Math.floor(Math.random()*25)].classList.add("bomb")}
}
//Функция генерации бомбочек средней сложности
var placeBombsNorm = function(){
for (i = 0; i<9; i++){
var tds = document.querySelectorAll("td");
tds[Math.floor(Math.random()*49)].classList.add("bomb")}
}
//Функция генерации бомбочек сложной сложности
var placeBombsHard = function(){
for (i = 0; i<15; i++){
var tds = document.querySelectorAll("td");
tds[Math.floor(Math.random()*100)].classList.add("bomb")}
}
//Добавляем переменную размера поля
var gridSize;
//Выбираем кнопку "легкая"
var difEasy = document.querySelector("#difEasy");
//Выбираем кнопку "нормальная"
var difNorm = document.querySelector("#difNorm");
//Выбираем кнопку "сложная"
var difHard = document.querySelector("#difHard");
//Если нажали на кнопку "легкая", построить таблицу 5х5 и расположить 3 бомбы
difEasy.addEventListener("click", function(){
gridSize = 5;
drawGrid();
placeBombsEasy();
});
//Если нажали на кнопку "нормальная", построить таблицу 7х7 расположить 9 бомб
difNorm.addEventListener("click", function(){
gridSize = 7;
drawGrid();
placeBombsNorm();
});
//Если нажали на кнопку "сложная", построить таблицу 10х10 расположить 10 бомб
difHard.addEventListener("click", function(){
gridSize = 10;
drawGrid();
placeBombsHard();
});