@@ -33,21 +33,79 @@ let gameRun;
33
33
function Start ( )
34
34
{
35
35
//Заменить методы window на что-нибудь из bootstrap (20 баллов)
36
- minValue = parseInt ( prompt ( 'Минимальное знание числа для игры' , '0' ) ) ;
37
- maxValue = parseInt ( prompt ( 'Максимальное знание числа для игры' , '100' ) ) ;
38
- alert ( `Загадайте любое целое число от ${ minValue } до ${ maxValue } , а я его угадаю` ) ;
36
+ minValue = parseInt ( prompt ( 'Минимальное знание числа для игры' , '0' ) ) || 0 ;
37
+ maxValue = parseInt ( prompt ( 'Максимальное знание числа для игры' , '100' ) ) || 100 ;
38
+
39
+ if ( minValue > maxValue )
40
+ {
41
+ let b = minValue ;
42
+ minValue = maxValue ;
43
+ maxValue = b ;
44
+ }
39
45
40
- //Валидация введенных значений (через дизъюнкции) (10 баллов)
46
+ minValue = minValue < - 999 ? - 999 : minValue ;
47
+ maxValue = maxValue > 999 ? 999 : maxValue ;
41
48
42
- //Ограничение по минимому и максимому для введенных значений (через тернарный оператор) (10 баллов)
43
- // мин = -999 макс = 999
49
+
50
+ alert ( `Загадайте любое целое число от ${ minValue } до ${ maxValue } , а я его угадаю` ) ;
44
51
45
52
answerNumber = Math . floor ( ( minValue + maxValue ) / 2 ) ;
46
53
orderNumber = 1 ;
47
54
gameRun = true ;
48
55
49
56
orderNumberField . innerText = orderNumber ++ ;
50
- answerField . innerText = `${ nextAnswerPhrases [ 0 ] } ${ answerNumber } ?` ;
57
+ answerField . innerText = `${ nextAnswerPhrases [ 0 ] } ${ IntToText ( answerNumber ) } ?` ;
58
+ }
59
+
60
+ function IntToText ( n )
61
+ {
62
+ const maxLength = 20 ;
63
+ let result = "" ;
64
+ let sign = ( Math . abs ( n ) != n ) ? "минус " : "" ;
65
+ let workNuber = Math . abs ( n ) ;
66
+
67
+ if ( n == 0 )
68
+ {
69
+ result = 'ноль' ;
70
+ }
71
+ else if ( ( workNuber > 10 ) && ( workNuber < 20 ) )
72
+ {
73
+ switch ( workNuber )
74
+ {
75
+ case 11 : result = `${ sign } одинадцать` ; break ;
76
+ case 12 : result = `${ sign } двенадцать` ; break ;
77
+ case 13 : result = `${ sign } тринадцать` ; break ;
78
+ case 14 : result = `${ sign } четырнадцать` ; break ;
79
+ case 15 : result = `${ sign } пятнадцать` ; break ;
80
+ case 16 : result = `${ sign } шестнадцать` ; break ;
81
+ case 17 : result = `${ sign } семнадцать` ; break ;
82
+ case 18 : result = `${ sign } восемнадцать` ; break ;
83
+ case 19 : result = `${ sign } девятнадцать` ; break ;
84
+ }
85
+ }
86
+ else
87
+ {
88
+ const textValues =
89
+ [
90
+ [ "" , "один" , "два" , "три" , "четыре" , "пять" , "шесть" , "семь" , "восемь" , "девять" ] ,
91
+ [ "" , "десять" , "двадцать" , "тридцать" , "сорок" , "пятьдесят" , "шестьдесят" , "семьдесят" , "восемьдесят" , "девяносто" ] ,
92
+ [ "" , "сто" , "двести" , "тристо" , "четыресто" , "пятьсот" , "шестьсот" , "семьсот" , "восемьсот" , "девятьсот" ] ,
93
+ ] ;
94
+
95
+ let i = 0 ;
96
+ while ( workNuber != 0 )
97
+ {
98
+ let curDigit = workNuber % 10 ;
99
+ result = textValues [ i ] [ curDigit ] + ( result . length > 0 ? " " : "" ) + result ;
100
+
101
+ workNuber = Math . floor ( workNuber / 10 ) ;
102
+ i ++ ;
103
+ }
104
+
105
+ result = sign + result ;
106
+ }
107
+
108
+ return ( result . length < maxLength ) ? result : n ;
51
109
}
52
110
53
111
Start ( ) ;
@@ -81,7 +139,7 @@ document.querySelector('#btnOver').addEventListener('click', function () {
81
139
//Вывод числа в прописью, если строка получается менее 20 символов (15 баллов)
82
140
83
141
const phraseRandom = Math . round ( Math . random ( ) * ( nextAnswerPhrases . length - 1 ) ) ;
84
- answerField . innerText = `${ nextAnswerPhrases [ phraseRandom ] } ${ answerNumber } ?` ;
142
+ answerField . innerText = `${ nextAnswerPhrases [ phraseRandom ] } ${ IntToText ( answerNumber ) } ?` ;
85
143
}
86
144
}
87
145
} )
@@ -102,7 +160,7 @@ document.querySelector('#btnLess').addEventListener('click', function () {
102
160
//Вывод числа в прописью, если строка получается менее 20 символов (15 баллов)
103
161
104
162
const phraseRandom = Math . round ( Math . random ( ) * ( nextAnswerPhrases . length - 1 ) ) ;
105
- answerField . innerText = `${ nextAnswerPhrases [ phraseRandom ] } ${ answerNumber } ?` ;
163
+ answerField . innerText = `${ nextAnswerPhrases [ phraseRandom ] } ${ IntToText ( answerNumber ) } ?` ;
106
164
}
107
165
}
108
166
} )
0 commit comments