@@ -22,8 +22,8 @@ class Game {
22
22
remove_door . classList . add ( "removed" )
23
23
24
24
if ( document . querySelectorAll ( '#doors > .door:not(.removed)' ) . length == 1 ) {
25
- this . onGameEnd ( true )
26
25
document . querySelector ( '#doors > .door:not(.removed)' ) . classList . add ( "prize" )
26
+ this . onGameEnd ( true )
27
27
} else {
28
28
callback ( )
29
29
}
@@ -37,41 +37,53 @@ var LANG = {
37
37
"title" : "Monty Hall problem" ,
38
38
"game" : [ "Imagine that you are on a TV game.\nThere is a prize behind one of the doors, the rest are empty.\nChoose one of the doors:" ,
39
39
"The host removes one of the empty doors and asks you:\n— Are you sure of your choice?" ] ,
40
- "win " : "Congratulations! You won a prize!!! 🎉🎉🎉" ,
41
- "lose " : "Unfortunately you lost 😢" ,
40
+ "on_win " : "Congratulations! You won a prize!!! 🎉🎉🎉" ,
41
+ "on_lose " : "Unfortunately you lost 😢" ,
42
42
43
43
"select" : "Select" ,
44
44
"skip" : "Skip" ,
45
- "again" : "Repeat"
45
+ "again" : "Repeat" ,
46
+
47
+ "history" : "History" ,
48
+ "win" : "Win" ,
49
+ "lose" : "Loss"
46
50
} ,
47
51
"ru" : {
48
52
"title" : "Парадокс Монти Холла" ,
49
53
"game" : [ "Представьте что вы на телеигре.\nЗа одной из дверей приз, остальные пустые.\nВыберите одну из дверей:" ,
50
54
"Ведущий убирает одну из пустых дверей и спрашивает вас:\n— Вы уверены в своём выборе?" ] ,
51
- "win " : "Ура! Вы выиграли приз!!! 🎉🎉🎉" ,
52
- "lose " : "К сожалению, вы проиграли 😢" ,
55
+ "on_win " : "Ура! Вы выиграли приз!!! 🎉🎉🎉" ,
56
+ "on_lose " : "К сожалению, вы проиграли 😢" ,
53
57
54
58
"select" : "Выбрать" ,
55
59
"skip" : "Пропустить" ,
56
- "again" : "Повторить"
60
+ "again" : "Повторить" ,
61
+
62
+ "history" : "История" ,
63
+ "win" : "Победа" ,
64
+ "lose" : "Поражение"
57
65
} ,
58
66
"uk" : {
59
67
"title" : "Парадокс Монті Голла" ,
60
68
"game" : [ "Уявіть, що ви на телегрі.\nЗа однією з дверей приз, інші порожні.\nВиберіть одну з дверей:" ,
61
69
"Ведучий прибирає одну з порожніх дверей і запитує вас: - Ви впевнені у своєму виборі?" ] ,
62
- "win " : "Ура! Ви виграли приз! 🎉🎉🎉" ,
63
- "lose " : "На жаль, ви програли 😢" ,
70
+ "on_win " : "Ура! Ви виграли приз! 🎉🎉🎉" ,
71
+ "on_lose " : "На жаль, ви програли 😢" ,
64
72
65
73
"select" : "Вибрати" ,
66
74
"skip" : "Пропустити" ,
67
- "again" : "Повторити"
75
+ "again" : "Повторити" ,
76
+
77
+ "history" : "Історія" ,
78
+ "win" : "Перемога" ,
79
+ "lose" : "Поразка"
68
80
}
69
81
}
70
82
71
83
var canSelect = true ;
72
- var skiper , game ;
84
+ var skiper , game , user_lang ;
73
85
function main ( ) {
74
- let user_lang = langEngine ( )
86
+ user_lang = langEngine ( )
75
87
localize ( LANG [ user_lang ] )
76
88
77
89
document . querySelector ( "#skip button" ) . onclick = _ => {
@@ -115,12 +127,17 @@ function main(){
115
127
game . onGameEnd = function ( result ) {
116
128
clear ( )
117
129
if ( result ) {
118
- skiper = print ( LANG [ user_lang ] . win )
130
+ skiper = print ( LANG [ user_lang ] . on_win )
119
131
document . querySelector ( "#titles" ) . classList . add ( "win" )
120
132
} else {
121
- skiper = print ( LANG [ user_lang ] . lose )
133
+ skiper = print ( LANG [ user_lang ] . on_lose )
122
134
document . querySelector ( "#titles" ) . classList . add ( "lose" )
123
135
}
136
+
137
+ pushHistory ( result , {
138
+ prize_door : document . querySelector ( "#doors > .door.prize" ) . getAttribute ( "num" ) ,
139
+ selected_door : document . querySelector ( "#doors > .door.selected" ) . getAttribute ( "num" )
140
+ } )
124
141
125
142
setTimeout ( _ => {
126
143
button . innerHTML = LANG [ user_lang ] . again
@@ -216,4 +233,37 @@ function localize(dict){
216
233
document . title = dict . title
217
234
document . querySelector ( "#skip button" ) . innerHTML = dict . skip
218
235
document . querySelector ( "#select-button button" ) . innerHTML = dict . select
236
+ document . querySelector ( "#history-title" ) . innerHTML = dict . history
237
+ }
238
+
239
+ function pushHistory ( result , cards ) {
240
+ let count = document . querySelector ( "#history-counter" ) . innerHTML . split ( "/" ) . map ( e => parseInt ( e ) )
241
+ count [ 1 ] ++ ;
242
+ let element = parseHTML ( `<div class="history-element">
243
+ <div class="title"></div>
244
+ <div class="cards">
245
+ <div class="card"></div>
246
+ <div class="card"></div>
247
+ <div class="card"></div>
248
+ </div>
249
+ </div>` )
250
+ if ( result ) {
251
+ count [ 0 ] ++ ;
252
+ element . querySelector ( ".title" ) . classList . add ( "win" )
253
+ element . querySelector ( ".title" ) . innerHTML = LANG [ user_lang ] . win
254
+ } else {
255
+ element . querySelector ( ".title" ) . classList . add ( "lose" )
256
+ element . querySelector ( ".title" ) . innerHTML = LANG [ user_lang ] . lose
257
+ }
258
+ element . querySelector ( `.cards .card:nth-child(${ cards . prize_door } )` ) . classList . add ( "prize" )
259
+ element . querySelector ( `.cards .card:nth-child(${ cards . selected_door } )` ) . classList . add ( "selected" )
260
+ document . querySelector ( "#history" ) . appendChild ( element )
261
+
262
+ document . querySelector ( "#history-counter" ) . innerHTML = count . join ( "/" )
263
+ }
264
+
265
+ function parseHTML ( txt ) {
266
+ var t = document . createElement ( 'template' ) ;
267
+ t . innerHTML = txt ;
268
+ return t . content . firstChild ;
219
269
}
0 commit comments