forked from VladimirIvanov93/javascript-tasks-1
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathroman-time.js
110 lines (96 loc) · 2.26 KB
/
roman-time.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
var hours = Number(process.argv[2]);
var minutes = Number(process.argv[3]);
// Немного замечательного кода и магии
if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) {
console.log('Время указано неверно');
return;
}
else {
var timeRoman = numberToRoman(hours) + ':' + numberToRoman(minutes);
printASCII(timeRoman);
}
function numberToRoman(number) {
var numberRoman = '';
var reverseListOfRomanNumber = [50, 40, 10, 9, 5, 4, 1];
var dictOfRomanNumber = {
1: 'I',
4: 'IV',
5: 'V',
9: 'IX',
10: 'X',
40: 'XL',
50: 'L'
};
for (var i = 0; i < reverseListOfRomanNumber.length; i++)
{
while (number >= reverseListOfRomanNumber[i])
{
numberRoman += dictOfRomanNumber[reverseListOfRomanNumber[i]];
number -= reverseListOfRomanNumber[i];
}
}
if (numberRoman === '') {
return '-';
}
return numberRoman;
}
function printASCII(time) {
var symbolASCII = {
'I' : [ ' _ _ _ _ _ ',
'(_)(_)(_)(_)(_)',
' (_) ',
' (_) ',
' (_) ',
' (_) ',
' _ _ (_) _ _ ',
'(_)(_)(_)(_)(_)'],
'V' : [ ' _ _ ',
'(_) (_)',
'(_) (_)',
'(_)_ _(_)',
' (_) (_) ',
' (_) (_) ',
' (_)_(_) ',
' (_) '],
'X' : [ ' _ _ ',
'(_)_ _(_)',
' (_)_ _(_) ',
' (_)_(_) ',
' _(_)_ ',
' _(_) (_)_ ',
' _(_) (_)_ ',
'(_) (_)'],
'L' : [ ' _ ',
'(_) ',
'(_) ',
'(_) ',
'(_) ',
'(_) ',
'(_) ',
'(_)(_)(_)(_)(_)'],
':' : [ ' _ _ ',
' (_)(_) ',
' (_)(_) ',
' ',
' _ _ ',
' (_)(_) ',
' (_)(_) ',
' '],
'-' : [ ' ',
' ',
' ',
'(_)(_)(_)(_)(_)',
'(_)(_)(_)(_)(_)',
' ',
' ',
' ']
}
var str = '';
for (var j = 0; j < 8; j++) {
for (var i = 0; i < time.length; i++) {
str += symbolASCII[time[i]][j] + ' ';
}
console.log(str);
str = '';
}
}