Skip to content

Commit a5c809a

Browse files
committed
update script SkillfactoryCoding#8 minor fixes
1 parent 2ebed96 commit a5c809a

File tree

1 file changed

+35
-22
lines changed

1 file changed

+35
-22
lines changed

bjs/08_if_else/script.js

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,20 @@ const successAnswerPhrases = [
2525
//UI links
2626
const orderNumberField = document.querySelector('#orderNumberField');
2727
const answerField = document.querySelector('#answerField');
28+
2829
const modalInputValues = $('#modalInputValues');
2930
const minValueField = document.querySelector('#minValueInput');
3031
const maxValueField = document.querySelector('#maxValueInput');
32+
3133
const modalStartAlert = $('#modalStartAlert');
3234
const modalStartAlertText = document.querySelector("#modalStartAlert h5");
3335

3436
//vars
3537
let minValue, maxValue, answerNumber, orderNumber;
3638
let gameRun;
39+
let firstRun = true;
3740

41+
//Старт/рестарт игры
3842
function Start()
3943
{
4044
minValue = parseInt(minValueField.value) || 0;
@@ -57,10 +61,15 @@ function Start()
5761
orderNumberField.innerText = orderNumber++;
5862
answerField.innerText = `${nextAnswerPhrases[0]} ${IntToText(answerNumber)}?`;
5963

60-
modalStartAlertText.innerText = `Загадайте любое целое число от ${minValue} до ${maxValue}, а я его угадаю`;
61-
modalStartAlert.modal("show");
64+
if (firstRun)
65+
{
66+
modalStartAlertText.innerText = `Загадайте любое целое число от ${minValue} до ${maxValue}, а я его угадаю`;
67+
modalStartAlert.modal("show");
68+
firstRun = false;
69+
}
6270
}
6371

72+
// Перевод числовой записи в пропись
6473
function IntToText(n)
6574
{
6675
const maxLength = 20;
@@ -72,21 +81,6 @@ function IntToText(n)
7281
{
7382
result = 'ноль';
7483
}
75-
else if ((workNuber > 10) && (workNuber < 20))
76-
{
77-
switch (workNuber)
78-
{
79-
case 11: result = `${sign}одинадцать`; break;
80-
case 12: result = `${sign}двенадцать`; break;
81-
case 13: result = `${sign}тринадцать`; break;
82-
case 14: result = `${sign}четырнадцать`; break;
83-
case 15: result = `${sign}пятнадцать`; break;
84-
case 16: result = `${sign}шестнадцать`; break;
85-
case 17: result = `${sign}семнадцать`; break;
86-
case 18: result = `${sign}восемнадцать`; break;
87-
case 19: result = `${sign}девятнадцать`; break;
88-
}
89-
}
9084
else
9185
{
9286
const textValues =
@@ -97,10 +91,31 @@ function IntToText(n)
9791
];
9892

9993
let i = 0;
94+
95+
if ((workNuber % 100 > 10) && (workNuber % 100 < 20))
96+
{
97+
switch (workNuber % 100)
98+
{
99+
case 11: result = "одинадцать"; break;
100+
case 12: result = "двенадцать"; break;
101+
case 13: result = "тринадцать"; break;
102+
case 14: result = "четырнадцать"; break;
103+
case 15: result = "пятнадцать"; break;
104+
case 16: result = "шестнадцать"; break;
105+
case 17: result = "семнадцать"; break;
106+
case 18: result = "восемнадцать"; break;
107+
case 19: result = "девятнадцать"; break;
108+
}
109+
workNuber = Math.floor(workNuber / 100);
110+
i = 2;
111+
}
112+
100113
while (workNuber != 0)
101114
{
102115
let curDigit = workNuber % 10;
103-
result = textValues[i][curDigit] + (result.length > 0 ? " ": "") + result;
116+
117+
if (curDigit != 0)
118+
result = textValues[i][curDigit] + (result.length > 0 ? " " : "") + result;
104119

105120
workNuber = Math.floor(workNuber / 10);
106121
i++;
@@ -112,6 +127,7 @@ function IntToText(n)
112127
return (result.length < maxLength) ? result : n;
113128
}
114129

130+
// Стартовая форма закрыта
115131
modalInputValues.on('hidden.bs.modal', Start);
116132

117133
// Рестарт программы
@@ -140,8 +156,6 @@ document.querySelector('#btnOver').addEventListener('click', function () {
140156
answerNumber = Math.floor((minValue + maxValue) / 2);
141157
orderNumberField.innerText = orderNumber++;
142158

143-
//Вывод числа в прописью, если строка получается менее 20 символов (15 баллов)
144-
145159
const phraseRandom = Math.round( Math.random() * (nextAnswerPhrases.length - 1));
146160
answerField.innerText = `${nextAnswerPhrases[phraseRandom]} ${IntToText(answerNumber)}?`;
147161
}
@@ -161,8 +175,6 @@ document.querySelector('#btnLess').addEventListener('click', function () {
161175
answerNumber = Math.floor((minValue + maxValue) / 2);
162176
orderNumberField.innerText = orderNumber++;
163177

164-
//Вывод числа в прописью, если строка получается менее 20 символов (15 баллов)
165-
166178
const phraseRandom = Math.round( Math.random() * (nextAnswerPhrases.length - 1));
167179
answerField.innerText = `${nextAnswerPhrases[phraseRandom]} ${IntToText(answerNumber)}?`;
168180
}
@@ -179,4 +191,5 @@ document.querySelector('#btnEqual').addEventListener('click', function () {
179191
}
180192
});
181193

194+
// Открыть стартовую форму
182195
modalInputValues.modal("show");

0 commit comments

Comments
 (0)