Я делаю игру, в которой пользователь набирает или точно нажимает на панель 4x4 для создания содержательного слова. Проблема в том, что мое случайное распределение писем на доске приводит к преобладанию согласных, что затрудняет поиск слов. Как на картинке (только 3 гласных). Итак, мой вопрос, есть ли какая-либо формула или алгоритм для распределения согласных и гласных почти одинаково, может быть, 10 (согласных) до 6 (гласных)? Или вы можете предложить решение.
Способ отображения букв случайным образом следующий:
const letters = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t',
'u','v','w','x','y','z'];
var searched_word = '';
var tr = '';
var wordsBank = [];
var wordsCount = 0;
var boxes = document.querySelectorAll('.square');
//console.log(boxes);
boxes.forEach(function(box) {
box.addEventListener('click', function(e) {
e.preventDefault();
searched_word += this.innerHTML;
document.querySelector('.input').value = searched_word;
});
console.log(searched_word);
return searched_word;
});
function randomLetters(boxes) {
for (var i = 0; i < boxes.length; i++) {
let box = boxes[i];
let randomLetterNumber = Math.floor(Math.random() * letters.length);
box.innerHTML = letters[randomLetterNumber].toLocaleUpperCase();
//console.log(box);
//console.log(randomLetterNumber);
}
}
javascript,algorithm,random,2d-games,