在 4x4 板上平均分配字母
Equal distribution of letters on a 4x4 board
我正在制作一款游戏,用户可以在 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);
}
}
制作两个数组,一个用于辅音,一个用于元音
现在从辅音中得到 10 个随机数,从元音中得到 6 个随机数
瞧 :-)
洗牌示例
function shuffle(a) {
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
let selectedChars = selectedVowels.concat(selectedConsonants);
let shuffledChars = shuffle(selectedChars);
随机播放功能的来源:How can I shuffle an array?
我正在制作一款游戏,用户可以在 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);
}
}
制作两个数组,一个用于辅音,一个用于元音
现在从辅音中得到 10 个随机数,从元音中得到 6 个随机数
瞧 :-)
洗牌示例
function shuffle(a) {
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
let selectedChars = selectedVowels.concat(selectedConsonants);
let shuffledChars = shuffle(selectedChars);
随机播放功能的来源:How can I shuffle an array?