@jjlmoya/utils-tabletop 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/package.json +1 -1
  2. package/src/category/TabletopCategorySEO.astro +2 -7
  3. package/src/category/i18n/en.ts +4 -4
  4. package/src/category/i18n/ru.ts +2 -2
  5. package/src/category/i18n/zh.ts +8 -8
  6. package/src/category/index.ts +2 -1
  7. package/src/entries.ts +14 -1
  8. package/src/index.ts +1 -0
  9. package/src/pages/[locale]/[slug].astro +7 -6
  10. package/src/tests/locale_completeness.test.ts +1 -1
  11. package/src/tests/no_em_dash.test.ts +47 -0
  12. package/src/tests/seo_length.test.ts +1 -0
  13. package/src/tests/title_quality.test.ts +1 -1
  14. package/src/tests/tool_validation.test.ts +1 -1
  15. package/src/tool/board-game-timer/modules/ColorHelper.ts +2 -2
  16. package/src/tool/board-game-timer/modules/DuelViewManager.ts +4 -4
  17. package/src/tool/board-game-timer/modules/GameRunner.ts +1 -1
  18. package/src/tool/board-game-timer/modules/MultiplayerViewManager.ts +2 -2
  19. package/src/tool/board-game-timer/modules/SetupPanelManager.ts +1 -1
  20. package/src/tool/board-game-timer/modules/TimerEngine.ts +1 -1
  21. package/src/tool/board-game-timer/types.ts +1 -1
  22. package/src/tool/decision-wheel/audio.ts +78 -0
  23. package/src/tool/decision-wheel/bibliography.astro +16 -0
  24. package/src/tool/decision-wheel/bibliography.ts +8 -0
  25. package/src/tool/decision-wheel/client.ts +226 -0
  26. package/src/tool/decision-wheel/component.astro +48 -0
  27. package/src/tool/decision-wheel/components/SegmentEditor.astro +22 -0
  28. package/src/tool/decision-wheel/components/SpinHistory.astro +17 -0
  29. package/src/tool/decision-wheel/components/SpinResult.astro +13 -0
  30. package/src/tool/decision-wheel/components/WheelCanvas.astro +23 -0
  31. package/src/tool/decision-wheel/decision-wheel.css +632 -0
  32. package/src/tool/decision-wheel/drawing.ts +144 -0
  33. package/src/tool/decision-wheel/entry.ts +48 -0
  34. package/src/tool/decision-wheel/i18n/de.ts +97 -0
  35. package/src/tool/decision-wheel/i18n/en.ts +251 -0
  36. package/src/tool/decision-wheel/i18n/es.ts +93 -0
  37. package/src/tool/decision-wheel/i18n/fr.ts +93 -0
  38. package/src/tool/decision-wheel/i18n/id.ts +93 -0
  39. package/src/tool/decision-wheel/i18n/it.ts +93 -0
  40. package/src/tool/decision-wheel/i18n/ja.ts +93 -0
  41. package/src/tool/decision-wheel/i18n/ko.ts +93 -0
  42. package/src/tool/decision-wheel/i18n/nl.ts +93 -0
  43. package/src/tool/decision-wheel/i18n/pl.ts +93 -0
  44. package/src/tool/decision-wheel/i18n/pt.ts +93 -0
  45. package/src/tool/decision-wheel/i18n/ru.ts +75 -0
  46. package/src/tool/decision-wheel/i18n/sv.ts +93 -0
  47. package/src/tool/decision-wheel/i18n/tr.ts +93 -0
  48. package/src/tool/decision-wheel/i18n/zh.ts +93 -0
  49. package/src/tool/decision-wheel/index.ts +9 -0
  50. package/src/tool/decision-wheel/logic.test.ts +163 -0
  51. package/src/tool/decision-wheel/logic.ts +145 -0
  52. package/src/tool/decision-wheel/seo.astro +16 -0
  53. package/src/tool/decision-wheel/types.ts +14 -0
  54. package/src/tool/decision-wheel/ui.ts +121 -0
  55. package/src/tool/dice-roller-simulator/client.ts +2 -2
  56. package/src/tool/dice-roller-simulator/i18n/ru.ts +8 -8
  57. package/src/tool/dice-roller-simulator/modules/history.ts +1 -1
  58. package/src/tool/fantasy-runes-translator/bibliography.astro +16 -0
  59. package/src/tool/fantasy-runes-translator/bibliography.ts +16 -0
  60. package/src/tool/fantasy-runes-translator/client.ts +205 -0
  61. package/src/tool/fantasy-runes-translator/component.astro +95 -0
  62. package/src/tool/fantasy-runes-translator/entry.ts +56 -0
  63. package/src/tool/fantasy-runes-translator/fantasy-runes-translator.css +712 -0
  64. package/src/tool/fantasy-runes-translator/i18n/de.ts +139 -0
  65. package/src/tool/fantasy-runes-translator/i18n/en.ts +139 -0
  66. package/src/tool/fantasy-runes-translator/i18n/es.ts +139 -0
  67. package/src/tool/fantasy-runes-translator/i18n/fr.ts +139 -0
  68. package/src/tool/fantasy-runes-translator/i18n/id.ts +139 -0
  69. package/src/tool/fantasy-runes-translator/i18n/it.ts +139 -0
  70. package/src/tool/fantasy-runes-translator/i18n/ja.ts +139 -0
  71. package/src/tool/fantasy-runes-translator/i18n/ko.ts +139 -0
  72. package/src/tool/fantasy-runes-translator/i18n/nl.ts +139 -0
  73. package/src/tool/fantasy-runes-translator/i18n/pl.ts +139 -0
  74. package/src/tool/fantasy-runes-translator/i18n/pt.ts +139 -0
  75. package/src/tool/fantasy-runes-translator/i18n/ru.ts +139 -0
  76. package/src/tool/fantasy-runes-translator/i18n/sv.ts +139 -0
  77. package/src/tool/fantasy-runes-translator/i18n/tr.ts +139 -0
  78. package/src/tool/fantasy-runes-translator/i18n/zh.ts +139 -0
  79. package/src/tool/fantasy-runes-translator/index.ts +9 -0
  80. package/src/tool/fantasy-runes-translator/logic.ts +174 -0
  81. package/src/tool/fantasy-runes-translator/seo.astro +16 -0
  82. package/src/tool/fantasy-runes-translator/types.ts +26 -0
  83. package/src/tool/first-player-selector/bibliography.astro +16 -0
  84. package/src/tool/first-player-selector/bibliography.ts +12 -0
  85. package/src/tool/first-player-selector/client.ts +197 -0
  86. package/src/tool/first-player-selector/component.astro +77 -0
  87. package/src/tool/first-player-selector/entry.ts +42 -0
  88. package/src/tool/first-player-selector/first-player-selector.css +303 -0
  89. package/src/tool/first-player-selector/i18n/de.ts +226 -0
  90. package/src/tool/first-player-selector/i18n/en.ts +226 -0
  91. package/src/tool/first-player-selector/i18n/es.ts +226 -0
  92. package/src/tool/first-player-selector/i18n/fr.ts +227 -0
  93. package/src/tool/first-player-selector/i18n/id.ts +226 -0
  94. package/src/tool/first-player-selector/i18n/it.ts +227 -0
  95. package/src/tool/first-player-selector/i18n/ja.ts +227 -0
  96. package/src/tool/first-player-selector/i18n/ko.ts +227 -0
  97. package/src/tool/first-player-selector/i18n/nl.ts +226 -0
  98. package/src/tool/first-player-selector/i18n/pl.ts +227 -0
  99. package/src/tool/first-player-selector/i18n/pt.ts +226 -0
  100. package/src/tool/first-player-selector/i18n/ru.ts +227 -0
  101. package/src/tool/first-player-selector/i18n/sv.ts +226 -0
  102. package/src/tool/first-player-selector/i18n/tr.ts +226 -0
  103. package/src/tool/first-player-selector/i18n/zh.ts +227 -0
  104. package/src/tool/first-player-selector/index.ts +9 -0
  105. package/src/tool/first-player-selector/modules/AnimationEffects.ts +256 -0
  106. package/src/tool/first-player-selector/modules/SelectionEngine.ts +249 -0
  107. package/src/tool/first-player-selector/modules/SoundEffects.ts +87 -0
  108. package/src/tool/first-player-selector/modules/TouchTracker.ts +148 -0
  109. package/src/tool/first-player-selector/seo.astro +16 -0
  110. package/src/tool/first-player-selector/types.ts +21 -0
  111. package/src/tool/rpg-initiative-tracker/bibliography.astro +16 -0
  112. package/src/tool/rpg-initiative-tracker/bibliography.ts +12 -0
  113. package/src/tool/rpg-initiative-tracker/client.ts +201 -0
  114. package/src/tool/rpg-initiative-tracker/component.astro +23 -0
  115. package/src/tool/rpg-initiative-tracker/components/AddForm.astro +49 -0
  116. package/src/tool/rpg-initiative-tracker/components/CombatantList.astro +16 -0
  117. package/src/tool/rpg-initiative-tracker/components/TurnControls.astro +28 -0
  118. package/src/tool/rpg-initiative-tracker/entry.ts +50 -0
  119. package/src/tool/rpg-initiative-tracker/i18n/de.ts +266 -0
  120. package/src/tool/rpg-initiative-tracker/i18n/en.ts +263 -0
  121. package/src/tool/rpg-initiative-tracker/i18n/es.ts +264 -0
  122. package/src/tool/rpg-initiative-tracker/i18n/fr.ts +263 -0
  123. package/src/tool/rpg-initiative-tracker/i18n/id.ts +263 -0
  124. package/src/tool/rpg-initiative-tracker/i18n/it.ts +263 -0
  125. package/src/tool/rpg-initiative-tracker/i18n/ja.ts +263 -0
  126. package/src/tool/rpg-initiative-tracker/i18n/ko.ts +263 -0
  127. package/src/tool/rpg-initiative-tracker/i18n/nl.ts +263 -0
  128. package/src/tool/rpg-initiative-tracker/i18n/pl.ts +264 -0
  129. package/src/tool/rpg-initiative-tracker/i18n/pt.ts +263 -0
  130. package/src/tool/rpg-initiative-tracker/i18n/ru.ts +264 -0
  131. package/src/tool/rpg-initiative-tracker/i18n/sv.ts +263 -0
  132. package/src/tool/rpg-initiative-tracker/i18n/tr.ts +263 -0
  133. package/src/tool/rpg-initiative-tracker/i18n/zh.ts +263 -0
  134. package/src/tool/rpg-initiative-tracker/index.ts +9 -0
  135. package/src/tool/rpg-initiative-tracker/logic.test.ts +121 -0
  136. package/src/tool/rpg-initiative-tracker/logic.ts +122 -0
  137. package/src/tool/rpg-initiative-tracker/rpg-initiative-tracker.css +617 -0
  138. package/src/tool/rpg-initiative-tracker/seo.astro +16 -0
  139. package/src/tool/rpg-initiative-tracker/types.ts +15 -0
  140. package/src/tool/score-tracker/bibliography.astro +16 -0
  141. package/src/tool/score-tracker/bibliography.ts +12 -0
  142. package/src/tool/score-tracker/client.ts +248 -0
  143. package/src/tool/score-tracker/component.astro +34 -0
  144. package/src/tool/score-tracker/components/Leaderboard.astro +19 -0
  145. package/src/tool/score-tracker/components/PlayerSetup.astro +32 -0
  146. package/src/tool/score-tracker/components/RoundScoring.astro +22 -0
  147. package/src/tool/score-tracker/components/ScoreHistory.astro +25 -0
  148. package/src/tool/score-tracker/entry.ts +57 -0
  149. package/src/tool/score-tracker/i18n/de.ts +278 -0
  150. package/src/tool/score-tracker/i18n/en.ts +278 -0
  151. package/src/tool/score-tracker/i18n/es.ts +251 -0
  152. package/src/tool/score-tracker/i18n/fr.ts +278 -0
  153. package/src/tool/score-tracker/i18n/id.ts +278 -0
  154. package/src/tool/score-tracker/i18n/it.ts +278 -0
  155. package/src/tool/score-tracker/i18n/ja.ts +278 -0
  156. package/src/tool/score-tracker/i18n/ko.ts +278 -0
  157. package/src/tool/score-tracker/i18n/nl.ts +278 -0
  158. package/src/tool/score-tracker/i18n/pl.ts +278 -0
  159. package/src/tool/score-tracker/i18n/pt.ts +278 -0
  160. package/src/tool/score-tracker/i18n/ru.ts +278 -0
  161. package/src/tool/score-tracker/i18n/sv.ts +278 -0
  162. package/src/tool/score-tracker/i18n/tr.ts +278 -0
  163. package/src/tool/score-tracker/i18n/zh.ts +278 -0
  164. package/src/tool/score-tracker/index.ts +9 -0
  165. package/src/tool/score-tracker/logic.test.ts +83 -0
  166. package/src/tool/score-tracker/logic.ts +122 -0
  167. package/src/tool/score-tracker/score-tracker.css +1029 -0
  168. package/src/tool/score-tracker/seo.astro +16 -0
  169. package/src/tool/score-tracker/types.ts +17 -0
  170. package/src/tools.ts +10 -0
  171. package/src/types.ts +1 -2
@@ -0,0 +1,278 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { ScoreTrackerUI } from '../entry';
4
+
5
+ const ui: ScoreTrackerUI = {
6
+ title: 'Contador de Pontos',
7
+ addPlayer: 'Adicionar Jogador',
8
+ removePlayer: 'Remover',
9
+ renamePlayer: 'Renomear',
10
+ startRound: 'Iniciar Rodada 1',
11
+ nextRound: 'Próxima Rodada',
12
+ resetGame: 'Reiniciar Jogo',
13
+ undoRound: 'Desfazer Última Rodada',
14
+ playerLabel: 'Jogador',
15
+ scoreLabel: 'Pontos',
16
+ roundLabel: 'Rodada',
17
+ totalLabel: 'Total',
18
+ rankLabel: 'Classificação',
19
+ leaderboardTitle: 'Classificação',
20
+ historyTitle: 'Histórico de Pontos',
21
+ noPlayersHint: 'Adicione jogadores para começar a pontuar',
22
+ playerNamePlaceholder: 'Nome do jogador',
23
+ confirmLabel: 'Confirmar',
24
+ cancelLabel: 'Cancelar',
25
+ deleteRoundConfirm: 'Excluir a última rodada?',
26
+ playerAdded: 'Jogador adicionado',
27
+ playerRemoved: 'Jogador removido',
28
+ roundStarted: 'Rodada iniciada',
29
+ gameReset: 'O jogo foi reiniciado',
30
+ noRoundsYet: 'Nenhuma rodada registrada ainda',
31
+ currentRoundLabel: 'Rodada Atual',
32
+ scoringTitle: 'Pontuação da Rodada',
33
+ resetAllLabel: 'Reiniciar Tudo',
34
+ confirmResetAll: 'Isso excluirá todos os jogadores e pontuações. Tem certeza?',
35
+ };
36
+
37
+ export const content: ToolLocaleContent<ScoreTrackerUI> = {
38
+ slug: 'contador-de-pontos',
39
+ title: 'Contador de Pontos: Marcador Multijogador e Gerenciador de Classificacao',
40
+ description: 'Acompanhe as pontuações de qualquer jogo de tabuleiro. Adicione jogadores, registre pontuações rodada a rodada e veja a classificação ser atualizada em tempo real com ranqueamento automático.',
41
+ ui,
42
+ seo: [
43
+ { type: 'title', text: 'Pontuação em Jogos de Tabuleiro: Como Registrar Pontos Sem Erros', level: 2 },
44
+ { type: 'paragraph', html: 'Manter a pontuação em jogos de tabuleiro parece simples até você estar cinco rodadas dentro de um jogo e alguém perceber que contou errado. Quer você jogue Wingspan, Terraforming Mars, Catan ou qualquer jogo de pontos de vitória, a precisão na pontuação é a diferença entre um jogo justo e uma discussão. Um contador de pontos digital elimina erros aritméticos, mostra classificações ao vivo e mantém um histórico completo de cada rodada para que você possa verificar o total final.' },
45
+ {
46
+ type: 'stats',
47
+ items: [
48
+ { value: 'Ilimitados', label: 'Jogadores Suportados' },
49
+ { value: 'Tempo Real', label: 'Atualizações da Classificação' },
50
+ { value: 'Ilimitadas', label: 'Rodadas Registradas' },
51
+ ],
52
+ columns: 3,
53
+ },
54
+ { type: 'title', text: 'Erros Comuns na Pontuação e Como Evitá-los', level: 2 },
55
+ { type: 'paragraph', html: 'O erro mais frequente é esquecer de adicionar bônus de fim de rodada ou errar a soma de uma coluna de números. Quando você acompanha as pontuações digitalmente, o total em execução é atualizado automaticamente após cada entrada. Isso significa que você pode perceber um erro no momento em que um número parece estranho, em vez de descobri-lo no final do jogo quando ninguém se lembra do valor correto. O recurso de histórico de rodadas permite auditar qualquer rodada anterior e corrigir erros sem reiniciar o jogo inteiro.' },
56
+ {
57
+ type: 'tip',
58
+ title: 'Dicas Rápidas para Pontuação',
59
+ html: 'Insira as pontuações imediatamente após cada rodada enquanto todos ainda se lembram dos resultados. Use rótulos descritivos como cores ou nomes de facções em vez de nomes reais para jogos com papéis ocultos. Ao jogar com crianças, deixe-as apertar os botões para mantê-las envolvidas no processo de pontuação.',
60
+ },
61
+ {
62
+ type: 'title',
63
+ text: 'Pontuação por Rodada vs Apenas Total Final',
64
+ level: 3,
65
+ },
66
+ {
67
+ type: 'proscons',
68
+ title: 'Pontos por Rodada vs Apenas Pontuação Final',
69
+ items: [
70
+ {
71
+ pro: 'Você pode ver quem liderou em cada etapa do jogo e como o momentum mudou.',
72
+ con: 'Requer inserir dados após cada rodada em vez de uma única vez no final.',
73
+ },
74
+ {
75
+ pro: 'Erros são fáceis de localizar porque você pode verificar as entradas individuais de cada rodada com a memória.',
76
+ con: 'Requer um pouco mais de tempo durante a sessão de jogo.',
77
+ },
78
+ {
79
+ pro: 'Os jogadores podem verificar suas próprias pontuações de rodada, reduzindo disputas e construindo confiança.',
80
+ con: 'Funciona melhor quando uma pessoa gerencia o dispositivo ou os jogadores se revezam.',
81
+ },
82
+ ],
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Jogos com Sistemas de Pontuação Incomuns',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'comparative',
91
+ items: [
92
+ {
93
+ title: 'Jogos de Pontos de Vitória',
94
+ description: 'A maioria dos eurogames usa pontos de vitória concedidos ao longo do jogo. O desafio é acompanhar múltiplas fontes de PV: recursos, conquistas, bônus de final de jogo. Um rastreador digital permite inserir pontos conforme eles aparecem e ver o total em execução.',
95
+ icon: 'mdi:chess-queen',
96
+ highlight: true,
97
+ points: [
98
+ 'Acompanhe várias categorias de pontuação',
99
+ 'Cálculos de bônus de final de jogo',
100
+ 'Resolução instantânea de empates',
101
+ ],
102
+ },
103
+ {
104
+ title: 'Jogos com Pontuação Negativa',
105
+ description: 'Alguns jogos penalizam jogadores com pontos negativos por certas ações. Um contador digital lida com valores negativos naturalmente, colorindo-os em vermelho para que a penalidade fique imediatamente visível. Isso é especialmente útil em jogos de vaza ou jogos de dedução com mecânicas de penalidade.',
106
+ icon: 'mdi:minus-circle-outline',
107
+ highlight: false,
108
+ points: [
109
+ 'Manipulação automática de negativos',
110
+ 'Indicadores visuais de penalidade',
111
+ 'Totais acumulados precisos',
112
+ ],
113
+ },
114
+ {
115
+ title: 'Jogos de Campanha',
116
+ description: 'Jogos legacy e de campanha carregam pontuações entre várias sessões. Sem um rastreador, você precisa manter anotações em papel entre as noites de jogo. Uma ferramenta digital mantém suas pontuações de campanha organizadas e permite revisar como suas decisões afetaram a classificação geral.',
117
+ icon: 'mdi:book-open-variant',
118
+ highlight: false,
119
+ points: [
120
+ 'Rastreamento persistente de campanha',
121
+ 'Comparação entre sessões',
122
+ 'Detalhamento sessão por sessão',
123
+ ],
124
+ },
125
+ ],
126
+ columns: 3,
127
+ },
128
+ {
129
+ type: 'title',
130
+ text: 'Glossário de Pontuação',
131
+ level: 3,
132
+ },
133
+ {
134
+ type: 'glossary',
135
+ items: [
136
+ {
137
+ term: 'Pontos de Vitória (PV)',
138
+ definition: 'A unidade de pontuação padrão na maioria dos jogos de tabuleiro modernos. Os jogadores ganham PV através de ações, e quem tiver mais PV quando o jogo terminar vence.',
139
+ },
140
+ {
141
+ term: 'Pontuação por Rodada',
142
+ definition: 'Registrar as pontuações no final de cada rodada em vez de apenas no final do jogo. Isso cria um histórico detalhado e facilita a verificação de erros.',
143
+ },
144
+ {
145
+ term: 'Classificação',
146
+ definition: 'Um ranking ao vivo que mostra a posição de cada jogador com base na pontuação total. A classificação se reordena automaticamente à medida que novas pontuações são inseridas.',
147
+ },
148
+ {
149
+ term: 'Pontuação Negativa',
150
+ definition: 'Um sistema de pontuação onde os jogadores podem perder pontos através de penalidades ou ações falhas, resultando em totais negativos. Um rastreador digital lida com isso sem erros de subtração manual.',
151
+ },
152
+ ],
153
+ },
154
+ {
155
+ type: 'diagnostic',
156
+ variant: 'info',
157
+ title: 'Como Lidar com Pontuações Contestadas',
158
+ icon: 'mdi:information-outline',
159
+ badge: 'DICA DE JOGO',
160
+ html: 'Quando um jogador contestar uma pontuação, não a altere imediatamente. Primeiro verifique o histórico de rodadas para confirmar o que foi inserido. Se a entrada estiver errada, use os botões +/- para corrigi-la e o total será atualizado automaticamente. Se a entrada da rodada estiver correta mas o jogador discordar, o histórico fornece um registro objetivo que todos podem revisar juntos.',
161
+ },
162
+ ],
163
+ faq: [
164
+ {
165
+ question: 'Quantos jogadores posso acompanhar?',
166
+ answer: 'Não há limite. Adicione quantos jogadores seu jogo suportar e renomeie-os a qualquer momento durante a sessão.',
167
+ },
168
+ {
169
+ question: 'Posso desfazer um erro?',
170
+ answer: 'Sim. Use o botão Desfazer Última Rodada para remover a rodada de pontuação mais recente, o que recalculará automaticamente todos os totais e classificações.',
171
+ },
172
+ {
173
+ question: 'O contador de pontos salva meus dados?',
174
+ answer: 'O contador de pontos funciona inteiramente no seu navegador. Os dados persistem durante a sessão atual. Atualizar a página redefinirá todas as pontuações.',
175
+ },
176
+ {
177
+ question: 'Como funciona a classificação?',
178
+ answer: 'A classificação ordena os jogadores por pontuação total em ordem decrescente. Os rankings são atualizados automaticamente conforme você insere ou modifica as pontuações em cada rodada.',
179
+ },
180
+ {
181
+ question: 'Posso registrar pontuações negativas?',
182
+ answer: 'Sim. Os botões +/- permitem ajustes positivos e negativos, tornando-o adequado para jogos com pontos de penalidade ou mecânicas de dedução.',
183
+ },
184
+ ],
185
+ bibliography,
186
+ howTo: [
187
+ {
188
+ name: 'Adicionar Jogadores',
189
+ text: 'Insira os nomes dos jogadores usando o campo Adicionar Jogador. Você pode adicionar ou remover jogadores a qualquer momento durante o jogo.',
190
+ },
191
+ {
192
+ name: 'Começar a Pontuar',
193
+ text: 'Clique em Iniciar Rodada para começar uma nova rodada de pontuação. Use os botões +/- para ajustar a pontuação de cada jogador naquela rodada.',
194
+ },
195
+ {
196
+ name: 'Ver Classificações',
197
+ text: 'A classificação é atualizada automaticamente. Navegue pela aba Histórico de Pontos para revisar as entradas de rodadas anteriores.',
198
+ },
199
+ ],
200
+ schemas: [
201
+ {
202
+ '@context': 'https://schema.org',
203
+ '@type': 'SoftwareApplication',
204
+ 'name': 'Contador de Pontos & Scorekeeper',
205
+ 'operatingSystem': 'All',
206
+ 'applicationCategory': 'UtilitiesApplication',
207
+ 'browserRequirements': 'Requires HTML5. Requires JavaScript.',
208
+ },
209
+ {
210
+ '@context': 'https://schema.org',
211
+ '@type': 'FAQPage',
212
+ 'mainEntity': [
213
+ {
214
+ '@type': 'Question',
215
+ 'name': 'Quantos jogadores posso acompanhar?',
216
+ 'acceptedAnswer': {
217
+ '@type': 'Answer',
218
+ 'text': 'Não há limite. Adicione quantos jogadores seu jogo suportar e renomeie-os a qualquer momento durante a sessão.',
219
+ },
220
+ },
221
+ {
222
+ '@type': 'Question',
223
+ 'name': 'Posso desfazer um erro?',
224
+ 'acceptedAnswer': {
225
+ '@type': 'Answer',
226
+ 'text': 'Sim. Use o botão Desfazer Última Rodada para remover a rodada de pontuação mais recente, o que recalculará automaticamente todos os totais e classificações.',
227
+ },
228
+ },
229
+ {
230
+ '@type': 'Question',
231
+ 'name': 'O contador de pontos salva meus dados?',
232
+ 'acceptedAnswer': {
233
+ '@type': 'Answer',
234
+ 'text': 'O contador de pontos funciona inteiramente no seu navegador. Os dados persistem durante a sessão atual. Atualizar a página redefinirá todas as pontuações.',
235
+ },
236
+ },
237
+ {
238
+ '@type': 'Question',
239
+ 'name': 'Como funciona a classificação?',
240
+ 'acceptedAnswer': {
241
+ '@type': 'Answer',
242
+ 'text': 'A classificação ordena os jogadores por pontuação total em ordem decrescente. Os rankings são atualizados automaticamente conforme você insere ou modifica as pontuações em cada rodada.',
243
+ },
244
+ },
245
+ {
246
+ '@type': 'Question',
247
+ 'name': 'Posso registrar pontuações negativas?',
248
+ 'acceptedAnswer': {
249
+ '@type': 'Answer',
250
+ 'text': 'Sim. Os botões +/- permitem ajustes positivos e negativos, tornando-o adequado para jogos com pontos de penalidade ou mecânicas de dedução.',
251
+ },
252
+ },
253
+ ],
254
+ },
255
+ {
256
+ '@context': 'https://schema.org',
257
+ '@type': 'HowTo',
258
+ 'name': 'Como Usar o Contador de Pontos',
259
+ 'step': [
260
+ {
261
+ '@type': 'HowToStep',
262
+ 'name': 'Adicionar Jogadores',
263
+ 'text': 'Insira os nomes dos jogadores usando o campo Adicionar Jogador. Você pode adicionar ou remover jogadores a qualquer momento durante o jogo.',
264
+ },
265
+ {
266
+ '@type': 'HowToStep',
267
+ 'name': 'Começar a Pontuar',
268
+ 'text': 'Clique em Iniciar Rodada para começar uma nova rodada de pontuação. Use os botões +/- para ajustar a pontuação de cada jogador naquela rodada.',
269
+ },
270
+ {
271
+ '@type': 'HowToStep',
272
+ 'name': 'Ver Classificações',
273
+ 'text': 'A classificação é atualizada automaticamente. Navegue pela aba Histórico de Pontos para revisar as entradas de rodadas anteriores.',
274
+ },
275
+ ],
276
+ },
277
+ ],
278
+ };
@@ -0,0 +1,278 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { ScoreTrackerUI } from '../entry';
4
+
5
+ const ui: ScoreTrackerUI = {
6
+ title: 'Schyotchik Ochkov',
7
+ addPlayer: 'Dobavit igroka',
8
+ removePlayer: 'Udalit',
9
+ renamePlayer: 'Pereimenovat',
10
+ startRound: 'Nachat raund 1',
11
+ nextRound: 'Sleduyushchij raund',
12
+ resetGame: 'Sbrosit igru',
13
+ undoRound: 'Otmenit poslednij raund',
14
+ playerLabel: 'Igrok',
15
+ scoreLabel: 'Ochki',
16
+ roundLabel: 'Raund',
17
+ totalLabel: 'Itogo',
18
+ rankLabel: 'Mesto',
19
+ leaderboardTitle: 'TABLICA Liderov',
20
+ historyTitle: 'Istoriya ochkov',
21
+ noPlayersHint: 'Dobavte igrokov dlya nachala podschyota ochkov',
22
+ playerNamePlaceholder: 'Imya igroka',
23
+ confirmLabel: 'Podtverdit',
24
+ cancelLabel: 'Otmena',
25
+ deleteRoundConfirm: 'Udalit poslednij raund?',
26
+ playerAdded: 'Igrok dobavlen',
27
+ playerRemoved: 'Igrok udalen',
28
+ roundStarted: 'Raund nachat',
29
+ gameReset: 'Igra byla sbroshena',
30
+ noRoundsYet: 'Eshchyo ne zapisano ni odnogo raunda',
31
+ currentRoundLabel: 'Tekushchij raund',
32
+ scoringTitle: 'Ochenka raunda',
33
+ resetAllLabel: 'Sbrosit vse',
34
+ confirmResetAll: 'Eto udalit vsekh igrokov i ochki. Vy uvereny?',
35
+ };
36
+
37
+ export const content: ToolLocaleContent<ScoreTrackerUI> = {
38
+ slug: 'schetchik-ochkov',
39
+ title: 'Schyotchik Ochkov: Mnogopolzovatelskij Schedrik i Menedzher Tablicy Liderov',
40
+ description: 'Otslezhivajte ochki dlya lyuboj nastolnoj igry. Dobavlyajte igrokov, zapisyvajte ochki raund za raundom i nablyudajte za obnovleniem tablicy liderov v realnom vremeni s avtomaticheskim rangirovaniem.',
41
+ ui,
42
+ seo: [
43
+ { type: 'title', text: 'Podschyot Ochkov v Nastolnykh Igrakh: Kak Otslezhivat Ochki Bez Oshibok', level: 2 },
44
+ { type: 'paragraph', html: 'Podschyot ochkov v nastolnykh igrakh kazhetsya prostym, poka vy ne zashli na pyatyj raund i kto-to ne obnaruzhil, chto poschital nepravilno. Nezavisimo ot togo, igraete li vy v Wingspan, Terraforming Mars, Catan ili lyubuyu igru na ochki pobedy, tochnyj podschyot ochkov eto raznica mezhdu chestnoj igroj i sporom. Cifrovoj schyotchik ochkov ustranyaet arifmeticheskie oshibki, pokazyvaet tablicu liderov v rezhime realnogo vremeni i hranit polnuyu istoriyu kazhdogo raunda, chtoby vy mogli proverit itogovyj rezultat.' },
45
+ {
46
+ type: 'stats',
47
+ items: [
48
+ { value: 'Bez ogranichenij', label: 'Podderzhivaemykh igrokov' },
49
+ { value: 'Real Vremya', label: 'Obnovlenie tablicy liderov' },
50
+ { value: 'Bez ogranichenij', label: 'Zapisannykh raundov' },
51
+ ],
52
+ columns: 3,
53
+ },
54
+ { type: 'title', text: 'Chastye Oshibki pri Podschyote i Kak Ikh Izbezhat', level: 2 },
55
+ { type: 'paragraph', html: 'Samaya chastaya oshibka zabyvanie dobavit bonusy v konce raunda ili nepravilnoe summirovanie stolbca cifr. Kogda vy otslezhivaete ochki cifrovo sposobom, tekushchij itog obnovlyaetsya avtomaticheski posle kazhdoj zapisi. Eto znachit, chto vy mozhete zametit oshibku v tot moment, kogda cifra kazhetsya strannoj, vmesto togo chtoby obnaruzhit eye v konce igry, kogda nikto ne pomnit pravilnoe znachenie. Funkciya istorii raundov pozvolyaet proverit lyuboj predydushchij raund i ispravit oshibki bez perezapuska vsej igry.' },
56
+ {
57
+ type: 'tip',
58
+ title: 'Bystrye Sovety po Podschyotu Ochkov',
59
+ html: 'Vvodite ochki srazu posle okonchaniya kazhdogo raunda, poka vse eshchyo pomnyat rezultaty. Ispolzujte opisatelnye metki igrokov, takie kak cveta ili nazvaniya frakcij, vmesto nastoyashchikh imen dlya igr so skrytymi rolyami. Kogda igraete s detmi, pozvolte im samim nazhimat knopki, chtoby oni ostavalis vovlechennymi v process podschyota ochkov.',
60
+ },
61
+ {
62
+ type: 'title',
63
+ text: 'Ochenka za Raund vs Tolko Obshchaya Summa',
64
+ level: 3,
65
+ },
66
+ {
67
+ type: 'proscons',
68
+ title: 'Ochki za Raund vs Tolko Konechnyj Rezultat',
69
+ items: [
70
+ {
71
+ pro: 'Vy mozhete videt, kto lidiroval na kazhdom etape igry i kak menyalsya temp.',
72
+ con: 'Trebuet vvoda dannyh posle kazhdogo raunda vmesto odnogo raza v konce.',
73
+ },
74
+ {
75
+ pro: 'Oshibki legko obnaruzhit, potomu chto vy mozhete sverit zapisi otdelnyh raundov s pamyatyu.',
76
+ con: 'Zanimaet nemnogo bolshe vremeni vo vremya igrovoj sessii.',
77
+ },
78
+ {
79
+ pro: 'Igroki mogut proveryat svoi sobstvennye ochki za raund, chto umenshaet spory i sozdaet doverie.',
80
+ con: 'Luchshe vsego rabotaet, kogda odin chelovek upravlyaet ustrojstvom ili igroki delayut eto po ocheredi.',
81
+ },
82
+ ],
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Igry s Neobychnymi Sistemami Ochenki',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'comparative',
91
+ items: [
92
+ {
93
+ title: 'Igry na Ochki Pobedy',
94
+ description: 'Bolshinstvo evroigr ispolzuyut ochki pobedy, prisuzhdaemye na protyazhenii vsej igry. Slozhnost zaklyuchaetsya v otslezhivanii mnozhestvennykh istochnikov OP: resursy, dostizheniya, bonusy v konce igry. Cifrovoj treker pozvolyaet vvodit ochki po mere ikh polucheniya i videt tekushchij itog.',
95
+ icon: 'mdi:chess-queen',
96
+ highlight: true,
97
+ points: [
98
+ 'Otslezhivanie neskolkikh kategorij ochkov',
99
+ 'Raschjoty bonusov v konce igry',
100
+ 'Mgnovennoe razreshenie nitchih',
101
+ ],
102
+ },
103
+ {
104
+ title: 'Igry s Otricatelnoj Ochenkoj',
105
+ description: 'Nekotorye igry nakazyvayut igrokov otricatelnymi ochkami za opredelyonnye dejstviya. Cifrovoj schyotchik estestvenno obrabatyvaet otricatelnye znacheniya, okrashivaya ikh v krasnyj cvet, chtoby nakazanie bylo nemedlenno vidno. Eto osobenno polezno v igrakh na vzyatki ili deduktivnykh igrakh s mekhanikami nakazaniya.',
106
+ icon: 'mdi:minus-circle-outline',
107
+ highlight: false,
108
+ points: [
109
+ 'Avtomaticheskaya obrabotka otricatelnyh znachenij',
110
+ 'Vizualnye indikatory nakazanij',
111
+ 'Tochnye kumulyativnye itogi',
112
+ ],
113
+ },
114
+ {
115
+ title: 'Kampanijnye Igry',
116
+ description: 'Legacy i kampanijnye igry perenosyat ochki cherez neskolko sessij. Bez tre-kera vam prikhoditsya vesti bumazhnye zametki mezhdu igrovymi vecherami. Cifrovoj instrument derzhit ochki kampanii organizovannymi i pozvolyaet prosmotret, kak vashi resheniya povliyali na obshchuyu klassifikaciyu.',
117
+ icon: 'mdi:book-open-variant',
118
+ highlight: false,
119
+ points: [
120
+ 'Postoyannoe otslezhivanie kampanii',
121
+ 'Sravnenie mezhdu sessiyami',
122
+ 'Detalizaciya sessiya za sessiej',
123
+ ],
124
+ },
125
+ ],
126
+ columns: 3,
127
+ },
128
+ {
129
+ type: 'title',
130
+ text: 'Glossarij po Ochenke',
131
+ level: 3,
132
+ },
133
+ {
134
+ type: 'glossary',
135
+ items: [
136
+ {
137
+ term: 'Ochki Pobedy (OP)',
138
+ definition: 'Standartnaya edinica izmereniya v bolshinstve sovremennykh nastolnykh igr. Igroki zarabatyvayut OP cherez dejstviya, i tot, u kogo bolshe vsego OP v konce igry, pobezhdaet.',
139
+ },
140
+ {
141
+ term: 'Ochenka za Raund',
142
+ definition: 'Zapis ochkov v konce kazhdogo raunda, a ne tolko v konce igry. Sozdaet podrobnuyu istoriyu i delaet proverku oshibok prostoj.',
143
+ },
144
+ {
145
+ term: 'TABLICA Liderov',
146
+ definition: 'Reklama v realnom vremeni, pokazyvayushchaya polozhenie kazhdogo igroka na osnove obshchego rezultata. Tablica liderov avtomaticheski perestraivaetsya po mere vvoda novyh ochkov.',
147
+ },
148
+ {
149
+ term: 'Otricatelnaya Ochenka',
150
+ definition: 'Sistema ochenki, gde igroki mogut teryat ochki cherez nakazaniya ili neudachnye dejstviya, chto privodit k otricatelnym itogam. Cifrovoj treker obrabatyvaet eto bez oshibok ruchnogo vychitaniya.',
151
+ },
152
+ ],
153
+ },
154
+ {
155
+ type: 'diagnostic',
156
+ variant: 'info',
157
+ title: 'Kak Obrashchatsya so Spornymi Ochkami',
158
+ icon: 'mdi:information-outline',
159
+ badge: 'IGROVOJ SOVET',
160
+ html: 'Kogda igrok osparivaet ochki, ne menyajte ikh nemedlenno. Snachala proverte istoriyu raundov, chtoby podtverdit chto bylo vvedeno. Esli zapis neverna, ispolzujte knopki +/-, chtoby ispravit eye, i itog obnovitsya avtomaticheski. Esli zapis raunda verny, no igrok ne soglasen, istoriya predostavlyaet obektivnuyu zapis, kotoruyu vse mogut prosmotret vmeste.',
161
+ },
162
+ ],
163
+ faq: [
164
+ {
165
+ question: 'Za skolkimi igrokami ya mogu sledit?',
166
+ answer: 'Net ogranichenij. Dobavlyajte stolko igrokov, skolko podderzhivaet vasha igra, i pereimenovyvajte ikh v lyuboe vremya v techenie sessii.',
167
+ },
168
+ {
169
+ question: 'Mogu li ya otmenit oshibku?',
170
+ answer: 'Da. Ispolzujte knopku Otmenit Poslednij Raund, chtoby udalit samyj poslednij raund ochkov, chto avtomaticheski pereschitaet vse itogi i rangirovanie.',
171
+ },
172
+ {
173
+ question: 'Sokhranyaet li schyotchik ochkov moi dannye?',
174
+ answer: 'Schetchik ochkov rabotaet polnostyu v vashem brauzere. Dannye sokhranyayutsya v techenie tekushchej sessii. Obnovlenie stranicy sbrosit vse ochki.',
175
+ },
176
+ {
177
+ question: 'Kak rabotaet tablica liderov?',
178
+ answer: 'TABLICA Liderov sortiruet igrokov po obshchemu rezultatu v poryadke ubvavaniya. Rang obnovlyaetsya avtomaticheski po mere vvoda ili izmeneniya ochkov v kazhdom raunde.',
179
+ },
180
+ {
181
+ question: 'Mogu li ya otslezhivat otricatelnye ochki?',
182
+ answer: 'Da. Knopki +/- pozvolyayut kak polozhitelnye, tak i otricatelnye korrektirovki, chto delaet ego podhodyashchim dlya igr so shtrafnymi ochkami ili mekhanikami vychitaniya.',
183
+ },
184
+ ],
185
+ bibliography,
186
+ howTo: [
187
+ {
188
+ name: 'Dobavlenie igrokov',
189
+ text: 'Vvedite imena igrokov s pomoshchyu polya Dobavit Igroka. Vy mozhete dobavlyat ili udalyat igrokov v lyuboe vremya v techenie igry.',
190
+ },
191
+ {
192
+ name: 'Nachalo podschyota',
193
+ text: 'Nazhmite Nachat Raund, chtoby nachat novyj raund ochenki. Ispolzujte knopki +/-, chtoby izmenit ochki kazhdogo igroka v etom raunde.',
194
+ },
195
+ {
196
+ name: 'Prosmotr rangov',
197
+ text: 'TABLICA Liderov obnovlyaetsya avtomaticheski. Prosmotrite vkladku Istoriya Ochkov, chtoby proverit zapisi predydushchikh raundov.',
198
+ },
199
+ ],
200
+ schemas: [
201
+ {
202
+ '@context': 'https://schema.org',
203
+ '@type': 'SoftwareApplication',
204
+ 'name': 'Schyotchik Ochkov & Schedrik',
205
+ 'operatingSystem': 'All',
206
+ 'applicationCategory': 'UtilitiesApplication',
207
+ 'browserRequirements': 'Requires HTML5. Requires JavaScript.',
208
+ },
209
+ {
210
+ '@context': 'https://schema.org',
211
+ '@type': 'FAQPage',
212
+ 'mainEntity': [
213
+ {
214
+ '@type': 'Question',
215
+ 'name': 'Za skolkimi igrokami ya mogu sledit?',
216
+ 'acceptedAnswer': {
217
+ '@type': 'Answer',
218
+ 'text': 'Net ogranichenij. Dobavlyajte stolko igrokov, skolko podderzhivaet vasha igra.',
219
+ },
220
+ },
221
+ {
222
+ '@type': 'Question',
223
+ 'name': 'Mogu li ya otmenit oshibku?',
224
+ 'acceptedAnswer': {
225
+ '@type': 'Answer',
226
+ 'text': 'Da. Ispolzujte knopku Otmenit Poslednij Raund, chtoby udalit samyj poslednij raund ochkov.',
227
+ },
228
+ },
229
+ {
230
+ '@type': 'Question',
231
+ 'name': 'Sokhranyaet li schyotchik ochkov moi dannye?',
232
+ 'acceptedAnswer': {
233
+ '@type': 'Answer',
234
+ 'text': 'Schyotchik ochkov rabotaet v vashem brauzere. Dannye sokhranyayutsya v techenie sessii.',
235
+ },
236
+ },
237
+ {
238
+ '@type': 'Question',
239
+ 'name': 'Kak rabotaet tablica liderov?',
240
+ 'acceptedAnswer': {
241
+ '@type': 'Answer',
242
+ 'text': 'TABLICA Liderov sortiruet igrokov po obshchemu rezultatu.',
243
+ },
244
+ },
245
+ {
246
+ '@type': 'Question',
247
+ 'name': 'Mogu li ya otslezhivat otricatelnye ochki?',
248
+ 'acceptedAnswer': {
249
+ '@type': 'Answer',
250
+ 'text': 'Da. Knopki +/- pozvolyayut kak polozhitelnye, tak i otricatelnye korrektirovki.',
251
+ },
252
+ },
253
+ ],
254
+ },
255
+ {
256
+ '@context': 'https://schema.org',
257
+ '@type': 'HowTo',
258
+ 'name': 'Kak Ispolzovat Schyotchik Ochkov',
259
+ 'step': [
260
+ {
261
+ '@type': 'HowToStep',
262
+ 'name': 'Dobavlenie igrokov',
263
+ 'text': 'Vvedite imena igrokov s pomoshchyu polya Dobavit Igroka.',
264
+ },
265
+ {
266
+ '@type': 'HowToStep',
267
+ 'name': 'Nachalo podschyota',
268
+ 'text': 'Nazhmite Nachat Raund i ispolzujte knopki +/-, chtoby izmenit ochki igrokov.',
269
+ },
270
+ {
271
+ '@type': 'HowToStep',
272
+ 'name': 'Prosmotr izmeneny',
273
+ 'text': 'TABLICA Liderov obnovlyaetsya avtomaticheski.',
274
+ },
275
+ ],
276
+ },
277
+ ],
278
+ };