Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Генератор случайных букв (https://javascript.ru/forum/misc/70581-generator-sluchajjnykh-bukv.html)

Мявчик 17.09.2017 13:26

Генератор случайных букв
 
Сам не разбираюсь в JavaScript, а в сети ответа не нашел, так что решил спросить тут. Что нужно:
Генератор случайных букв (7 за раз), причём, если не нажал кнопку "новая", букв должно быть столько:
На очки внимание обращать не надо, я сам сделаю.

j0hnik 17.09.2017 14:26

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
	<button>клик</button>
	<script>
		document.querySelector('button').onclick = function(){
			for(var i = 7; i; i--) alert(String.fromCharCode(Math.floor(Math.random()*(1040-1071))+1071));
		};
	</script>
</body>
</html>

Вот генератор

рони 17.09.2017 14:30

j0hnik,
там типа 20 раундов, по 7, и буква А не должна повторится более 10 раз за эти 20 и остальные соотвественно.

j0hnik 17.09.2017 14:33

Рони, откуда такая информация?
Если вам что-то известно распишите подробней.

рони 17.09.2017 14:48

j0hnik,
Эрудит

j0hnik 17.09.2017 16:33

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
	<button>клик</button>
	<script>
		var arr =[];
		document.querySelector('button').onclick = function(){
			while(arr.length<140) arr.push(String.fromCharCode(Math.floor(Math.random()*(1040-1071))+1071));
			arr=arr.filter((el, i)=> { 
				var s = 0; 
				while (i--) if (el == arr[i]) s++; 
				return (s<10); 
			});
			console.log(arr);
		};
	</script>
</body>
</html>


рони, всего 140 повторятся больше 10 не должны верно?

рони 17.09.2017 17:00

j0hnik,
:blink:
всего массив карточек длиной 225, из них буква А занимает 10 ячеек(или карт), а буква Ю одну ячейку, смотри
таблицу, нужна случайная выборка из этого массива, пока он не закончится.

рони 17.09.2017 17:06

j0hnik,
225 всё поле, букв меньше оказывается 131 (128 букв + 3 звёздочки)

j0hnik 17.09.2017 17:32

Я думал это таблица результат =((

Vlasenko Fedor 17.09.2017 18:32

function shuffle(array) {
  var currentIndex = array.length, temporaryValue, randomIndex;
  while (0 !== currentIndex) {
    randomIndex = Math.floor(Math.random() * currentIndex);
    currentIndex -= 1;
    temporaryValue = array[currentIndex];
    array[currentIndex] = array[randomIndex];
    array[randomIndex] = temporaryValue;
  }

  return array;
}
var letters = 'аааааааааабббвввввгггдддддееееееееежжззииииииииййййккккккллллмммммннннннннооооооооооппппппррррррсссссстттттуууфххцччшщъыыььэюяяя***'.split('');
var result = shuffle(letters);

function getLetters(len){
	var arr = result.slice(result.length - len);
	result.length -= len;
	return arr;
}

console.log(getLetters(7));
console.log(getLetters(7));
console.log(getLetters(7));
console.log(getLetters(7));
// по правилам не более 4-х игроков
// получаем далее буквы
console.log(getLetters(1));
console.log(getLetters(1));

Вариант


Часовой пояс GMT +3, время: 00:15.