@@ -25,16 +25,20 @@ const successAnswerPhrases = [
2525//UI links
2626const orderNumberField = document . querySelector ( '#orderNumberField' ) ;
2727const answerField = document . querySelector ( '#answerField' ) ;
28+
2829const modalInputValues = $ ( '#modalInputValues' ) ;
2930const minValueField = document . querySelector ( '#minValueInput' ) ;
3031const maxValueField = document . querySelector ( '#maxValueInput' ) ;
32+
3133const modalStartAlert = $ ( '#modalStartAlert' ) ;
3234const modalStartAlertText = document . querySelector ( "#modalStartAlert h5" ) ;
3335
3436//vars
3537let minValue , maxValue , answerNumber , orderNumber ;
3638let gameRun ;
39+ let firstRun = true ;
3740
41+ //Старт/рестарт игры
3842function 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+ // Перевод числовой записи в пропись
6473function 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+ // Стартовая форма закрыта
115131modalInputValues . 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+ // Открыть стартовую форму
182195modalInputValues . modal ( "show" ) ;
0 commit comments