simply-web
@simply-web

Как сделать 2 попытки угадать число?

Есть функции , которые создают массив с рандомными 4-мя цифрами от 1 до 9 . Надо , чтобы при каждых двух попытках код обновлялся и при этом цифры в массиве не повторялись . Вот пока что есть :
var Array ;
	function num() {
	Array = [ ] ;
	for(var j = 0 ; j < 4 ; j++){
    var rand = Math.floor(Math.random() * 9 ) + 1 ;
    Array.push(rand);
    }  
	console.log(Array);
	}
function check() {
num();
var enter = document.getElementById('num').value ;
enter = parseInt(enter);
if (enter === Array[0] || enter === Array[1] || enter === Array[2] || enter === Array[3]) { /* Кстати , как по нормальному это реализовать */
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ответы на вопрос 1
@choupa
Архитектор (обычный, который строит)
1. Неясно условие задачи, и код ниже его не проясняет. Вопросы:

а). В одном массиве могут быть одинаковые цифры или нет?
б). Проверяется совпадение хотя бы одной любой цифры. Верно?

2. Код очень плох, ибо не ведаете, что творите:

function num() {
	Array = [];
	for ( var i = 0; i < 4; i++ ) {   //  Этот цикл будет выполняться бесконечно. Т.к. его счётчик i совпадает со счётчиком вложенного цикла и каждый раз будет сбрасываться на 1, дойдя лишь до 2
		for ( var i = 1; i < 2; i++ ) {
			var rand = Math.floor( Math.random() * 9 ) + 1 ;
			Array.push( rand );
		}
	}
	//  Сюда выполнение никогда не дойдёт
	console.log(Array);
}

function check() {
	for (var i = 0; i < 1; i++) {    //  Зачем цикл, если он заведомо выполняется один раз!
		num();
	}
	var enter = document.getElementById('num').value ;
	enter = parseInt(enter);
	if ( enter === Array[0] || enter === Array[1] || enter === Array[2] || enter === Array[3] ) { 
	// Для поиска в массиве используйте find( Array, enter )
		alert( 'You won !' );
		num();   // Общий порядок вызовов функций непонятен, запутан.
	}
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы