-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
616 lines (567 loc) · 33.3 KB
/
Copy pathscript.js
File metadata and controls
616 lines (567 loc) · 33.3 KB
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
// ── Word list (300+ words) ────────────────────────────────────────────────────
const WORDS = [
// Animais
{ word: 'ELEFANTE', hint: 'Maior mamífero terrestre' },
{ word: 'BORBOLETA', hint: 'Inseto de asas coloridas' },
{ word: 'JACARÉ', hint: 'Réptil que vive em rios' },
{ word: 'PINGUIM', hint: 'Ave que não voa, habita o polo' },
{ word: 'TARTARUGA', hint: 'Réptil lento com casco' },
{ word: 'POLVO', hint: 'Molusco com oito tentáculos' },
{ word: 'LAGOSTA', hint: 'Crustáceo marinho' },
{ word: 'HIPOPÓTAMO', hint: 'Grande mamífero semiacuático africano' },
{ word: 'URSO', hint: 'Grande mamífero onívoro' },
{ word: 'ZEBRA', hint: 'Animal africano com listras pretas e brancas' },
{ word: 'MARIPOSA', hint: 'Borboleta noturna' },
{ word: 'BALEIA', hint: 'Maior animal do planeta' },
{ word: 'CAVALO', hint: 'Mamífero veloz domesticado' },
{ word: 'LEÃO', hint: 'Felino chamado rei da selva' },
{ word: 'TIGRE', hint: 'Felino listrado da Ásia' },
{ word: 'GIRAFA', hint: 'Animal de pescoço muito longo' },
{ word: 'CANGURU', hint: 'Marsupial australiano com bolsa' },
{ word: 'AVESTRUZ', hint: 'Maior ave do mundo, não voa' },
{ word: 'FLAMINGO', hint: 'Ave rosa que fica em uma perna' },
{ word: 'GOLFINHO', hint: 'Mamífero marinho inteligente' },
{ word: 'TUBARÃO', hint: 'Peixe predador do oceano' },
{ word: 'CROCODILO', hint: 'Réptil de rio africano' },
{ word: 'CAMALEÃO', hint: 'Lagarto que muda de cor' },
{ word: 'PAPAGAIO', hint: 'Ave que imita sons humanos' },
{ word: 'TUCANO', hint: 'Ave brasileira com bico colorido e grande' },
{ word: 'ARARA', hint: 'Ave brasileira de grande porte e colorida' },
{ word: 'CAPIVARA', hint: 'Maior roedor do mundo' },
{ word: 'MORCEGO', hint: 'Único mamífero que voa de verdade' },
{ word: 'LONTRA', hint: 'Mamífero aquático brincalhão' },
{ word: 'ORNITORRINCO', hint: 'Mamífero único que bota ovos e tem bico' },
{ word: 'RINOCERONTE', hint: 'Animal com chifre no nariz' },
{ word: 'LEOPARDO', hint: 'Felino de manchas arredondadas' },
{ word: 'PANDA', hint: 'Urso asiático preto e branco' },
{ word: 'GUEPARDO', hint: 'Felino mais rápido do mundo' },
{ word: 'PELICANO', hint: 'Ave com grande bolsa no bico' },
{ word: 'IGUANA', hint: 'Lagarto herbívoro tropical' },
{ word: 'PIRANHA', hint: 'Peixe carnívoro amazônico' },
{ word: 'LAGARTO', hint: 'Réptil de quatro patas' },
{ word: 'GAVIÃO', hint: 'Ave de rapina diurna' },
{ word: 'ESCORPIÃO', hint: 'Artrópode com ferrão venenoso' },
{ word: 'SURICATO', hint: 'Pequeno mamífero africano social' },
{ word: 'ALBATROZ', hint: 'Ave marinha de grande envergadura' },
{ word: 'MANDRIL', hint: 'Macaco africano muito colorido' },
{ word: 'ANACONDA', hint: 'Maior cobra do mundo em peso' },
{ word: 'NARVAL', hint: 'Baleia ártica com longo chifre espiral' },
{ word: 'PREGUIÇA', hint: 'Mamífero que se move muito lentamente' },
{ word: 'TAMANDUÁ', hint: 'Animal que come formigas com língua longa' },
{ word: 'ONÇA', hint: 'Maior felino das Américas' },
{ word: 'LOBO', hint: 'Canídeo selvagem que uiva para a lua' },
{ word: 'RAPOSA', hint: 'Canídeo ágil e astuto' },
{ word: 'PORQUINHO', hint: 'Animal de fazenda rosado' },
{ word: 'CARNEIRO', hint: 'Mamífero com lã e chifres enrolados' },
{ word: 'LHAMA', hint: 'Camelídeo sul-americano' },
{ word: 'ALPACA', hint: 'Camelídeo peruano de lã macia' },
{ word: 'BISÃO', hint: 'Grande bovídeo das pradarias americanas' },
{ word: 'WOMBAT', hint: 'Marsupial australiano que escava' },
{ word: 'COIOTE', hint: 'Canídeo selvagem norte-americano' },
// Dinossauros
{ word: 'TRICERATOPS', hint: 'Dinossauro com três chifres' },
{ word: 'ESTEGOSSAURO', hint: 'Dinossauro com placas no dorso' },
{ word: 'VELOCIRRAPTOR', hint: 'Dinossauro predador pequeno e veloz' },
{ word: 'DIPLODOCO', hint: 'Dinossauro herbívoro de pescoço comprido' },
{ word: 'MEGALODON', hint: 'Tubarão pré-histórico gigante extinto' },
{ word: 'MAMUTE', hint: 'Elefante pré-histórico com presas longas' },
{ word: 'PTERODÁTILO', hint: 'Réptil voador pré-histórico' },
// Frutas e alimentos
{ word: 'ABACAXI', hint: 'Fruta tropical espinhosa' },
{ word: 'MAÇÃ', hint: 'Fruta redonda vermelha ou verde' },
{ word: 'QUEIJO', hint: 'Alimento derivado do leite' },
{ word: 'CHOCOLATE', hint: 'Doce feito de cacau' },
{ word: 'MORANGO', hint: 'Fruta vermelha pequena e perfumada' },
{ word: 'MANGA', hint: 'Fruta tropical amarela muito doce' },
{ word: 'MAMÃO', hint: 'Fruta alaranjada tropical' },
{ word: 'GOIABA', hint: 'Fruta verde com polpa rosada' },
{ word: 'MELANCIA', hint: 'Fruta grande verde com polpa vermelha' },
{ word: 'ABACATE', hint: 'Fruta verde de polpa cremosa' },
{ word: 'CAJU', hint: 'Fruta típica do nordeste brasileiro' },
{ word: 'LARANJA', hint: 'Fruta cítrica alaranjada' },
{ word: 'AMEIXA', hint: 'Fruta pequena e roxa' },
{ word: 'BANANA', hint: 'Fruta amarela em formato curvo' },
{ word: 'CEREJA', hint: 'Fruta vermelha pequena com cabinho' },
{ word: 'TAMARINDO', hint: 'Fruta tropical de sabor azedo' },
{ word: 'PITANGA', hint: 'Fruta vermelha nativa brasileira' },
{ word: 'JABUTICABA', hint: 'Fruta roxa que nasce diretamente no tronco' },
{ word: 'BRIGADEIRO', hint: 'Doce brasileiro de chocolate e leite condensado' },
{ word: 'PAMONHA', hint: 'Prato típico feito de milho' },
{ word: 'COXINHA', hint: 'Salgado brasileiro recheado com frango' },
{ word: 'LASANHA', hint: 'Massa italiana assada em camadas' },
{ word: 'MACARRÃO', hint: 'Massa italiana culinária' },
{ word: 'FEIJOADA', hint: 'Prato típico brasileiro de feijão e carnes' },
{ word: 'CHURRASCO', hint: 'Carne assada na brasa ou grelha' },
{ word: 'TAPIOCA', hint: 'Crepe de fécula de mandioca' },
{ word: 'SORVETE', hint: 'Sobremesa gelada cremosa' },
{ word: 'BISCOITO', hint: 'Bolacha assada crocante' },
{ word: 'CARAMELO', hint: 'Açúcar derretido e dourado' },
{ word: 'PANQUECA', hint: 'Massa fina assada em frigideira' },
{ word: 'PIPOCA', hint: 'Milho estourado no calor' },
{ word: 'PUDIM', hint: 'Sobremesa brasileira de leite com calda' },
{ word: 'PAÇOCA', hint: 'Doce nordestino de amendoim' },
{ word: 'COCADA', hint: 'Doce feito de coco' },
{ word: 'QUINDIM', hint: 'Doce amarelo de ovos e coco' },
{ word: 'RAPADURA', hint: 'Açúcar mascavo prensado nordestino' },
{ word: 'GOIABADA', hint: 'Doce de goiaba em pasta' },
{ word: 'ABOBORA', hint: 'Legume laranja de outono' },
{ word: 'BERINJELA', hint: 'Legume roxo escuro' },
{ word: 'BETERRABA', hint: 'Raiz vermelha escura' },
// Esportes
{ word: 'FUTEBOL', hint: 'Esporte mais popular do Brasil' },
{ word: 'XADREZ', hint: 'Jogo de estratégia milenar com peças' },
{ word: 'KARATÊ', hint: 'Arte marcial japonesa de golpes' },
{ word: 'BASQUETE', hint: 'Esporte com cesta alta e bola laranja' },
{ word: 'VOLEIBOL', hint: 'Esporte de rede com times de seis jogadores' },
{ word: 'NATAÇÃO', hint: 'Esporte aquático' },
{ word: 'ATLETISMO', hint: 'Conjunto de provas de pista e campo' },
{ word: 'CICLISMO', hint: 'Esporte praticado com bicicleta' },
{ word: 'GINÁSTICA', hint: 'Esporte de acrobacias e equilíbrio' },
{ word: 'TÊNIS', hint: 'Esporte com raquete, bola e rede' },
{ word: 'GOLFE', hint: 'Esporte com tacos e buracos no gramado' },
{ word: 'JUDÔ', hint: 'Arte marcial japonesa de projeções' },
{ word: 'ESGRIMA', hint: 'Combate esportivo com espadas' },
{ word: 'BADMINTON', hint: 'Esporte com raquete e peteca' },
{ word: 'CANOAGEM', hint: 'Esporte de remo em canoa' },
{ word: 'ESCALADA', hint: 'Esporte de subir em rocha ou parede' },
{ word: 'SURFE', hint: 'Esporte praticado em ondas do mar' },
{ word: 'MERGULHO', hint: 'Exploração subaquática com equipamento' },
{ word: 'HIPISMO', hint: 'Esporte equestre praticado com cavalos' },
{ word: 'HANDEBOL', hint: 'Esporte de quadra com bola e gols' },
{ word: 'BOXE', hint: 'Esporte de luta com luvas e ringue' },
{ word: 'TRIATLO', hint: 'Prova que combina natação, ciclismo e corrida' },
{ word: 'REMO', hint: 'Esporte aquático com remos em barco' },
{ word: 'POLO', hint: 'Esporte a cavalo com tacos' },
{ word: 'BOLICHE', hint: 'Esporte de derrubar pinos com bola' },
{ word: 'BILHAR', hint: 'Esporte com tacos e bolas em mesa verde' },
{ word: 'AIKIDO', hint: 'Arte marcial japonesa de defesa' },
{ word: 'TAEKWONDO', hint: 'Arte marcial coreana com chutes' },
// Tecnologia
{ word: 'COMPUTADOR', hint: 'Máquina eletrônica de processar dados' },
{ word: 'INTERNET', hint: 'Rede mundial de computadores' },
{ word: 'TELESCÓPIO', hint: 'Instrumento óptico para observar estrelas' },
{ word: 'MICROSCÓPIO', hint: 'Instrumento para ver coisas microscópicas' },
{ word: 'SATÉLITE', hint: 'Objeto artificial em órbita da Terra' },
{ word: 'FOGUETE', hint: 'Veículo propulsado para o espaço' },
{ word: 'SUBMARINO', hint: 'Veículo que navega sob a água' },
{ word: 'HELICÓPTERO', hint: 'Aeronave de hélice rotatória' },
{ word: 'ALGORITMO', hint: 'Sequência de instruções computacionais' },
{ word: 'CALCULADORA', hint: 'Dispositivo eletrônico de cálculo' },
{ word: 'IMPRESSORA', hint: 'Dispositivo que imprime documentos' },
{ word: 'PROCESSADOR', hint: 'Componente central do computador' },
{ word: 'TECLADO', hint: 'Periférico de entrada de texto' },
{ word: 'SERVIDOR', hint: 'Computador que hospeda serviços na rede' },
{ word: 'APLICATIVO', hint: 'Programa para celular ou computador' },
{ word: 'ELETRICIDADE', hint: 'Energia gerada por elétrons em movimento' },
{ word: 'AUTOMÓVEL', hint: 'Veículo motorizado terrestre' },
{ word: 'AVIÃO', hint: 'Aeronave de asas fixas' },
{ word: 'ROBÔ', hint: 'Máquina programável e autônoma' },
{ word: 'RADAR', hint: 'Sistema de detecção por ondas de rádio' },
{ word: 'PERISCÓPIO', hint: 'Instrumento óptico de submarinos' },
{ word: 'GIROSCÓPIO', hint: 'Dispositivo de orientação e estabilização' },
{ word: 'CALEIDOSCÓPIO', hint: 'Tubo com espelhos e padrões coloridos' },
{ word: 'MICROFONE', hint: 'Dispositivo que capta sons' },
{ word: 'ALTAVOZ', hint: 'Dispositivo que amplifica sons' },
// Geografia e Natureza
{ word: 'OCEANO', hint: 'Enorme massa de água salgada' },
{ word: 'HORIZONTE', hint: 'Linha onde o céu parece encontrar a terra' },
{ word: 'CACHOEIRA', hint: 'Queda de água na natureza' },
{ word: 'VULCÃO', hint: 'Montanha que expele lava e cinzas' },
{ word: 'MONTANHA', hint: 'Grande elevação natural do terreno' },
{ word: 'DESERTO', hint: 'Região árida com pouca chuva' },
{ word: 'FLORESTA', hint: 'Área densa de árvores e vegetação' },
{ word: 'SAVANA', hint: 'Região tropical de gramíneas e árvores esparsas' },
{ word: 'PANTANAL', hint: 'Maior área úmida do mundo, no Brasil' },
{ word: 'AMAZÔNIA', hint: 'Maior floresta tropical do mundo' },
{ word: 'CATARATAS', hint: 'Grandes quedas de água entre países' },
{ word: 'ARQUIPÉLAGO', hint: 'Conjunto de ilhas próximas' },
{ word: 'CONTINENTE', hint: 'Grande massa de terra do planeta' },
{ word: 'TERREMOTO', hint: 'Tremor da crosta terrestre' },
{ word: 'FURACÃO', hint: 'Tempestade tropical de grandes proporções' },
{ word: 'TORNADO', hint: 'Coluna de vento giratório e destruidor' },
{ word: 'GLACIAR', hint: 'Massa de gelo que se move lentamente' },
{ word: 'CERRADO', hint: 'Savana brasileira rica em biodiversidade' },
{ word: 'CAATINGA', hint: 'Bioma seco e exclusivo do nordeste brasileiro' },
{ word: 'RELÂMPAGO', hint: 'Descarga elétrica durante tempestade' },
{ word: 'NUVEM', hint: 'Acúmulo de vapor de água condensado no céu' },
{ word: 'MAREMOTO', hint: 'Terremoto no fundo do oceano' },
{ word: 'NEBLINA', hint: 'Névoa densa que reduz a visibilidade' },
{ word: 'GRANIZO', hint: 'Chuva de pedras de gelo' },
{ word: 'TSUNAMI', hint: 'Onda gigante causada por terremoto submarino' },
{ word: 'AVALANCHE', hint: 'Deslizamento rápido de neve em montanha' },
{ word: 'MARÉ', hint: 'Oscilação periódica da água do mar' },
{ word: 'ESTUÁRIO', hint: 'Região onde o rio encontra o mar' },
{ word: 'MANGUE', hint: 'Vegetação costeira de raízes expostas' },
{ word: 'PAMPAS', hint: 'Planícies campestres do sul do Brasil' },
// Profissões
{ word: 'ASTRONAUTA', hint: 'Profissional que viaja ao espaço' },
{ word: 'ARQUITETO', hint: 'Profissional que projeta edifícios' },
{ word: 'PROFESSOR', hint: 'Profissional que ensina em escolas' },
{ word: 'ADVOGADO', hint: 'Profissional do direito e da lei' },
{ word: 'JORNALISTA', hint: 'Profissional que investiga e reporta notícias' },
{ word: 'FOTÓGRAFO', hint: 'Profissional que capta imagens' },
{ word: 'MÚSICO', hint: 'Artista que toca instrumentos ou canta' },
{ word: 'CIENTISTA', hint: 'Profissional dedicado à pesquisa científica' },
{ word: 'PILOTO', hint: 'Profissional que conduz aeronaves' },
{ word: 'BOMBEIRO', hint: 'Profissional que combate incêndios' },
{ word: 'COZINHEIRO', hint: 'Profissional que prepara alimentos' },
{ word: 'FARMACÊUTICO', hint: 'Profissional que manipula medicamentos' },
{ word: 'VETERINÁRIO', hint: 'Médico especializado em animais' },
{ word: 'ARQUEÓLOGO', hint: 'Estuda civilizações e artefatos antigos' },
{ word: 'BIÓLOGO', hint: 'Profissional que estuda seres vivos' },
{ word: 'QUÍMICO', hint: 'Profissional que estuda a matéria' },
{ word: 'TRADUTOR', hint: 'Converte textos entre idiomas' },
{ word: 'ESCULTOR', hint: 'Artista que cria obras tridimensionais' },
{ word: 'MAESTRO', hint: 'Regente de orquestra ou coral' },
{ word: 'DETETIVE', hint: 'Profissional de investigação criminal' },
{ word: 'ASTRONOMO', hint: 'Cientista que estuda astros e o cosmos' },
{ word: 'GEOLOGO', hint: 'Cientista que estuda rochas e o solo' },
{ word: 'CARPINTEIRO', hint: 'Artesão que trabalha com madeira' },
{ word: 'ELETRICISTA', hint: 'Profissional de instalações elétricas' },
{ word: 'MERGULHADOR', hint: 'Profissional que explora o fundo do mar' },
// Corpo humano e saúde
{ word: 'CORAÇÃO', hint: 'Órgão que bombeia o sangue' },
{ word: 'CABEÇA', hint: 'Parte superior do corpo humano' },
{ word: 'ESQUELETO', hint: 'Estrutura óssea do corpo humano' },
{ word: 'MÚSCULO', hint: 'Tecido responsável pelo movimento corporal' },
{ word: 'CÉREBRO', hint: 'Órgão central do sistema nervoso' },
{ word: 'PULMÃO', hint: 'Órgão responsável pela respiração' },
{ word: 'ESTÔMAGO', hint: 'Órgão principal da digestão' },
{ word: 'VITAMINA', hint: 'Nutriente essencial para a saúde' },
{ word: 'PROTEÍNA', hint: 'Macronutriente estrutural do organismo' },
{ word: 'VACINA', hint: 'Prevenção contra doenças infecciosas' },
{ word: 'ANTIBIÓTICO', hint: 'Medicamento que combate bactérias' },
{ word: 'HORMÔNIO', hint: 'Substância química reguladora do organismo' },
{ word: 'ARTÉRIA', hint: 'Vaso sanguíneo que sai do coração' },
{ word: 'FÍGADO', hint: 'Órgão que filtra o sangue e produz bile' },
{ word: 'RETINA', hint: 'Camada sensível à luz no fundo do olho' },
{ word: 'NEURÔNIO', hint: 'Célula do sistema nervoso' },
{ word: 'HEMOGLOBINA', hint: 'Proteína que transporta oxigênio no sangue' },
// Artes e cultura
{ word: 'BIBLIOTECA', hint: 'Lugar com grande acervo de livros' },
{ word: 'MELODIA', hint: 'Sequência harmoniosa de notas musicais' },
{ word: 'FOTOGRAFIA', hint: 'Arte de capturar e registrar imagens' },
{ word: 'GUITARRA', hint: 'Instrumento musical de cordas dedilhadas' },
{ word: 'VIOLINO', hint: 'Instrumento de arco e quatro cordas' },
{ word: 'SINFONIA', hint: 'Grande composição musical orquestral' },
{ word: 'FILOSOFIA', hint: 'Estudo da sabedoria, existência e razão' },
{ word: 'NOSTALGIA', hint: 'Saudade do passado' },
{ word: 'LITERATURA', hint: 'Arte de criar textos escritos' },
{ word: 'POESIA', hint: 'Arte de expressar sentimentos em versos' },
{ word: 'ESCULTURA', hint: 'Arte de criar obras em três dimensões' },
{ word: 'PINTURA', hint: 'Arte visual com pigmentos e tintas' },
{ word: 'BALLET', hint: 'Dança clássica europeia com pontas' },
{ word: 'TEATRO', hint: 'Arte dramática apresentada ao vivo' },
{ word: 'CIRCO', hint: 'Espetáculo com acrobatas, palhaços e animais' },
{ word: 'MUSEU', hint: 'Lugar que preserva arte, ciência e história' },
{ word: 'ÓPERA', hint: 'Teatro musical dramático com cantores' },
{ word: 'CARNAVAL', hint: 'Maior festa popular do Brasil' },
{ word: 'CAPOEIRA', hint: 'Arte marcial dançante criada no Brasil' },
{ word: 'DEMOCRACIA', hint: 'Sistema de governo escolhido pelo povo' },
{ word: 'ORIGAMI', hint: 'Arte japonesa de dobrar papel' },
{ word: 'CALIGRAFIA', hint: 'Arte da escrita bela e ornamentada' },
// Mitologia e fantasia
{ word: 'VAMPIRO', hint: 'Criatura do folclore que bebe sangue' },
{ word: 'DRAGÃO', hint: 'Criatura mítica que cospe fogo e tem asas' },
{ word: 'UNICÓRNIO', hint: 'Cavalo mítico com chifre único na testa' },
{ word: 'FÊNIX', hint: 'Ave mítica que renasce das próprias cinzas' },
{ word: 'MINOTAURO', hint: 'Criatura grega metade homem, metade touro' },
{ word: 'CENTAURO', hint: 'Criatura grega metade homem, metade cavalo' },
{ word: 'SEREIA', hint: 'Criatura metade mulher, metade peixe' },
{ word: 'LOBISOMEM', hint: 'Homem que vira lobo na lua cheia' },
{ word: 'FANTASMA', hint: 'Espírito sobrenatural de alguém falecido' },
{ word: 'BRUXA', hint: 'Personagem de feitiçaria nos contos de fada' },
{ word: 'GRIFO', hint: 'Criatura com corpo de leão e asas de águia' },
{ word: 'ESFINGE', hint: 'Criatura de corpo de leão e rosto humano' },
{ word: 'CICLOPE', hint: 'Gigante da mitologia grega com um olho só' },
{ word: 'QUIMERA', hint: 'Criatura com partes de vários animais' },
{ word: 'HARPIA', hint: 'Criatura feminina alada da mitologia grega' },
{ word: 'PÉGASO', hint: 'Cavalo alado da mitologia grega' },
{ word: 'LEVIATÃ', hint: 'Monstro marinho de origem bíblica' },
{ word: 'TRITÃO', hint: 'Deus do mar filho de Poseidon' },
{ word: 'GOLEM', hint: 'Ser criado de argila na mitologia judaica' },
// Astronomia
{ word: 'UNIVERSO', hint: 'Tudo que existe: matéria, energia e espaço' },
{ word: 'GALÁXIA', hint: 'Conjunto de bilhões de estrelas' },
{ word: 'COMETA', hint: 'Corpo celeste com cauda luminosa' },
{ word: 'ASTEROIDE', hint: 'Rocha espacial em órbita do Sol' },
{ word: 'SATURNO', hint: 'Planeta com anéis no sistema solar' },
{ word: 'JÚPITER', hint: 'Maior planeta do sistema solar' },
{ word: 'MARTE', hint: 'Planeta vermelho vizinho da Terra' },
{ word: 'VÊNUS', hint: 'Planeta mais brilhante do céu noturno' },
{ word: 'MERCÚRIO', hint: 'Planeta mais próximo do Sol' },
{ word: 'PLUTÃO', hint: 'Planeta anão além de Netuno' },
{ word: 'NETUNO', hint: 'Planeta azul gelado mais distante' },
{ word: 'URANO', hint: 'Planeta que gira deitado de lado' },
{ word: 'NEBULOSA', hint: 'Nuvem de gás e poeira no espaço' },
{ word: 'CONSTELAÇÃO', hint: 'Grupo de estrelas com forma reconhecível' },
{ word: 'ECLIPSE', hint: 'Ocultação de um astro por outro' },
{ word: 'SUPERNOVA', hint: 'Explosão de uma estrela no fim de sua vida' },
{ word: 'ANDRÔMEDA', hint: 'Galáxia vizinha da Via Láctea' },
// Objetos cotidianos
{ word: 'GELADEIRA', hint: 'Eletrodoméstico que conserva alimentos com frio' },
{ word: 'SABONETE', hint: 'Produto sólido de higiene pessoal' },
{ word: 'RELÓGIO', hint: 'Instrumento para medir e exibir o tempo' },
{ word: 'ESPELHO', hint: 'Superfície que reflete imagens' },
{ word: 'ESCADA', hint: 'Estrutura de degraus para subir e descer' },
{ word: 'MARTELO', hint: 'Ferramenta para pregar pregos' },
{ word: 'LANTERNA', hint: 'Fonte de luz portátil a pilhas' },
{ word: 'BÚSSOLA', hint: 'Instrumento de orientação geográfica' },
{ word: 'MOCHILA', hint: 'Bolsa carregada nas costas' },
{ word: 'ÓCULOS', hint: 'Acessório para correção visual' },
{ word: 'CHAPÉU', hint: 'Acessório para proteger a cabeça' },
{ word: 'CASACO', hint: 'Roupa externa para se aquecer' },
{ word: 'PERFUME', hint: 'Fragrância líquida aromática' },
{ word: 'CADEADO', hint: 'Fechadura portátil com chave' },
{ word: 'TESOURA', hint: 'Ferramenta de corte com duas lâminas' },
{ word: 'LÂMPADA', hint: 'Dispositivo de iluminação elétrica' },
{ word: 'VENTILADOR', hint: 'Aparelho que movimenta o ar' },
{ word: 'ALMOFADA', hint: 'Travesseiro decorativo de sofá' },
{ word: 'GARRAFA', hint: 'Recipiente de vidro ou plástico para líquidos' },
{ word: 'BALANÇO', hint: 'Brinquedo de parque que balança' },
// Pedras e minerais
{ word: 'TURQUESA', hint: 'Pedra preciosa azul-esverdeada' },
{ word: 'ESMERALDA', hint: 'Pedra preciosa de cor verde intensa' },
{ word: 'AMETISTA', hint: 'Pedra preciosa de cor roxa' },
{ word: 'TOPÁZIO', hint: 'Pedra preciosa amarela ou azul' },
{ word: 'SAFIRA', hint: 'Pedra preciosa de cor azul' },
{ word: 'RUBI', hint: 'Pedra preciosa de cor vermelha' },
{ word: 'DIAMANTE', hint: 'Pedra preciosa mais dura do mundo' },
{ word: 'OPALA', hint: 'Pedra preciosa com reflexos iridescentes' },
{ word: 'PÉROLA', hint: 'Gema natural formada dentro de ostras' },
{ word: 'GRANITO', hint: 'Rocha ígnea de grão grosso' },
// Construções e lugares
{ word: 'PIRÂMIDE', hint: 'Construção monumental do Antigo Egito' },
{ word: 'LABIRINTO', hint: 'Local com caminhos confusos e enganosos' },
{ word: 'CASTELO', hint: 'Construção medieval com torres e muralhas' },
{ word: 'CATEDRAL', hint: 'Grande igreja cristã principal de uma cidade' },
{ word: 'AQUEDUTO', hint: 'Canal romano para transporte de água' },
{ word: 'COLISEU', hint: 'Anfiteatro romano de combates de gladiadores' },
{ word: 'FAROL', hint: 'Torre com luz que orienta embarcações' },
{ word: 'CAVERNA', hint: 'Cavidade natural em rocha' },
{ word: 'FORTALEZA', hint: 'Construção militar de defesa' },
{ word: 'MANSÃO', hint: 'Grande e luxuosa residência' },
{ word: 'PALÁCIO', hint: 'Residência de reis e rainhas' },
// Instrumentos musicais
{ word: 'VIOLONCELO', hint: 'Instrumento de arco maior que o violino' },
{ word: 'TROMPETE', hint: 'Instrumento de sopro de metal dourado' },
{ word: 'SAXOFONE', hint: 'Instrumento de sopro inventado por Sax' },
{ word: 'ACORDEÃO', hint: 'Instrumento de foles com teclas e botões' },
{ word: 'CONTRABAIXO', hint: 'Maior instrumento de cordas friccionadas' },
{ word: 'TAMBOR', hint: 'Instrumento de percussão cilíndrico' },
{ word: 'FLAUTA', hint: 'Instrumento de sopro tubular' },
{ word: 'HARPA', hint: 'Instrumento de cordas triangular' },
{ word: 'CLARINETE', hint: 'Instrumento de sopro com palheta simples' },
{ word: 'TROMBONE', hint: 'Instrumento de sopro com vara deslizante' },
{ word: 'BANDOLIM', hint: 'Instrumento de cordas menor que a guitarra' },
{ word: 'UKULELE', hint: 'Instrumento de quatro cordas havaiano' },
// Miscelânea
{ word: 'AVENTURA', hint: 'Experiência emocionante e inesperada' },
{ word: 'MISTÉRIO', hint: 'Algo desconhecido ou enigmático' },
{ word: 'TESOURO', hint: 'Riqueza guardada ou escondida' },
{ word: 'NAUFRÁGIO', hint: 'Afundamento de um navio' },
{ word: 'EXPEDIÇÃO', hint: 'Viagem exploratória a terras desconhecidas' },
{ word: 'CAPITÃO', hint: 'Comandante de navio, avião ou time' },
{ word: 'PIRATA', hint: 'Ladrão dos mares de outras épocas' },
{ word: 'GUERREIRO', hint: 'Combatente habilidoso em batalhas' },
{ word: 'SAMURAI', hint: 'Guerreiro japonês medieval de código de honra' },
{ word: 'CAVALEIRO', hint: 'Guerreiro medieval que lutava a cavalo' },
{ word: 'IMPERADOR', hint: 'Governante máximo de um império' },
{ word: 'EXPLORADOR', hint: 'Quem desbrava e descobre terras novas' },
{ word: 'CAÇADOR', hint: 'Quem persegue e captura animais' },
{ word: 'ACROBATA', hint: 'Artista de equilíbrio e saltos' },
{ word: 'MÁGICO', hint: 'Artista de ilusionismo e truques' },
{ word: 'ORÁCULO', hint: 'Ser ou lugar que prevê o futuro' },
{ word: 'ENIGMA', hint: 'Algo difícil de compreender ou resolver' },
{ word: 'PARADOXO', hint: 'Situação que parece contraditória' },
{ word: 'SIMBIOSE', hint: 'Relação de benefício mútuo entre seres' },
{ word: 'METAMORFOSE', hint: 'Transformação radical de forma ou natureza' },
];
// ── Game state ────────────────────────────────────────────────────────────────
const BODY_IDS = ['p-head', 'p-body', 'p-larm', 'p-rarm', 'p-lleg', 'p-rleg'];
const MAX_WRONG = 6;
let state = {
word: '',
hint: '',
guessed: new Set(),
wrong: [],
active: false,
};
let gameStartTime = 0;
const history = [];
// ── Utilities ─────────────────────────────────────────────────────────────────
function normalize(char) {
return char.normalize('NFD').replace(/[̀-ͯ]/g, '').toUpperCase();
}
function formatTime(seconds) {
if (seconds < 60) return `${seconds}s`;
const m = Math.floor(seconds / 60);
const s = seconds % 60;
return s > 0 ? `${m}m ${s}s` : `${m}m`;
}
// ── Game logic ────────────────────────────────────────────────────────────────
function startGame() {
const item = WORDS[Math.floor(Math.random() * WORDS.length)];
state = {
word: item.word.toUpperCase(),
hint: item.hint,
guessed: new Set(),
wrong: [],
active: true,
};
gameStartTime = Date.now();
document.getElementById('hint-text').textContent = item.hint;
document.getElementById('overlay').classList.add('hidden');
renderWord();
renderKeyboard();
renderWrong();
renderHangman();
}
function guess(letter) {
if (!state.active || state.guessed.has(letter)) return;
state.guessed.add(letter);
const wordNorm = [...state.word].map(normalize);
if (wordNorm.includes(letter)) {
revealLetter(letter);
markKey(letter, 'used-correct');
if (isWon()) endGame(true);
} else {
state.wrong.push(letter);
renderWrong();
renderHangman();
markKey(letter, 'used-wrong');
shakeGallows();
if (state.wrong.length >= MAX_WRONG) endGame(false);
}
}
function isWon() {
return [...state.word].every(char => state.guessed.has(normalize(char)));
}
function endGame(won) {
state.active = false;
const elapsed = Math.floor((Date.now() - gameStartTime) / 1000);
if (!won) {
document.querySelectorAll('.letter-box').forEach(box => {
if (!box.classList.contains('revealed')) {
box.textContent = box.dataset.char;
box.classList.add('miss');
}
});
}
history.unshift({ word: state.word, hint: state.hint, won, elapsed });
renderHistory();
setTimeout(() => {
document.getElementById('overlay-icon').textContent = won ? '🎉' : '💀';
document.getElementById('overlay-msg').textContent = won
? 'Parabéns! Você acertou!'
: 'Que pena! Você perdeu!';
document.getElementById('overlay-word').textContent = state.word;
document.getElementById('overlay-time').textContent = `Tempo: ${formatTime(elapsed)}`;
document.getElementById('overlay').classList.remove('hidden');
}, won ? 400 : 900);
}
// ── Render functions ──────────────────────────────────────────────────────────
function renderWord() {
const display = document.getElementById('word-display');
display.innerHTML = '';
[...state.word].forEach(char => {
const box = document.createElement('span');
box.className = 'letter-box';
box.dataset.char = char;
if (state.guessed.has(normalize(char))) {
box.textContent = char;
box.classList.add('revealed');
}
display.appendChild(box);
});
}
function renderKeyboard() {
const kb = document.getElementById('keyboard');
kb.innerHTML = '';
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('').forEach(letter => {
const btn = document.createElement('button');
btn.className = 'key-btn';
btn.textContent = letter;
btn.dataset.letter = letter;
if (state.guessed.has(letter)) {
btn.classList.add(state.wrong.includes(letter) ? 'used-wrong' : 'used-correct');
btn.disabled = true;
}
btn.addEventListener('click', () => guess(letter));
kb.appendChild(btn);
});
}
function renderWrong() {
const container = document.getElementById('wrong-letters');
container.innerHTML = '';
state.wrong.forEach(letter => {
const chip = document.createElement('span');
chip.className = 'wrong-chip';
chip.textContent = letter;
container.appendChild(chip);
});
}
function renderHangman() {
BODY_IDS.forEach((id, i) => {
const el = document.getElementById(id);
if (el) el.classList.toggle('visible', i < state.wrong.length);
});
}
function renderHistory() {
const list = document.getElementById('history-list');
const stats = document.getElementById('history-stats');
if (history.length === 0) {
list.innerHTML = '<p class="history-empty">Nenhuma partida ainda.</p>';
stats.innerHTML = '';
return;
}
const wins = history.filter(e => e.won).length;
const losses = history.length - wins;
stats.innerHTML =
`<span class="stat-won">${wins} ✓</span> <span class="stat-lost">${losses} ✗</span>`;
list.innerHTML = '';
history.forEach(entry => {
const el = document.createElement('div');
el.className = `history-entry ${entry.won ? 'h-won' : 'h-lost'}`;
el.innerHTML = `
<span class="h-badge">${entry.won ? '✓' : '✗'}</span>
<div class="h-info">
<span class="h-word">${entry.word}</span>
<span class="h-hint">${entry.hint}</span>
</div>
<span class="h-time">${formatTime(entry.elapsed)}</span>
`;
list.appendChild(el);
});
}
function revealLetter(letter) {
document.querySelectorAll('.letter-box').forEach(box => {
if (normalize(box.dataset.char) === letter) {
box.textContent = box.dataset.char;
box.classList.add('revealed');
}
});
}
function markKey(letter, cls) {
const btn = document.querySelector(`.key-btn[data-letter="${letter}"]`);
if (btn) {
btn.classList.add(cls);
btn.disabled = true;
}
}
function shakeGallows() {
const svg = document.getElementById('hangman-svg');
svg.classList.remove('shake');
void svg.offsetWidth;
svg.classList.add('shake');
svg.addEventListener('animationend', () => svg.classList.remove('shake'), { once: true });
}
// ── Event listeners ───────────────────────────────────────────────────────────
document.addEventListener('keydown', e => {
const letter = e.key.toUpperCase();
if (/^[A-Z]$/.test(letter)) guess(letter);
});
document.getElementById('new-game-btn').addEventListener('click', startGame);
document.getElementById('overlay-btn').addEventListener('click', startGame);
// ── Start ─────────────────────────────────────────────────────────────────────
startGame();