@@ -25,16 +25,20 @@ const successAnswerPhrases = [
25
25
//UI links
26
26
const orderNumberField = document . querySelector ( '#orderNumberField' ) ;
27
27
const answerField = document . querySelector ( '#answerField' ) ;
28
+
28
29
const modalInputValues = $ ( '#modalInputValues' ) ;
29
30
const minValueField = document . querySelector ( '#minValueInput' ) ;
30
31
const maxValueField = document . querySelector ( '#maxValueInput' ) ;
32
+
31
33
const modalStartAlert = $ ( '#modalStartAlert' ) ;
32
34
const modalStartAlertText = document . querySelector ( "#modalStartAlert h5" ) ;
33
35
34
36
//vars
35
37
let minValue , maxValue , answerNumber , orderNumber ;
36
38
let gameRun ;
39
+ let firstRun = true ;
37
40
41
+ //Старт/рестарт игры
38
42
function Start ( )
39
43
{
40
44
minValue = parseInt ( minValueField . value ) || 0 ;
@@ -57,10 +61,15 @@ function Start()
57
61
orderNumberField . innerText = orderNumber ++ ;
58
62
answerField . innerText = `${ nextAnswerPhrases [ 0 ] } ${ IntToText ( answerNumber ) } ?` ;
59
63
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
+ }
62
70
}
63
71
72
+ // Перевод числовой записи в пропись
64
73
function IntToText ( n )
65
74
{
66
75
const maxLength = 20 ;
@@ -72,21 +81,6 @@ function IntToText(n)
72
81
{
73
82
result = 'ноль' ;
74
83
}
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
- }
90
84
else
91
85
{
92
86
const textValues =
@@ -97,10 +91,31 @@ function IntToText(n)
97
91
] ;
98
92
99
93
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
+
100
113
while ( workNuber != 0 )
101
114
{
102
115
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 ;
104
119
105
120
workNuber = Math . floor ( workNuber / 10 ) ;
106
121
i ++ ;
@@ -112,6 +127,7 @@ function IntToText(n)
112
127
return ( result . length < maxLength ) ? result : n ;
113
128
}
114
129
130
+ // Стартовая форма закрыта
115
131
modalInputValues . on ( 'hidden.bs.modal' , Start ) ;
116
132
117
133
// Рестарт программы
@@ -140,8 +156,6 @@ document.querySelector('#btnOver').addEventListener('click', function () {
140
156
answerNumber = Math . floor ( ( minValue + maxValue ) / 2 ) ;
141
157
orderNumberField . innerText = orderNumber ++ ;
142
158
143
- //Вывод числа в прописью, если строка получается менее 20 символов (15 баллов)
144
-
145
159
const phraseRandom = Math . round ( Math . random ( ) * ( nextAnswerPhrases . length - 1 ) ) ;
146
160
answerField . innerText = `${ nextAnswerPhrases [ phraseRandom ] } ${ IntToText ( answerNumber ) } ?` ;
147
161
}
@@ -161,8 +175,6 @@ document.querySelector('#btnLess').addEventListener('click', function () {
161
175
answerNumber = Math . floor ( ( minValue + maxValue ) / 2 ) ;
162
176
orderNumberField . innerText = orderNumber ++ ;
163
177
164
- //Вывод числа в прописью, если строка получается менее 20 символов (15 баллов)
165
-
166
178
const phraseRandom = Math . round ( Math . random ( ) * ( nextAnswerPhrases . length - 1 ) ) ;
167
179
answerField . innerText = `${ nextAnswerPhrases [ phraseRandom ] } ${ IntToText ( answerNumber ) } ?` ;
168
180
}
@@ -179,4 +191,5 @@ document.querySelector('#btnEqual').addEventListener('click', function () {
179
191
}
180
192
} ) ;
181
193
194
+ // Открыть стартовую форму
182
195
modalInputValues . modal ( "show" ) ;
0 commit comments