# Sorteo de grupos y karts

_Cómo se hace · Repartir la parrilla por ronda, asignar karts sin repetir, validar y aplicar._

> El sorteo decide quién corre con quién y con qué kart, ronda a ronda. Se previsualiza, se valida y se edita antes de tocar nada.

![Vista previa del sorteo, con la validación y los karts editables.](/guide-assets/img/group-draw.webp)

## Un sorteo por nivel

Se sortea por separado **Heats**, **Superheats** y **Finales**, y cada uno reparte de forma distinta:

| Campo | Control | Valores | Por defecto | Qué hace |
| --- | --- | --- | --- | --- |
| Heats | — | — | — | Reparte a todos los inscritos entre los grupos de cada ronda. Es el punto de partida y no depende de resultados previos. |
| Superheats | — | — | — | **Serpiente** por la clasificación actual: 1º→grupo 1, 2º→grupo 2, 3º→grupo 3, 4º→grupo 1… Equilibra los grupos por nivel. |
| Finales | — | — | — | **Bloques** por la clasificación actual: los N mejores a la Final A, los siguientes a la Final B, etc. |

## Los controles

| Campo | Control | Valores | Por defecto | Qué hace |
| --- | --- | --- | --- | --- |
| Sembrado de heats | Equilibrado (ELO) · Aleatorio | — | — | Los dos remezclan quién va con quién en cada ronda. **Equilibrado** además iguala la fuerza de los grupos usando el ELO, para que ninguno sea el grupo de la muerte. |
| Tamaño del pool de karts | Número | 1…N por grupo | — | Cuántos karts hay disponibles por grupo. **Cuanto más ajustado, más difícil evitar repeticiones**: si el sorteo no encuentra una combinación sin repetir kart, te sugiere ampliarlo. |
| Karts fijos | Piloto + número | — | — | Un piloto listado aquí siempre lleva ese kart — por ejemplo un kart adaptado. Se respeta en todas las rondas, y si el kart fijo cae fuera del pool o choca con otro fijo, la validación lo señala. |

## El flujo

1. **Elige el nivel y comprueba la fuente**
   Te dice de dónde saca la gente: "N inscritos" para los heats, "N desde la clasificación" para superheats y finales.
2. **Genera el sorteo**
   Se muestra como **vista previa**. Todavía no se ha escrito nada.
3. **Lee la validación**
   Comprueba cinco cosas y te las enseña explícitamente. Si hay anomalías, salen listadas con nombre y motivo.
4. **Ajusta a mano lo que haga falta**
   Edita el número de kart directamente en su casilla, mueve pilotos entre grupos con el icono ⇄, o arrastra para reordenar la parrilla.
5. **Re-roll si no te convence**
   Vuelve a sortear desde cero. **Descartar** cierra la vista previa sin tocar nada.
6. **Aplica**
   Escribe parrilla y karts en todas las carreras de ese nivel. Te dice cuántas carreras y cuántas plazas antes de confirmar.

<video src="/guide-assets/vid/group-draw-walkthrough.mp4" controls loop muted></video>

_Generar, validar y ajustar el sorteo antes de aplicarlo._

## Qué valida

- Cada piloto corre **una vez por ronda** — ni dos ni ninguna.
- Ningún piloto **repite kart** entre sus rondas.
- Los karts son **únicos dentro de cada grupo**.
- **Todos** los pilotos están colocados en un grupo.
- **Todos** tienen kart asignado.

> [!DANGER]
> **Aplicar un sorteo borra resultados existentes** — Si alguna carrera de ese nivel ya tiene resultados subidos, aplicar un sorteo nuevo **los borra y revierte su ELO**. La plataforma te avisa antes con el número exacto de carreras afectadas. Si solo quieres limpiar la parrilla, usa **Quitar sorteo**: eso conserva los resultados.

## Un sorteo real, paso a paso

32 inscritos, 2 grupos, 3 heats. El sorteo tiene que repartir 32 pilotos en 2 grupos de 16, tres veces, y darle a cada uno un kart distinto en cada ronda.

```text
Ronda 1:  Grupo A (16)   Grupo B (16)
Ronda 2:  Grupo A (16)   Grupo B (16)   <- remezclado
Ronda 3:  Grupo A (16)   Grupo B (16)   <- remezclado otra vez

Cada piloto:  3 carreras, 3 karts distintos
Pool de karts: 16 por grupo  ->  suficiente margen
```

### La aritmética del pool de karts

Es la causa número uno de sorteos que fallan. El pool tiene que ser **al menos** tan grande como el número de rondas, o es matemáticamente imposible que nadie repita kart.

| Rondas | Pool mínimo | Pool cómodo | Qué pasa si te quedas corto |
| --- | --- | --- | --- |
| 2 | 2 | 4+ | Repeticiones forzadas. |
| 3 | 3 | 6+ | El sorteo avisa tras N intentos. |
| 4 | 4 | 8+ | Casi seguro que algún piloto repite. |

> [!WARNING]
> **"No se ha podido evitar repetir karts"** — Ese mensaje no es un fallo: es el sorteo diciéndote que, con el pool que le has dado, no existe una solución sin repeticiones. La respuesta es **ampliar el pool**, no volver a intentarlo — reintentar con los mismos números da el mismo resultado.

### Equilibrado o aleatorio: cuál elegir

|  | Equilibrado (ELO) | Aleatorio |
| --- | --- | --- |
| Qué hace | Remezcla y además iguala la fuerza media de cada grupo. | Solo remezcla. |
| Cuándo usarlo | Cuando los heats deciden la parrilla de las finales: nadie debe caer en el "grupo de la muerte" por sorteo. | Cuando los heats son solo rodaje, o cuando quieres que el azar forme parte del formato. |
| Efecto secundario | Los tiempos de cada grupo salen parecidos — más difícil comparar entre grupos. | Un grupo puede salir claramente más fuerte que el otro. |

> [!TIP]
> **Cuándo hacer el sorteo** — Los heats, **con la inscripción ya cerrada** — normalmente la mañana de la carrera. Superheats y finales, **después de subir los resultados de la ronda anterior**, porque se siembran desde la clasificación real. Si los generas antes, sale una parrilla provisional por ELO y tendrás que rehacerla.

## Inscripciones de última hora

Los pilotos sin colocar salen listados como **Sin asignar**. Añádelos a cualquier grupo en cada ronda: se les asigna un kart libre automáticamente y cuentan también para superheats y finales.

> [!INFO]
> **Sin clasificación todavía** — Si sorteas finales antes de tener resultados, se genera una parrilla **provisional por ELO**. Vuelve a generar tras subir resultados para ordenarla por la clasificación real.
