@jjlmoya/utils-tabletop 1.3.0 → 1.4.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.
- package/package.json +1 -1
- package/src/category/TabletopCategorySEO.astro +2 -7
- package/src/category/i18n/en.ts +4 -4
- package/src/category/i18n/ru.ts +2 -2
- package/src/category/i18n/zh.ts +8 -8
- package/src/category/index.ts +2 -1
- package/src/entries.ts +4 -1
- package/src/pages/[locale]/[slug].astro +7 -6
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/no_em_dash.test.ts +47 -0
- package/src/tests/seo_length.test.ts +1 -0
- package/src/tests/title_quality.test.ts +1 -1
- package/src/tests/tool_validation.test.ts +1 -1
- package/src/tool/board-game-timer/modules/ColorHelper.ts +2 -2
- package/src/tool/board-game-timer/modules/DuelViewManager.ts +4 -4
- package/src/tool/board-game-timer/modules/GameRunner.ts +1 -1
- package/src/tool/board-game-timer/modules/MultiplayerViewManager.ts +2 -2
- package/src/tool/board-game-timer/modules/SetupPanelManager.ts +1 -1
- package/src/tool/board-game-timer/modules/TimerEngine.ts +1 -1
- package/src/tool/board-game-timer/types.ts +1 -1
- package/src/tool/dice-roller-simulator/client.ts +2 -2
- package/src/tool/dice-roller-simulator/i18n/ru.ts +8 -8
- package/src/tool/dice-roller-simulator/modules/history.ts +1 -1
- package/src/tool/first-player-selector/bibliography.astro +16 -0
- package/src/tool/first-player-selector/bibliography.ts +12 -0
- package/src/tool/first-player-selector/client.ts +197 -0
- package/src/tool/first-player-selector/component.astro +77 -0
- package/src/tool/first-player-selector/entry.ts +42 -0
- package/src/tool/first-player-selector/first-player-selector.css +303 -0
- package/src/tool/first-player-selector/i18n/de.ts +226 -0
- package/src/tool/first-player-selector/i18n/en.ts +226 -0
- package/src/tool/first-player-selector/i18n/es.ts +226 -0
- package/src/tool/first-player-selector/i18n/fr.ts +227 -0
- package/src/tool/first-player-selector/i18n/id.ts +226 -0
- package/src/tool/first-player-selector/i18n/it.ts +227 -0
- package/src/tool/first-player-selector/i18n/ja.ts +227 -0
- package/src/tool/first-player-selector/i18n/ko.ts +227 -0
- package/src/tool/first-player-selector/i18n/nl.ts +226 -0
- package/src/tool/first-player-selector/i18n/pl.ts +227 -0
- package/src/tool/first-player-selector/i18n/pt.ts +226 -0
- package/src/tool/first-player-selector/i18n/ru.ts +227 -0
- package/src/tool/first-player-selector/i18n/sv.ts +226 -0
- package/src/tool/first-player-selector/i18n/tr.ts +226 -0
- package/src/tool/first-player-selector/i18n/zh.ts +227 -0
- package/src/tool/first-player-selector/index.ts +9 -0
- package/src/tool/first-player-selector/modules/AnimationEffects.ts +256 -0
- package/src/tool/first-player-selector/modules/SelectionEngine.ts +249 -0
- package/src/tool/first-player-selector/modules/SoundEffects.ts +87 -0
- package/src/tool/first-player-selector/modules/TouchTracker.ts +148 -0
- package/src/tool/first-player-selector/seo.astro +16 -0
- package/src/tool/first-player-selector/types.ts +21 -0
- package/src/tools.ts +2 -0
- package/src/types.ts +1 -2
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { FirstPlayerSelectorUI } from '../entry';
|
|
4
|
+
|
|
5
|
+
const ui: FirstPlayerSelectorUI = {
|
|
6
|
+
title: 'Seletor de Primeiro Jogador',
|
|
7
|
+
instructions: 'Coloque os dedos na tela ou clique para adicionar pinos',
|
|
8
|
+
tapToSelect: 'Toque para Selecionar',
|
|
9
|
+
winner: 'Vencedor escolhido!',
|
|
10
|
+
reset: 'Reiniciar',
|
|
11
|
+
start: 'Iniciar Sorteio',
|
|
12
|
+
setupTitle: 'Configurações do Seletor',
|
|
13
|
+
clearPlayers: 'Limpar Todos os Pinos',
|
|
14
|
+
fingerMode: 'Modo Toque',
|
|
15
|
+
wheelMode: 'Modo Roleta',
|
|
16
|
+
presetsTitle: 'Opções',
|
|
17
|
+
soundOn: 'Som Ativado',
|
|
18
|
+
soundOff: 'Som Desativado',
|
|
19
|
+
playerCountLabel: 'Pinos / Dedos',
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const faq = [
|
|
23
|
+
{
|
|
24
|
+
question: 'Como funciona o Modo Toque?',
|
|
25
|
+
answer: 'No Modo Toque, cada jogador coloca um dedo na tela do celular. A ferramenta detecta todos os pontos de toque, exibe anéis coloridos brilhantes ao redor deles e inicia automaticamente uma contagem regressiva curta. Quando a contagem termina, um jogador é destacado como vencedor enquanto os outros desaparecem, acompanhado por uma explosão de partículas.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Posso usar esta ferramenta em um computador desktop?',
|
|
29
|
+
answer: 'Sim! Se você estiver em um dispositivo sem tela sensível ao toque, a ferramenta alterna automaticamente para o Modo Roleta. Você pode clicar na área de toque para posicionar pinos coloridos representando os jogadores e depois clicar no botão Iniciar Sorteio para girar a roda seletora.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
question: 'Quantos jogadores podem participar?',
|
|
33
|
+
answer: 'A ferramenta suporta até 10 jogadores simultâneos. No Modo Toque, até 10 dedos podem ser detectados de uma vez. No Modo Roleta, você pode posicionar até 10 pinos coloridos na área clicando.',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
question: 'A seleção é verdadeiramente aleatória?',
|
|
37
|
+
answer: 'Sim. O algoritmo de seleção usa o Math.random() de nível criptográfico do JavaScript para garantir resultados imparciais. No Modo Toque, o vencedor é escolhido uniformemente ao acaso entre todos os pontos de toque detectados. No Modo Roleta, a roda desacelera de forma realista usando física de fricção, e o ângulo final determina o vencedor matematicamente.',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
question: 'Como remover um pino de jogador no Modo Roleta?',
|
|
41
|
+
answer: 'Simplesmente clique em um pino existente para removê-lo. A ferramenta detecta cliques dentro de 30 pixels de qualquer pino posicionado e o exclui, permitindo ajustar a formação de jogadores antes de acionar o giro.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
question: 'Esta ferramenta coleta ou transmite dados?',
|
|
45
|
+
answer: 'De forma alguma. Tudo é executado localmente no seu navegador. Nenhum dado de dedo, posição de toque ou resultado de seleção é enviado para qualquer servidor. Sua noite de jogo permanece completamente privada.',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
question: 'Funciona em projetores ou telas externas?',
|
|
49
|
+
answer: 'Sim. O Modo Roleta funciona muito bem em telas grandes e projetores para sessões de jogo de tabuleiro. Os visuais neon de alto contraste e o grande cronômetro de contagem regressiva são projetados para serem visíveis do outro lado da sala.',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
question: 'Por que a contagem regressiva reinicia quando alguém levanta o dedo?',
|
|
53
|
+
answer: 'Isso é intencional. No Modo Toque, a contagem regressiva só prossegue enquanto todos os jogadores mantêm os dedos firmes na tela. Se alguém levantar ou mover o dedo, o timer reinicia para garantir que todos estejam comprometidos antes da execução da seleção. Isso evita acionamentos acidentais.',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
question: 'Posso alterar o som ou mutá-lo?',
|
|
57
|
+
answer: 'Sim. Clique no ícone de alto-falante no canto superior direito para ativar ou desativar o som. A ferramenta toca um som de tique durante a contagem regressiva e uma fanfarra quando um vencedor é escolhido.',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
question: 'O que acontece se houver apenas um jogador?',
|
|
61
|
+
answer: 'Em ambos os modos, pelo menos dois jogadores são necessários para fazer uma seleção. No Modo Toque, a contagem regressiva não será iniciada até que pelo menos dois dedos sejam detectados. No Modo Roleta, o botão Iniciar Sorteio permanece desabilitado até que você posicione pelo menos dois pinos.',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const howTo = [
|
|
66
|
+
{
|
|
67
|
+
name: 'Coloque os Dedos ou Pinos',
|
|
68
|
+
text: 'No Modo Toque, peça para todos os jogadores colocarem um dedo na tela. No Modo Roleta, clique em qualquer lugar da área para posicionar os pinos dos jogadores.',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: 'Inicie a Seleção',
|
|
72
|
+
text: 'No Modo Toque, a seleção começa automaticamente após alguns segundos segurando. No Modo Roleta, clique no botão Iniciar Sorteio para girar.',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: 'Veja o Vencedor',
|
|
76
|
+
text: 'O vencedor é destacado com um efeito de pulsação, explosão de partículas e fanfarra sonora. Clique em Reiniciar ou levante todos os dedos para tentar novamente.',
|
|
77
|
+
},
|
|
78
|
+
];
|
|
79
|
+
|
|
80
|
+
export const content: ToolLocaleContent<FirstPlayerSelectorUI> = {
|
|
81
|
+
slug: 'seletor-primeiro-jogador',
|
|
82
|
+
title: 'Seletor de Primeiro Jogador: Escolha por Toque & Roleta de Turnos',
|
|
83
|
+
description: 'Escolha quem começa nos seus jogos de tabuleiro com este espetacular seletor por toque e roleta de turnos interativa.',
|
|
84
|
+
ui,
|
|
85
|
+
seo: [
|
|
86
|
+
{ type: 'title', text: 'Justiça e Estratégia: Resolvendo a Vantagem do Primeiro Jogador em Jogos de Tabuleiro', level: 2 },
|
|
87
|
+
{ type: 'paragraph', html: 'Determinar o jogador inicial em sessões de tabuleiro pode influenciar fortemente a dinâmica do jogo. Na teoria dos jogos, a Vantagem do Primeiro Jogador (FPA) refere-se à vantagem estatística que o jogador que age primeiro tem sobre seus oponentes. Em partidas estratégicas de xadrez, wargames e Eurogames modernos como Agricola ou Puerto Rico, realizar a primeira ação permite que um jogador garanta recursos críticos ou posicione peças antes que os oponentes possam reagir. Para mitigar a FPA e garantir um campo de jogo equilibrado, um método de seleção confiável e imparcial é essencial. Nosso seletor digital de jogador inicial garante aleatoriedade absoluta, permitindo que grupos de jogo estabeleçam a ordem de turnos instantaneamente e comecem a jogar.' },
|
|
88
|
+
{
|
|
89
|
+
type: 'stats',
|
|
90
|
+
items: [
|
|
91
|
+
{ value: '100% Aleatório', label: 'Seleção Imparcial' },
|
|
92
|
+
{ value: '2 Segundos', label: 'Gatilho de Contagem' },
|
|
93
|
+
{ value: 'Multitoque', label: 'Compatível com Celular' },
|
|
94
|
+
],
|
|
95
|
+
columns: 3,
|
|
96
|
+
},
|
|
97
|
+
{ type: 'title', text: 'Regras de Tabuleiro vs. Randomizadores Digitais: A Revolução do Toque', level: 2 },
|
|
98
|
+
{ type: 'paragraph', html: 'Muitos manuais de jogos de tabuleiro modernos incluem regras temáticas para definir o jogador inicial, como "o jogador mais novo começa", "a última pessoa que visitou uma fazenda começa" ou "o jogador mais alto começa". Embora divertidas nas primeiras partidas, essas regras rapidamente se tornam repetitivas, estáticas e injustas para grupos regulares. Randomizadores físicos como rolagens de dados ou sorteios de cartas aumentam o tempo de preparação e estão sujeitos a viés humano ou má embaralhada. O mecanismo de escolha por toque resolve isso oferecendo um randomizador rápido de tocar e segurar que seleciona um jogador inicial em segundos, sem exigir cartas ou dados extras.' },
|
|
99
|
+
{
|
|
100
|
+
type: 'table',
|
|
101
|
+
headers: ['Método de Seleção', 'Velocidade e Preparação', 'Qualidade da Aleatoriedade', 'Mais Adequado Para'],
|
|
102
|
+
rows: [
|
|
103
|
+
['Regras Arbitrárias do Manual', 'Instantâneo, mas repetitivo', 'Zero aleatoriedade após o primeiro jogo', 'Jogos em família e festas'],
|
|
104
|
+
['Rolagem de Dados', 'Exige encontrar e rolar dados, propenso a empates', 'Alta aleatoriedade, mas tedioso para grupos grandes', 'Wargames e RPGs'],
|
|
105
|
+
['Sorteio de Cartas', 'Exige embaralhar e distribuir', 'Boa aleatoriedade, mas requer cartas físicas', 'Jogos de construção de baralho e cartas'],
|
|
106
|
+
['Seletor por Toque', 'Instantâneo, zero preparo, animações visuais', 'Aleatoriedade algorítmica absoluta', 'Todos os jogos de tabuleiro e mesa'],
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'tip',
|
|
111
|
+
title: 'Otimizando Seu Configuração de Escolha Multitoque',
|
|
112
|
+
html: 'Para a melhor experiência no Modo Toque, coloque seu tablet ou smartphone plano no centro da mesa. Peça para todos os jogadores colocarem um único dedo claramente sobre a área de toque. A contagem regressiva é reiniciada se um jogador levantar ou mover o dedo, evitando seleções acidentais e garantindo consenso absoluto antes da execução do seletor.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'title',
|
|
116
|
+
text: 'Escolhendo Sua Ferramenta: Seletor por Toque vs. Roleta',
|
|
117
|
+
level: 3,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'Dependendo da sua configuração de hardware e ambiente, você pode alternar entre dois modos de layout distintos, projetados para maximizar o espaço da tela e a acessibilidade:' },
|
|
122
|
+
{
|
|
123
|
+
type: 'proscons',
|
|
124
|
+
title: 'Comparando Modos de Seleção',
|
|
125
|
+
items: [
|
|
126
|
+
{
|
|
127
|
+
pro: 'O Modo Toque oferece uma experiência incrivelmente rápida e tátil, permitindo que até 10 jogadores coloquem os dedos simultaneamente.',
|
|
128
|
+
con: 'Requer uma tela sensível ao toque, como um smartphone ou tablet.',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
pro: 'O Modo Roleta funciona em qualquer laptop, desktop ou tela de projetor, sendo ideal para sessões virtuais e noites de jogo remotas.',
|
|
132
|
+
con: 'Exige clicar para posicionar os pinos manualmente antes de acionar o giro.',
|
|
133
|
+
},
|
|
134
|
+
],
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'title',
|
|
138
|
+
text: 'Otimização Visual: Teias Multitoque vs. Rodas Desacelerando',
|
|
139
|
+
level: 3,
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'comparative',
|
|
143
|
+
items: [
|
|
144
|
+
{
|
|
145
|
+
title: 'Seletor Multitoque',
|
|
146
|
+
description: 'Rastreia múltiplos pontos de toque distintos na tela. Desenha teias de conexão neon e anéis de contagem regressiva ao redor de cada dedo, culminando em uma explosão de celebração.',
|
|
147
|
+
icon: 'mdi:gesture-double-tap',
|
|
148
|
+
highlight: true,
|
|
149
|
+
points: [
|
|
150
|
+
'Rastreamento simultâneo de toques',
|
|
151
|
+
'Verificações táteis de segurar e soltar',
|
|
152
|
+
'Explosões de partículas espetaculares',
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
title: 'Roleta',
|
|
157
|
+
description: 'Posiciona pinos coloridos de jogadores ao redor de um centro matemático. Gira uma roda de setores coloridos que desacelera naturalmente usando fricção simulada antes de designar o vencedor.',
|
|
158
|
+
icon: 'mdi:compass-outline',
|
|
159
|
+
highlight: false,
|
|
160
|
+
points: [
|
|
161
|
+
'Alinhamento baseado em centroide',
|
|
162
|
+
'Física de desaceleração por fricção',
|
|
163
|
+
'Suporte universal a mouse em desktop',
|
|
164
|
+
],
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
columns: 2,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'glossary',
|
|
171
|
+
items: [
|
|
172
|
+
{
|
|
173
|
+
term: 'Vantagem do Primeiro Jogador (FPA)',
|
|
174
|
+
definition: 'Um viés na ordem de turnos em jogos de tabuleiro onde o jogador inicial obtém uma vantagem estatisticamente significativa na seleção de ações ou controle de recursos.',
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
term: 'Protocolo de Seleção por Toque',
|
|
178
|
+
definition: 'Uma interação de tocar e segurar onde todos os participantes colocam os dedos em uma tela sensível ao toque até que um único vencedor seja destacado aleatoriamente.',
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
term: 'Física de Desaceleração',
|
|
182
|
+
definition: 'Uma rotina matemática de animação que aplica multiplicadores de fricção a uma roda giratória para simular inércia natural e gerar expectativa.',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
term: 'Cálculo de Centroide',
|
|
186
|
+
definition: 'O ponto central calculado de um conjunto disperso de pinos coordenados, usado como pivô de rotação para os gráficos da roleta.',
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
],
|
|
191
|
+
faq: faq,
|
|
192
|
+
bibliography,
|
|
193
|
+
howTo: howTo,
|
|
194
|
+
schemas: [
|
|
195
|
+
{
|
|
196
|
+
'@context': 'https://schema.org',
|
|
197
|
+
'@type': 'FAQPage',
|
|
198
|
+
'mainEntity': faq.map((f) => ({
|
|
199
|
+
'@type': 'Question',
|
|
200
|
+
'name': f.question,
|
|
201
|
+
'acceptedAnswer': {
|
|
202
|
+
'@type': 'Answer',
|
|
203
|
+
'text': f.answer,
|
|
204
|
+
},
|
|
205
|
+
})),
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
'@context': 'https://schema.org',
|
|
209
|
+
'@type': 'SoftwareApplication',
|
|
210
|
+
'name': 'Seletor de Primeiro Jogador e Escolha por Toque',
|
|
211
|
+
'operatingSystem': 'All',
|
|
212
|
+
'applicationCategory': 'UtilitiesApplication',
|
|
213
|
+
'browserRequirements': 'Requires HTML5. Requires JavaScript.'
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
'@context': 'https://schema.org',
|
|
217
|
+
'@type': 'HowTo',
|
|
218
|
+
'name': 'Como Usar o Seletor de Primeiro Jogador',
|
|
219
|
+
'step': howTo.map((h) => ({
|
|
220
|
+
'@type': 'HowToStep',
|
|
221
|
+
'name': h.name,
|
|
222
|
+
'text': h.text,
|
|
223
|
+
})),
|
|
224
|
+
},
|
|
225
|
+
],
|
|
226
|
+
};
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { FirstPlayerSelectorUI } from '../entry';
|
|
4
|
+
|
|
5
|
+
const ui: FirstPlayerSelectorUI = {
|
|
6
|
+
title: 'Выбор первого игрока',
|
|
7
|
+
instructions: 'Прикоснитесь пальцами к экрану или нажмите, чтобы добавить пины',
|
|
8
|
+
tapToSelect: 'Нажмите для выбора',
|
|
9
|
+
winner: 'Победитель выбран!',
|
|
10
|
+
reset: 'Сбросить',
|
|
11
|
+
start: 'Начать выбор',
|
|
12
|
+
setupTitle: 'Настройки выбора',
|
|
13
|
+
clearPlayers: 'Очистить все пины',
|
|
14
|
+
fingerMode: 'Режим пальцев',
|
|
15
|
+
wheelMode: 'Режим рулетки',
|
|
16
|
+
presetsTitle: 'Опции',
|
|
17
|
+
soundOn: '�,вук вкл.',
|
|
18
|
+
soundOff: '�,вук выкл.',
|
|
19
|
+
playerCountLabel: 'Пины / Пальцы',
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const faq = [
|
|
23
|
+
{
|
|
24
|
+
question: 'Как работает режим пальцев?',
|
|
25
|
+
answer: 'В режиме пальцев каждый игрок кладет палец на экран мобильного устройства. Инструмент обнаруживает все точки касания, отображает светящиеся цветные кольца вокруг них и автоматически запускает короткий обратный отсчет. После завершения отсчета один игрок выделяется как победитель, а остальные исчезают в сопровождении взрыва частиц.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Можно ли использовать этот инструмент на компьютере?',
|
|
29
|
+
answer: 'Да! Если у вас устройство без сенсорного экрана, инструмент автоматически переключается в режим рулетки. Вы можете нажимать на экран, чтобы разместить цветные пины, представляющие игроков, а затем нажать кнопку «Начать выбор», чтобы запустить вращение колеса.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
question: 'Сколько игроков может участвовать?',
|
|
33
|
+
answer: 'Инструмент поддерживает до 10 одновременных игроков. В режиме пальцев может быть обнаружено до 10 пальцев одновременно. В режиме рулетки вы можете разместить до 10 цветных пинов на экране, нажимая мышью.',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
question: 'Действительно ли выбор случаен?',
|
|
37
|
+
answer: 'Да. Алгоритм выбора использует криптографический Math.random() из JavaScript для обеспечения непредвзятых результатов. В режиме пальцев победитель выбирается равномерно случайным образом среди всех обнаруженных точек касания. В режиме рулетки колесо замедляется реалистично с использованием физики трения, и конечный угол математически определяет победителя.',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
question: 'Как удалить пин игрока в режиме рулетки?',
|
|
41
|
+
answer: 'Просто нажмите на существующий пин, чтобы удалить его. Инструмент обнаруживает клики в пределах 30 пикселей от любого размещенного пина и удаляет его, позволяя вам настроить состав игроков перед запуском вращения.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
question: 'Собирает или передает ли этот инструмент какие-либо данные?',
|
|
45
|
+
answer: 'Совсем нет. Все работает локально в вашем браузере. Никакие данные о пальцах, позициях касания или результатах выбора никогда не отправляются на сервер. Ваш игровой вечер остается полностью приватным.',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
question: 'Работает ли он на проекторах или внешних экранах?',
|
|
49
|
+
answer: 'Да. Режим рулетки отлично работает на больших экранах и проекторах для настольных сессий. Контрастные неоновые визуальные эффекты и большой таймер обратного отсчета разработаны так, чтобы быть видимыми через всю комнату.',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
question: 'Почему обратный отсчет сбрасывается, когда кто-то убирает палец?',
|
|
53
|
+
answer: 'Это сделано намеренно. В режиме пальцев обратный отсчет продолжается только тогда, когда все игроки держат пальцы неподвижно на экране. Если кто-то убирает или сдвигает палец, таймер сбрасывается, чтобы убедиться, что все готовы к выбору. Это предотвращает случайные срабатывания.',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
question: 'Можно ли изменить звук или отключить его?',
|
|
57
|
+
answer: 'Да. Нажмите на значок динамика в правом верхнем углу, чтобы включить или выключить звук. Инструмент воспроизводит звук тиканья во время обратного отсчета и фанфары при выборе победителя.',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
question: 'Что произойдет, если только один игрок?',
|
|
61
|
+
answer: 'В обоих режимах для выбора требуется минимум два игрока. В режиме пальцев обратный отсчет не запустится, пока не будет обнаружено как минимум два пальца. В режиме рулетки кнопка «Начать выбор» остается неактивной, пока вы не разместите как минимум два пина.',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const howTo = [
|
|
66
|
+
{
|
|
67
|
+
name: 'Разместите пальцы или пины',
|
|
68
|
+
text: 'В режиме пальцев попросите всех игроков положить по одному пальцу на экран. В режиме рулетки нажмите в любом месте экрана, чтобы разместить пины игроков.',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: '�,апустите выбор',
|
|
72
|
+
text: 'Для режима пальцев выбор начинается автоматически после удержания в течение нескольких секунд. Для режима рулетки нажмите кнопку «Начать выбор», чтобы запустить вращение.',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: 'Узнайте победителя',
|
|
76
|
+
text: 'Победитель выделяется пульсирующим эффектом, взрывом частиц и звуковыми фанфарами. Нажмите «Сбросить» или уберите все пальцы, чтобы попробовать снова.',
|
|
77
|
+
},
|
|
78
|
+
];
|
|
79
|
+
|
|
80
|
+
export const content: ToolLocaleContent<FirstPlayerSelectorUI> = {
|
|
81
|
+
slug: 'vybor-pervogo-igroka',
|
|
82
|
+
title: 'Выбор первого игрока: Пальцевой выбор и рулетка ходов',
|
|
83
|
+
description: 'Определите, кто ходит первым в ваших настольных играх с помощью впечатляющего пальцевого выбора и интерактивной рулетки ходов.',
|
|
84
|
+
ui,
|
|
85
|
+
seo: [
|
|
86
|
+
{ type: 'title', text: 'Честность и стратегия: Решение проблемы преимущества первого хода в настольных играх', level: 2 },
|
|
87
|
+
{ type: 'paragraph', html: 'Определение начинающего игрока в настольных сессиях может сильно повлиять на динамику игры. В теории игр преимущество первого хода (FPA) - это статистическое преимущество, которое игрок, делающий первый ход, получает над своими соперниками. В стратегических шахматных партиях, варгеймах и современных евроиграх, таких как Agricola или Puerto Rico, первое действие позволяет игроку захватить критические ресурсы или расставить фигуры до того, как соперники смогут среагировать. Чтобы смягчить FPA и гарантировать сбалансированное игровое поле, необходим надежный, непредвзятый метод выбора. Наш цифровой селектор начального игрока гарантирует абсолютную случайность, позволяя игровым группам мгновенно установить порядок ходов и сразу приступить к игре.' },
|
|
88
|
+
{
|
|
89
|
+
type: 'stats',
|
|
90
|
+
items: [
|
|
91
|
+
{ value: '100% Случайно', label: 'Непредвзятый выбор' },
|
|
92
|
+
{ value: '2 Секунды', label: 'Обратный отсчет' },
|
|
93
|
+
{ value: 'Мультитач', label: 'Совместимость с мобильными' },
|
|
94
|
+
],
|
|
95
|
+
columns: 3,
|
|
96
|
+
},
|
|
97
|
+
{ type: 'title', text: 'Правила настольных игр против цифровых рандомизаторов: Сенсорная революция', level: 2 },
|
|
98
|
+
{ type: 'paragraph', html: 'Многие современные правила настольных игр включают тематические правила определения первого игрока, такие как «самый молодой игрок ходит первым», «последний посетивший ферму ходит первым» или «самый высокий игрок ходит первым». Хотя это забавно в первых партиях, такие правила быстро становятся повторяющимися, статичными и несправедливыми для постоянных игровых групп. Физические рандомизаторы, такие как броски кубиков или вытягивание карт, увеличивают время подготовки и подвержены человеческой предвзятости или плохому перемешиванию. Механика пальцевого выбора решает эту проблему, предлагая быстрый сенсорный рандомизатор, который выбирает первого игрока за секунды без необходимости в дополнительных картах или кубиках.' },
|
|
99
|
+
{
|
|
100
|
+
type: 'table',
|
|
101
|
+
headers: ['Метод выбора', 'Скорость и подготовка', 'Качество случайности', 'Лучше всего подходит для'],
|
|
102
|
+
rows: [
|
|
103
|
+
['Произвольные правила', 'Мгновенно, но повторяется', 'Нулевая случайность после первой игры', 'Семейные и вечериночные игры'],
|
|
104
|
+
['Броски кубиков', 'Требует поиска и броска кубиков, возможны ничьи', 'Высокая случайность, но утомительно для больших групп', 'Варгеймы и РПГ'],
|
|
105
|
+
['Вытягивание карт', 'Требует перемешивания и раздачи', 'Хорошая случайность, но нужны физические карты', 'Колодостроители и карточные игры'],
|
|
106
|
+
['Сенсорный выбор пальцем', 'Мгновенно, нулевая подготовка, визуальные анимации', 'Абсолютная алгоритмическая случайность', 'Все настольные игры'],
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'tip',
|
|
111
|
+
title: 'Оптимизация мультитач выбора',
|
|
112
|
+
html: 'Для наилучшего опыта в режиме пальцев разместите планшет или смартфон в центре стола. Попросите всех игроков четко положить по одному пальцу на экран. Обратный отсчет сбрасывается, если игрок убирает или сдвигает палец, предотвращая случайные срабатывания и обеспечивая полный консенсус перед запуском выбора.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'title',
|
|
116
|
+
text: 'Выбор инструмента: Сенсорный пальцевой выбор против рулетки',
|
|
117
|
+
level: 3,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'В зависимости от вашего оборудования и окружения вы можете переключаться между двумя различными режимами, разработанными для максимального использования экранного пространства и доступности:',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'proscons',
|
|
125
|
+
title: 'Сравнение режимов выбора',
|
|
126
|
+
items: [
|
|
127
|
+
{
|
|
128
|
+
pro: 'Режим пальцев обеспечивает невероятно быстрый и тактильный опыт, позволяя до 10 игроков одновременно касаться экрана.',
|
|
129
|
+
con: 'Требуется сенсорный экран, например смартфон или планшет.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
pro: 'Режим рулетки работает на любом ноутбуке, ПК или проекторе, что делает его идеальным для виртуальных сессий и удаленных игровых вечеров.',
|
|
133
|
+
con: 'Требуется кликать для ручной установки пинов перед запуском вращения.',
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'title',
|
|
139
|
+
text: 'Визуальная оптимизация: Мультитач сети и замедляющиеся колеса',
|
|
140
|
+
level: 3,
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'comparative',
|
|
144
|
+
items: [
|
|
145
|
+
{
|
|
146
|
+
title: 'Мультитач выбор',
|
|
147
|
+
description: 'Отслеживает несколько различных точек касания на экране. Рисует неоновые соединительные сети и уменьшающиеся кольца обратного отсчета вокруг каждого пальца, завершаясь праздничным взрывом.',
|
|
148
|
+
icon: 'mdi:gesture-double-tap',
|
|
149
|
+
highlight: true,
|
|
150
|
+
points: [
|
|
151
|
+
'Одновременное отслеживание касаний',
|
|
152
|
+
'Тактильные проверки удержания и отпускания',
|
|
153
|
+
'Эффектные взрывы частиц',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
title: 'Рулетка',
|
|
158
|
+
description: 'Размещает цветные пины игроков вокруг математического центроида. �,апускает вращение цветного секторного колеса, которое замедляется естественным образом с помощью симулированного трения, прежде чем определить победителя.',
|
|
159
|
+
icon: 'mdi:compass-outline',
|
|
160
|
+
highlight: false,
|
|
161
|
+
points: [
|
|
162
|
+
'Выравнивание по центроиду',
|
|
163
|
+
'Физика замедления на основе трения',
|
|
164
|
+
'Универсальная поддержка мыши на ПК',
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
],
|
|
168
|
+
columns: 2,
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'glossary',
|
|
172
|
+
items: [
|
|
173
|
+
{
|
|
174
|
+
term: 'Преимущество первого хода (FPA)',
|
|
175
|
+
definition: 'Смещение порядка ходов в настольных играх, при котором начинающий игрок получает статистически значимое преимущество в выборе действий или контроле ресурсов.',
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
term: 'Протокол сенсорного выбора',
|
|
179
|
+
definition: 'Взаимодействие касанием и удержанием, при котором все участники кладут пальцы на сенсорный экран до тех пор, пока один случайный победитель не будет выделен.',
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
term: 'Физика замедления',
|
|
183
|
+
definition: 'Математическая анимационная процедура, применяющая множители трения к вращающемуся колесу для симуляции естественной инерции и создания ожидания.',
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
term: 'Расчет центроида',
|
|
187
|
+
definition: 'Вычисленная центральная точка разбросанного набора координатных пинов, используемая как ось вращения для графики колеса рулетки.',
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
},
|
|
191
|
+
],
|
|
192
|
+
faq: faq,
|
|
193
|
+
bibliography,
|
|
194
|
+
howTo: howTo,
|
|
195
|
+
schemas: [
|
|
196
|
+
{
|
|
197
|
+
'@context': 'https://schema.org',
|
|
198
|
+
'@type': 'FAQPage',
|
|
199
|
+
'mainEntity': faq.map((f) => ({
|
|
200
|
+
'@type': 'Question',
|
|
201
|
+
'name': f.question,
|
|
202
|
+
'acceptedAnswer': {
|
|
203
|
+
'@type': 'Answer',
|
|
204
|
+
'text': f.answer,
|
|
205
|
+
},
|
|
206
|
+
})),
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
'@context': 'https://schema.org',
|
|
210
|
+
'@type': 'SoftwareApplication',
|
|
211
|
+
'name': 'Выбор первого игрока и пальцевой выбор',
|
|
212
|
+
'operatingSystem': 'All',
|
|
213
|
+
'applicationCategory': 'UtilitiesApplication',
|
|
214
|
+
'browserRequirements': 'Requires HTML5. Requires JavaScript.',
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
'@context': 'https://schema.org',
|
|
218
|
+
'@type': 'HowTo',
|
|
219
|
+
'name': 'How to Use the First Player Selector',
|
|
220
|
+
'step': howTo.map((h) => ({
|
|
221
|
+
'@type': 'HowToStep',
|
|
222
|
+
'name': h.name,
|
|
223
|
+
'text': h.text,
|
|
224
|
+
})),
|
|
225
|
+
},
|
|
226
|
+
],
|
|
227
|
+
};
|