Skip to content

Commit ea71f79

Browse files
committed
update script SkillfactoryCoding#8 less and retry functions
1 parent 2e1cdc4 commit ea71f79

File tree

1 file changed

+47
-25
lines changed

1 file changed

+47
-25
lines changed

bjs/08_if_else/script.js

Lines changed: 47 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,33 +22,39 @@ const successAnswerPhrases = [
2222
"Victory!\n\u{1F638}"
2323
];
2424

25-
//Заменить методы window на что-нибудь из bootstrap (20 баллов)
26-
let minValue = parseInt(prompt('Минимальное знание числа для игры','0'));
27-
let maxValue = parseInt(prompt('Максимальное знание числа для игры','100'));
28-
alert(`Загадайте любое целое число от ${minValue} до ${maxValue}, а я его угадаю`);
25+
//UI links
26+
const orderNumberField = document.querySelector('#orderNumberField');
27+
const answerField = document.querySelector('#answerField');
2928

30-
//Валидация введенных значений (через дизъюнкции) (10 баллов)
29+
//vars
30+
let minValue, maxValue, answerNumber, orderNumber;
31+
let gameRun;
3132

32-
//Ограничение по минимому и максимому для введенных значений (через тернарный оператор) (10 баллов)
33-
// мин = -999 макс = 999
33+
function Start()
34+
{
35+
//Заменить методы window на что-нибудь из bootstrap (20 баллов)
36+
minValue = parseInt(prompt('Минимальное знание числа для игры','0'));
37+
maxValue = parseInt(prompt('Максимальное знание числа для игры','100'));
38+
alert(`Загадайте любое целое число от ${minValue} до ${maxValue}, а я его угадаю`);
3439

35-
let answerNumber = Math.floor((minValue + maxValue) / 2);
36-
let orderNumber = 1;
37-
let gameRun = true;
40+
//Валидация введенных значений (через дизъюнкции) (10 баллов)
41+
42+
//Ограничение по минимому и максимому для введенных значений (через тернарный оператор) (10 баллов)
43+
// мин = -999 макс = 999
3844

39-
const orderNumberField = document.querySelector('#orderNumberField');
40-
const answerField = document.querySelector('#answerField');
45+
answerNumber = Math.floor((minValue + maxValue) / 2);
46+
orderNumber = 1;
47+
gameRun = true;
48+
49+
orderNumberField.innerText = orderNumber++;
50+
answerField.innerText = `${nextAnswerPhrases[0]} ${answerNumber }?`;
51+
}
4152

42-
orderNumberField.innerText = orderNumber;
43-
answerField.innerText = `${nextAnswerPhrases[0]} ${answerNumber }?`;
53+
Start();
4454

4555
// Рестарт программы
4656
document.querySelector('#btnRetry').addEventListener('click', function () {
47-
//Переписать все
48-
minValue = 0;
49-
maxValue = 100;
50-
orderNumber = 0;
51-
gameRun = true;
57+
Start();
5258
})
5359

5460
// Кнопка больше
@@ -68,22 +74,38 @@ document.querySelector('#btnOver').addEventListener('click', function () {
6874
answerField.innerText = answerPhrase;
6975
gameRun = false;
7076
} else { //Продолжить поиск выше
71-
minValue = answerNumber + 1;
72-
answerNumber = Math.floor((minValue + maxValue) / 2);
73-
orderNumber++;
77+
minValue = answerNumber + 1;
78+
answerNumber = Math.floor((minValue + maxValue) / 2);
79+
orderNumberField.innerText = orderNumber++;
7480

7581
//Вывод числа в прописью, если строка получается менее 20 символов (15 баллов)
7682

77-
orderNumberField.innerText = orderNumber;
78-
7983
const phraseRandom = Math.round( Math.random() * (nextAnswerPhrases.length - 1));
8084
answerField.innerText = `${nextAnswerPhrases[phraseRandom]} ${answerNumber }?`;
8185
}
8286
}
8387
})
8488

8589
// Кнопка меньше
86-
// Написать функционал
90+
document.querySelector('#btnLess').addEventListener('click', function () {
91+
if (gameRun){
92+
if (minValue === maxValue){ // Игрок сжулничал и давал не правильные ответы
93+
const phraseRandom = Math.round( Math.random() * (failAnswerPhrases.length - 1));
94+
const answerPhrase = failAnswerPhrases[phraseRandom];
95+
answerField.innerText = answerPhrase;
96+
gameRun = false;
97+
} else { //Продолжить поиск ниже
98+
maxValue = answerNumber - 1;
99+
answerNumber = Math.floor((minValue + maxValue) / 2);
100+
orderNumberField.innerText = orderNumber++;
101+
102+
//Вывод числа в прописью, если строка получается менее 20 символов (15 баллов)
103+
104+
const phraseRandom = Math.round( Math.random() * (nextAnswerPhrases.length - 1));
105+
answerField.innerText = `${nextAnswerPhrases[phraseRandom]} ${answerNumber }?`;
106+
}
107+
}
108+
})
87109

88110
// Кнопка Верно!
89111
document.querySelector('#btnEqual').addEventListener('click', function () {

0 commit comments

Comments
 (0)