• Colaboradores
  • Colunistas
  • Colunas
  • Links
    • Sobre
    • Privacy Policy
    • Código de Ética Jornalística
    • Política de Correções
    • Política de diversidade
    • Contato
Sexta-feira, 19 Junho, 2026
Jornal Aurora
Nenhum resultado
Ver todos os resultados
  • Home
  • Editorias
    • Todos
    • Economia
    • Educação
    • Esportes
    • Geral
    • Mundo
    • Polícia
    • Política
    • Saúde
    E69a3e74 56db 49be Aae2 C9b9fc7059ac

    Nadadora de Campos conquista medalha de ouro no Campeonato Brasileiro Interclubes Juvenil de Natação

    IMG 4321

    Estudantes podem ganhar iPhones, computadores e tablets em concurso de redação do Senac

    Imagem 2

    Serra Noroeste Run abre inscrições para segunda etapa após sucesso de estreia

    Aplicacao De Prova IFF 2

    Provas para cursos técnicos e superiores do IFF serão aplicadas neste domingo, 14

    Marquinho do Transporte demonstra força política e consolida pré-candidatura à Alerj em encontro de lideranças

    Marquinho do Transporte demonstra força política e consolida pré-candidatura à Alerj em encontro de lideranças

    Álvaro Oliveira intensifica agenda regional e foca na ampliação de base política

    Álvaro Oliveira intensifica agenda regional e foca na ampliação de base política

  • Tecnologia
    IMG 4285

    Cidac orienta população sobre proteção de dados na internet

    Jornal Aurora debate os impactos da inteligência artificial no futuro do trabalho nesta terça (09)

    Jornal Aurora debate os impactos da inteligência artificial no futuro do trabalho nesta terça (09)

    O Que E Uma Impressora Multifuncional E Quais Sao As Suas Vantagens

    O que é uma impressora multifuncional e quais são as suas vantagens?

    These Are the 5 Big Tech Stories to Watch in 2017

    With 150 million daily active users, Instagram Stories is launching ads

    Trending Tags

    • Nintendo Switch
    • CES 2017
    • Playstation 4 Pro
    • Mark Zuckerberg
  • Entretenimento
    • Todos
    • Famosos
    2026 05 21t000000z 941601704 Mt1zuma0004h1gvw Rtrmadp 3 Zuma

    Influencer Deolane Bezerra é “Caixa do Crime Organizado”, diz polícia

    Nascido em Dores de Macabu, escritor de 16 anos estreia no universo da fantasia e lança livro neste sábado (02)

    Nascido em Dores de Macabu, escritor de 16 anos estreia no universo da fantasia e lança livro neste sábado (02)

    Luana Piovani Pedro Scooby 1

    Luana Piovani se irrita com atitude do ex, Pedro Scooby, em aniversário do filho: “Egoísmo”

    I Love It Out Here In The Snow. You Cant Beat Views Like These. Life Is A Gift So Cherish Toda

    Chuck Norris morre aos 86 anos

    20260319152541gqijRuDXL0

    Aos 33 anos, participante do reality ‘De Férias com o Ex’ é encontrado morto em vala

    Capa 12 1758132107

    Filho de Simone Mendes faz tratamento para crescer: especialista explica quando é indicado

  • Cidades
    • Todos
    • Cambuci
    • Campos
    • Carapebus
    • Cardoso Moreira
    • Espírito Santo
    • Italva
    • Itaocara
    • Itaperuna
    • Macaé
    • Quissamã
    • Rio de Janeiro
    • São Fidélis
    • São Francisco
    • São João da Barra
    • São Paulo
    Marquinho do Transporte demonstra força política e consolida pré-candidatura à Alerj em encontro de lideranças

    Marquinho do Transporte demonstra força política e consolida pré-candidatura à Alerj em encontro de lideranças

    IMG 4214

    Homem é preso em flagrante por ameaçar companheira após pedido de separação em Campos

    IMG 4184

    Dia dos Namorados deve aquecer as vendas no comércio campista

    IMG 4059

    Quissamã inicia serviço de Castramóvel

    IMG 4032

    Junho Vermelho reforça importância da doação de sangue e alerta para baixo estoque

    IMG 4031

    Polícia Justiça Federal de Campos autoriza operação da PF contra lavagem de dinheiro no RJ

  • Home
  • Editorias
    • Todos
    • Economia
    • Educação
    • Esportes
    • Geral
    • Mundo
    • Polícia
    • Política
    • Saúde
    E69a3e74 56db 49be Aae2 C9b9fc7059ac

    Nadadora de Campos conquista medalha de ouro no Campeonato Brasileiro Interclubes Juvenil de Natação

    IMG 4321

    Estudantes podem ganhar iPhones, computadores e tablets em concurso de redação do Senac

    Imagem 2

    Serra Noroeste Run abre inscrições para segunda etapa após sucesso de estreia

    Aplicacao De Prova IFF 2

    Provas para cursos técnicos e superiores do IFF serão aplicadas neste domingo, 14

    Marquinho do Transporte demonstra força política e consolida pré-candidatura à Alerj em encontro de lideranças

    Marquinho do Transporte demonstra força política e consolida pré-candidatura à Alerj em encontro de lideranças

    Álvaro Oliveira intensifica agenda regional e foca na ampliação de base política

    Álvaro Oliveira intensifica agenda regional e foca na ampliação de base política

  • Tecnologia
    IMG 4285

    Cidac orienta população sobre proteção de dados na internet

    Jornal Aurora debate os impactos da inteligência artificial no futuro do trabalho nesta terça (09)

    Jornal Aurora debate os impactos da inteligência artificial no futuro do trabalho nesta terça (09)

    O Que E Uma Impressora Multifuncional E Quais Sao As Suas Vantagens

    O que é uma impressora multifuncional e quais são as suas vantagens?

    These Are the 5 Big Tech Stories to Watch in 2017

    With 150 million daily active users, Instagram Stories is launching ads

    Trending Tags

    • Nintendo Switch
    • CES 2017
    • Playstation 4 Pro
    • Mark Zuckerberg
  • Entretenimento
    • Todos
    • Famosos
    2026 05 21t000000z 941601704 Mt1zuma0004h1gvw Rtrmadp 3 Zuma

    Influencer Deolane Bezerra é “Caixa do Crime Organizado”, diz polícia

    Nascido em Dores de Macabu, escritor de 16 anos estreia no universo da fantasia e lança livro neste sábado (02)

    Nascido em Dores de Macabu, escritor de 16 anos estreia no universo da fantasia e lança livro neste sábado (02)

    Luana Piovani Pedro Scooby 1

    Luana Piovani se irrita com atitude do ex, Pedro Scooby, em aniversário do filho: “Egoísmo”

    I Love It Out Here In The Snow. You Cant Beat Views Like These. Life Is A Gift So Cherish Toda

    Chuck Norris morre aos 86 anos

    20260319152541gqijRuDXL0

    Aos 33 anos, participante do reality ‘De Férias com o Ex’ é encontrado morto em vala

    Capa 12 1758132107

    Filho de Simone Mendes faz tratamento para crescer: especialista explica quando é indicado

  • Cidades
    • Todos
    • Cambuci
    • Campos
    • Carapebus
    • Cardoso Moreira
    • Espírito Santo
    • Italva
    • Itaocara
    • Itaperuna
    • Macaé
    • Quissamã
    • Rio de Janeiro
    • São Fidélis
    • São Francisco
    • São João da Barra
    • São Paulo
    Marquinho do Transporte demonstra força política e consolida pré-candidatura à Alerj em encontro de lideranças

    Marquinho do Transporte demonstra força política e consolida pré-candidatura à Alerj em encontro de lideranças

    IMG 4214

    Homem é preso em flagrante por ameaçar companheira após pedido de separação em Campos

    IMG 4184

    Dia dos Namorados deve aquecer as vendas no comércio campista

    IMG 4059

    Quissamã inicia serviço de Castramóvel

    IMG 4032

    Junho Vermelho reforça importância da doação de sangue e alerta para baixo estoque

    IMG 4031

    Polícia Justiça Federal de Campos autoriza operação da PF contra lavagem de dinheiro no RJ

Jornal Aurora
Nenhum resultado
Ver todos os resultados
Jornal Aurora
Nenhum resultado
Ver todos os resultados

Simulador do sorteio da Copa do Mundo 2026; teste agora e descubra os possíveis grupos

Germando Santos by Germando Santos
2 de Dezembro, 2025
in Esportes
0
Home Editorias Esportes
Share on FacebookShare on Twitter

A Copa do Mundo de 2026 está chegando, mas você já pode entrar em campo com nosso Simulador do Sorteio da Copa do Mundo. A ferramenta dá asas à sua imaginação e permite descobrir, aleatoriamente, possíveis grupos para Mundial. O sorteio oficial ocorre nesta sexta-feira (5), a partir das 14h, nos Estados Unidos.

Sorteio da Copa do Mundo de Futebol 2026

Conteúdo

  • 1 Sorteio da Copa do Mundo de Futebol 2026
      • 1.0.1 Como funciona?
        • 1.0.1.1 Regras da Copa do Mundo 2026:
    • 1.1 Etapa 1: Seleção dos vencedores das repescagens
    • 1.2 Potes definitivos
    • 1.3 Resultados do sorteio
    • 1.4 Siga o UmDois Esportes

Sorteio da Copa do Mundo de Futebol 2026

Coloque-se no lugar do presidente da FIFA e simule o sorteio dos grupos dos países que participarão da Copa do Mundo 2026. A competição será realizada de 11 de junho a 19 de julho nos Estados Unidos, Canadá e México.

Como funciona?

Etapa 1: Escolha os vencedores das 6 repescagens.

Etapa 2: Inicie o sorteio.

Regras da Copa do Mundo 2026:

  • Máximo de 1 seleção por confederação (AFC, CAF, CONMEBOL, CONCACAF, OFC) em cada grupo
  • Máximo de 2 seleções UEFA por grupo
  • 12 grupos de 4 seleções (A a L)

Países organizadores: México (Grupo A), Canadá (Grupo B), Estados Unidos (Grupo D)

Etapa 1: Seleção dos vencedores das repescagens

Potes definitivos

Aqui estão os 4 potes calculados com os seus vencedores das repescagens

Resultados do sorteio

Compartilhar meu sorteio

Baixe a imagem do seu sorteio e compartilhe nas suas redes sociais

/* Reset e Base */ #worldcup-draw-simulator { font-family: -apple-system, BlinkMacSystemFont, ‘Segoe UI’, Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; max-width: 950px; margin: 0 auto; padding: 20px; color: #333; line-height: 1.6; } #worldcup-draw-simulator * { box-sizing: border-box; } /* Utilitários */ .wc-draw-hidden { display: none !important; } /* Introdução */ .wc-draw-intro { margin-bottom: 40px; text-align: center; } .wc-draw-title { font-size: 28px; margin-bottom: 20px; color: #009739; font-weight: 700; } .wc-draw-intro-text { font-size: 16px; line-height: 1.6; color: #555; margin-bottom: 25px; max-width: 800px; margin-left: auto; margin-right: auto; } .wc-draw-rules { background: #f5f5f5; border-radius: 8px; padding: 15px; margin-top: 20px; } .wc-draw-toggle-rules { background: none; border: none; color: #009739; font-size: 16px; font-weight: 600; cursor: pointer; padding: 10px; width: 100%; text-align: center; } .wc-draw-toggle-rules:hover { opacity: 0.8; } .wc-draw-rules-content { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; text-align: left; } .wc-draw-rules-content.active { max-height: 600px; margin-top: 15px; } .wc-draw-rules-content h3, .wc-draw-rules-content h4 { color: #009739; margin-top: 15px; margin-bottom: 10px; } .wc-draw-rules-content ul { padding-left: 20px; } .wc-draw-rules-content li { margin-bottom: 8px; } /* Seções */ .wc-draw-section { margin-bottom: 40px; } .wc-draw-section-title { font-size: 24px; color: #1a472a; margin-bottom: 15px; font-weight: 700; } .wc-draw-brazil-group { font-size: 16px; color: #996515; margin-bottom: 30px; text-align: left; font-weight: 700; background: #fff8dc; padding: 12px 20px; border-radius: 6px; border-left: 4px solid #FFDF00; } .wc-draw-subtitle { color: #666; margin-bottom: 20px; font-size: 14px; } /* Grid Repescagens */ .wc-draw-playoffs-grid { display: grid; gap: 20px; margin-bottom: 30px; } .wc-draw-playoff-card { background: white; border: 2px solid #e0e0e0; border-radius: 8px; padding: 20px; transition: border-color 0.3s; } .wc-draw-playoff-card.selected { border-color: #1a472a; box-shadow: 0 2px 8px rgba(26, 71, 42, 0.1); } .wc-draw-playoff-title { font-size: 18px; font-weight: 600; color: #1a472a; margin-bottom: 8px; } .wc-draw-playoff-subtitle { font-size: 13px; color: #666; margin-bottom: 15px; } .wc-draw-playoff-teams { display: grid; gap: 10px; } .wc-draw-team-option { background: #f5f5f5; border: 2px solid #e0e0e0; border-radius: 6px; padding: 12px 15px; cursor: pointer; transition: all 0.2s; font-size: 14px; text-align: center; overflow-wrap: break-word; word-break: break-word; line-height: 1.4; } .wc-draw-team-option:hover { background: #e8e8e8; border-color: #ccc; } .wc-draw-team-option.selected { background: #1a472a; color: white; border-color: #1a472a; } .wc-draw-winner-badge { display: inline-block; background: #1a472a; color: white; padding: 4px 12px; border-radius: 12px; font-size: 12px; margin-top: 10px; font-weight: 600; } /* Grid Potes */ .wc-draw-pots-grid { display: grid; gap: 20px; margin-bottom: 30px; } .wc-draw-pot-card { background: white; border: 2px solid #e0e0e0; border-radius: 8px; padding: 15px; } .wc-draw-pot-header { font-size: 18px; font-weight: 700; color: #1a472a; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 2px solid #1a472a; } .wc-draw-pot-teams { display: grid; gap: 8px; } .wc-draw-pot-team { display: flex; justify-content: space-between; align-items: center; padding: 6px 8px; background: #f9f9f9; border-radius: 4px; font-size: 12px; gap: 6px; } .wc-draw-pot-team-name { font-weight: 500; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; } .wc-draw-confed-badge { display: inline-block; padding: 2px 6px; border-radius: 10px; font-size: 10px; font-weight: 600; text-transform: uppercase; flex-shrink: 0; } .wc-draw-confed-badge.AFC { background: #ff6b6b; color: white; } .wc-draw-confed-badge.CAF { background: #ffd93d; color: #333; } .wc-draw-confed-badge.CONCACAF { background: #6bcf7f; color: white; } .wc-draw-confed-badge.CONMEBOL { background: #4d96ff; color: white; } .wc-draw-confed-badge.OFC { background: #95e1d3; color: #333; } .wc-draw-confed-badge.UEFA { background: #9d84b7; color: white; } /* Botões */ .wc-draw-actions { display: flex; gap: 15px; justify-content: center; flex-wrap: wrap; margin-top: 30px; } .wc-draw-btn { padding: 14px 28px; border: none; border-radius: 6px; font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.2s; min-width: 200px; } .wc-draw-btn:disabled { opacity: 0.5; cursor: not-allowed; } .wc-draw-btn-primary { background: #1a472a; color: white; } .wc-draw-btn-primary:hover:not(:disabled) { background: #0d2817; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(26, 71, 42, 0.3); } .wc-draw-btn-secondary { background: white; color: #1a472a; border: 2px solid #1a472a; } .wc-draw-btn-secondary:hover { background: #f5f5f5; } /* Grupos */ .wc-draw-groups-container { display: grid; gap: 20px; margin-bottom: 30px; } .wc-draw-group-card { background: white; border: 2px solid #e0e0e0; border-radius: 8px; padding: 15px; transition: all 0.3s; } .wc-draw-group-card.highlight { border-color: #1a472a; box-shadow: 0 4px 16px rgba(26, 71, 42, 0.2); transform: scale(1.02); } .wc-draw-group-header { font-size: 20px; font-weight: 700; color: #1a472a; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 2px solid #e0e0e0; } .wc-draw-group-teams { display: grid; gap: 8px; } .wc-draw-group-slot { padding: 10px; border-radius: 4px; display: flex; justify-content: space-between; align-items: center; font-size: 13px; gap: 8px; } .wc-draw-group-slot-label { flex-shrink: 0; font-size: 12px; color: #666; } .wc-draw-team-name { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; } .wc-draw-group-slot .wc-draw-confed-badge { flex-shrink: 0; margin-left: auto; } .wc-draw-group-slot.empty { background: #f5f5f5; color: #999; } .wc-draw-group-slot.filled { background: #e8f5e9; font-weight: 500; } .wc-draw-group-slot.brazil { background: #FFDF00; color: #1a472a; font-weight: 600; } .wc-draw-group-slot.brazil .wc-draw-group-slot-label { color: rgba(26, 71, 42, 0.8); } /* Seção Compartilhar */ .wc-draw-share-section { margin-top: 40px; padding-top: 30px; border-top: 1px solid #e0e0e0; text-align: center; } .wc-draw-share-title { font-size: 16px; font-weight: 600; color: #333; margin-bottom: 8px; } .wc-draw-share-instructions { font-size: 14px; color: #666; margin-bottom: 20px; } .wc-draw-share-buttons { display: flex; justify-content: center; gap: 15px; flex-wrap: wrap; } .wc-draw-share-btn { display: flex; align-items: center; gap: 8px; padding: 12px 20px; border: none; border-radius: 6px; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.2s; color: white; } .wc-draw-share-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); } .wc-draw-share-btn svg { flex-shrink: 0; } .wc-draw-share-x { background: #000000; } .wc-draw-share-x:hover { background: #333333; } .wc-draw-share-facebook { background: #1877F2; } .wc-draw-share-facebook:hover { background: #0d65d9; } .wc-draw-share-instagram { background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%); } .wc-draw-share-instagram:hover { background: linear-gradient(45deg, #e08323 0%, #d6582c 25%, #cc1733 50%, #bc1356 75%, #ac0878 100%); } .wc-draw-share-download { background: #1a472a; } .wc-draw-share-download:hover { background: #0d2817; } /* Responsivo Desktop */ @media (min-width: 768px) { .wc-draw-title { font-size: 36px; } .wc-draw-intro-text { font-size: 18px; } .wc-draw-playoffs-grid { grid-template-columns: repeat(2, 1fr); } .wc-draw-pots-grid { grid-template-columns: repeat(2, 1fr); } .wc-draw-groups-container { grid-template-columns: repeat(2, 1fr); } } @media (min-width: 900px) { .wc-draw-playoffs-grid { grid-template-columns: repeat(3, 1fr); } .wc-draw-pots-grid { grid-template-columns: repeat(4, 1fr); } .wc-draw-groups-container { grid-template-columns: repeat(3, 1fr); } } (function() { ‘use strict’; // ============================================ // DADOS BASE // ============================================ // Definição das repescagens const PLAYOFFS = [ { id: ‘uefa_a’, name: ‘Repescagem UEFA A’, subtitle: ‘O vencedor vai para o Pote 4 (UEFA)’, teams: [‘País de Gales’, ‘Bósnia-Herzegovina’, ‘Itália’, ‘Irlanda do Norte’], confed: ‘UEFA’ }, { id: ‘uefa_b’, name: ‘Repescagem UEFA B’, subtitle: ‘O vencedor vai para o Pote 4 (UEFA)’, teams: [‘Ucrânia’, ‘Suécia’, ‘Polônia’, ‘Albânia’], confed: ‘UEFA’ }, { id: ‘uefa_c’, name: ‘Repescagem UEFA C’, subtitle: ‘O vencedor vai para o Pote 4 (UEFA)’, teams: [‘Eslováquia’, ‘Kosovo’, ‘Turquia’, ‘Romênia’], confed: ‘UEFA’ }, { id: ‘uefa_d’, name: ‘Repescagem UEFA D’, subtitle: ‘O vencedor vai para o Pote 4 (UEFA)’, teams: [‘República Tcheca’, ‘Irlanda’, ‘Dinamarca’, ‘Macedônia do Norte’], confed: ‘UEFA’ }, { id: ‘inter_1’, name: ‘Repescagem Inter 1’, subtitle: ‘O vencedor vai para o Pote 4’, teams: [‘Nova Caledônia’, ‘Jamaica’, ‘RD Congo’] }, { id: ‘inter_2’, name: ‘Repescagem Inter 2’, subtitle: ‘O vencedor vai para o Pote 4’, teams: [‘Suriname’, ‘Iraque’, ‘Bolívia’] } ]; // Mapeamento das confederações const CONFEDERATIONS = { ‘Estados Unidos’: ‘CONCACAF’, ‘México’: ‘CONCACAF’, ‘Canadá’: ‘CONCACAF’, ‘Panamá’: ‘CONCACAF’, ‘Curaçao’: ‘CONCACAF’, ‘Haiti’: ‘CONCACAF’, ‘Jamaica’: ‘CONCACAF’, ‘Nova Caledônia’: ‘OFC’, ‘Argentina’: ‘CONMEBOL’, ‘Brasil’: ‘CONMEBOL’, ‘Colômbia’: ‘CONMEBOL’, ‘Equador’: ‘CONMEBOL’, ‘Paraguai’: ‘CONMEBOL’, ‘Uruguai’: ‘CONMEBOL’, ‘Bolívia’: ‘CONMEBOL’, ‘Suriname’: ‘CONCACAF’, ‘Alemanha’: ‘UEFA’, ‘Inglaterra’: ‘UEFA’, ‘Áustria’: ‘UEFA’, ‘Bélgica’: ‘UEFA’, ‘Croácia’: ‘UEFA’, ‘Escócia’: ‘UEFA’, ‘França’: ‘UEFA’, ‘Espanha’: ‘UEFA’, ‘Noruega’: ‘UEFA’, ‘Países Baixos’: ‘UEFA’, ‘Portugal’: ‘UEFA’, ‘Suíça’: ‘UEFA’, ‘País de Gales’: ‘UEFA’, ‘Bósnia-Herzegovina’: ‘UEFA’, ‘Itália’: ‘UEFA’, ‘Irlanda do Norte’: ‘UEFA’, ‘Ucrânia’: ‘UEFA’, ‘Suécia’: ‘UEFA’, ‘Polônia’: ‘UEFA’, ‘Albânia’: ‘UEFA’, ‘Eslováquia’: ‘UEFA’, ‘Kosovo’: ‘UEFA’, ‘Turquia’: ‘UEFA’, ‘Romênia’: ‘UEFA’, ‘República Tcheca’: ‘UEFA’, ‘Irlanda’: ‘UEFA’, ‘Dinamarca’: ‘UEFA’, ‘Macedônia do Norte’: ‘UEFA’, ‘Arábia Saudita’: ‘AFC’, ‘Austrália’: ‘AFC’, ‘Japão’: ‘AFC’, ‘Jordânia’: ‘AFC’, ‘Uzbequistão’: ‘AFC’, ‘Catar’: ‘AFC’, ‘Coreia do Sul’: ‘AFC’, ‘Irã’: ‘AFC’, ‘Iraque’: ‘AFC’, ‘África do Sul’: ‘CAF’, ‘Argélia’: ‘CAF’, ‘Cabo Verde’: ‘CAF’, ‘Costa do Marfim’: ‘CAF’, ‘Egito’: ‘CAF’, ‘Gana’: ‘CAF’, ‘Marrocos’: ‘CAF’, ‘Senegal’: ‘CAF’, ‘Tunísia’: ‘CAF’, ‘RD Congo’: ‘CAF’, ‘Nova Zelândia’: ‘OFC’ }; // Potes base (sem os vencedores das repescagens) const BASE_POTS = { 1: [‘Estados Unidos’, ‘México’, ‘Canadá’, ‘Espanha’, ‘Argentina’, ‘França’, ‘Inglaterra’, ‘Brasil’, ‘Portugal’, ‘Países Baixos’, ‘Bélgica’, ‘Alemanha’], 2: [‘Croácia’, ‘Marrocos’, ‘Colômbia’, ‘Uruguai’, ‘Suíça’, ‘Japão’, ‘Senegal’, ‘Irã’, ‘Coreia do Sul’, ‘Equador’, ‘Áustria’, ‘Austrália’], 3: [‘Noruega’, ‘Panamá’, ‘Egito’, ‘Argélia’, ‘Escócia’, ‘Paraguai’, ‘Tunísia’, ‘Costa do Marfim’, ‘Uzbequistão’, ‘Catar’, ‘Arábia Saudita’, ‘África do Sul’], 4: [‘Jordânia’, ‘Cabo Verde’, ‘Gana’, ‘Curaçao’, ‘Haiti’, ‘Nova Zelândia’] }; // Grupos const GROUPS = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’, ‘J’, ‘K’, ‘L’]; // Cabeças de chave fixas const SEEDED_TEAMS = { ‘México’: ‘A’, ‘Canadá’: ‘B’, ‘Estados Unidos’: ‘D’ }; // ============================================ // ESTADO GLOBAL // ============================================ let state = { playoffWinners: {}, finalPots: null, currentDraw: null }; // ============================================ // INICIALIZAÇÃO // ============================================ function initWorldCupDrawSimulator(rootElement) { if (!rootElement) { console.error(‘Elemento raiz não encontrado’); return; } initEventListeners(); renderPlayoffs(); } function initEventListeners() { // Toggle das regras document.getElementById(‘toggleRules’).addEventListener(‘click’, toggleRules); // Repescagens document.getElementById(‘randomPlayoffsBtn’).addEventListener(‘click’, randomizePlayoffs); document.getElementById(‘validatePlayoffsBtn’).addEventListener(‘click’, validatePlayoffs); // Potes document.getElementById(‘backToPlayoffsBtn’).addEventListener(‘click’, backToPlayoffs); document.getElementById(‘startDrawBtn’).addEventListener(‘click’, startDraw); // Sorteio document.getElementById(‘restartDrawBtn’).addEventListener(‘click’, restartDraw); document.getElementById(‘backToPotsBtn’).addEventListener(‘click’, backToPlayoffs); // Compartilhar document.getElementById(‘downloadImage’).addEventListener(‘click’, downloadDrawImage); document.getElementById(‘shareX’).addEventListener(‘click’, shareOnX); document.getElementById(‘shareFacebook’).addEventListener(‘click’, shareOnFacebook); document.getElementById(‘shareInstagram’).addEventListener(‘click’, shareOnInstagram); } // ============================================ // INTERFACE – REGRAS // ============================================ function toggleRules() { const content = document.getElementById(‘rulesContent’); const btn = document.getElementById(‘toggleRules’); if (content.classList.contains(‘active’)) { content.classList.remove(‘active’); btn.textContent = ‘Saiba mais ▼’; } else { content.classList.add(‘active’); btn.textContent = ‘Menos detalhes ▲’; } } // ============================================ // INTERFACE – REPESCAGENS // ============================================ function renderPlayoffs() { const grid = document.getElementById(‘playoffsGrid’); grid.innerHTML = ”; PLAYOFFS.forEach(playoff => { const card = document.createElement(‘div’); card.className = ‘wc-draw-playoff-card’; card.id = `playoff-${playoff.id}`; const title = document.createElement(‘div’); title.className = ‘wc-draw-playoff-title’; title.textContent = playoff.name; const subtitle = document.createElement(‘div’); subtitle.className = ‘wc-draw-playoff-subtitle’; subtitle.textContent = playoff.subtitle; const teamsContainer = document.createElement(‘div’); teamsContainer.className = ‘wc-draw-playoff-teams’; playoff.teams.forEach(team => { const teamBtn = document.createElement(‘div’); teamBtn.className = ‘wc-draw-team-option’; teamBtn.textContent = team; teamBtn.addEventListener(‘click’, () => selectPlayoffWinner(playoff.id, team)); teamsContainer.appendChild(teamBtn); }); card.appendChild(title); card.appendChild(subtitle); card.appendChild(teamsContainer); grid.appendChild(card); }); } function selectPlayoffWinner(playoffId, team) { state.playoffWinners[playoffId] = team; // Atualizar a UI const card = document.getElementById(`playoff-${playoffId}`); const options = card.querySelectorAll(‘.wc-draw-team-option’); options.forEach(option => { if (option.textContent === team) { option.classList.add(‘selected’); } else { option.classList.remove(‘selected’); } }); // Verificar se o badge já existe let badge = card.querySelector(‘.wc-draw-winner-badge’); if (!badge) { badge = document.createElement(‘div’); badge.className = ‘wc-draw-winner-badge’; card.appendChild(badge); } badge.textContent = ‘Vencedor selecionado’; card.classList.add(‘selected’); // Verificar se todas as repescagens foram selecionadas checkPlayoffsComplete(); } function checkPlayoffsComplete() { const allSelected = PLAYOFFS.every(playoff => state.playoffWinners[playoff.id]); document.getElementById(‘validatePlayoffsBtn’).disabled = !allSelected; } function randomizePlayoffs() { PLAYOFFS.forEach(playoff => { const randomTeam = playoff.teams[Math.floor(Math.random() * playoff.teams.length)]; selectPlayoffWinner(playoff.id, randomTeam); }); } function validatePlayoffs() { generateFinalPots(); showSection(‘potsSection’); hideSection(‘playoffsSection’); } function backToPlayoffs() { showSection(‘playoffsSection’); hideSection(‘potsSection’); hideSection(‘drawSection’); state.currentDraw = null; } // ============================================ // GERAÇÃO DOS POTES // ============================================ function generateFinalPots() { state.finalPots = { 1: […BASE_POTS[1]], 2: […BASE_POTS[2]], 3: […BASE_POTS[3]], 4: […BASE_POTS[4]] }; // Adicionar os vencedores das repescagens ao pote 4 PLAYOFFS.forEach(playoff => { const winner = state.playoffWinners[playoff.id]; state.finalPots[4].push(winner); }); renderPots(); } function renderPots() { const grid = document.getElementById(‘potsGrid’); grid.innerHTML = ”; for (let pot = 1; pot { const teamDiv = document.createElement(‘div’); teamDiv.className = ‘wc-draw-pot-team’; const nameSpan = document.createElement(‘span’); nameSpan.className = ‘wc-draw-pot-team-name’; // Verificar se é um vencedor de repescagem const playoff = PLAYOFFS.find(p => state.playoffWinners[p.id] === team); if (playoff) { nameSpan.textContent = `${team} (${playoff.name})`; } else { nameSpan.textContent = team; } const confed = getTeamConfederation(team); const badge = document.createElement(‘span’); badge.className = `wc-draw-confed-badge ${confed}`; badge.textContent = confed; teamDiv.appendChild(nameSpan); teamDiv.appendChild(badge); teamsContainer.appendChild(teamDiv); }); card.appendChild(header); card.appendChild(teamsContainer); grid.appendChild(card); } } function getTeamConfederation(team) { // Verificar primeiro se é um vencedor de repescagem UEFA const playoff = PLAYOFFS.find(p => state.playoffWinners[p.id] === team); if (playoff && playoff.confed) { // Para repescagens UEFA, usar a confederação fixa return playoff.confed; } // Para todos os outros países (incluindo repescagens inter), usar a confederação real return CONFEDERATIONS[team] || ‘UEFA’; } // ============================================ // ALGORITMO DE SORTEIO // ============================================ function generateCompleteDraw() { const MAX_ATTEMPTS = 10000; let attempt = 0; while (attempt { groups[group] = { teams: [], confederations: {} }; }); // Criar a lista de seleções com suas propriedades const allTeams = []; for (let pot = 1; pot { const confed = getTeamConfederation(team); const seedGroup = SEEDED_TEAMS[team]; allTeams.push({ name: team, pot: pot, confed: confed, seedGroup: seedGroup }); }); } // Colocar primeiro os cabeças de chave const seededTeams = allTeams.filter(t => t.seedGroup); const unseededTeams = allTeams.filter(t => !t.seedGroup); seededTeams.forEach(team => { placeTeamInGroup(groups[team.seedGroup], team); }); // Ordenar as seleções não fixas por pote unseededTeams.sort((a, b) => a.pot – b.pot); // Embaralhar aleatoriamente em cada pote const teamsByPot = [[], [], [], []]; unseededTeams.forEach(team => { teamsByPot[team.pot – 1].push(team); }); teamsByPot.forEach(potTeams => { shuffleArray(potTeams); }); // Achatar a lista const shuffledTeams = teamsByPot.flat(); // Tentar colocar cada seleção for (let team of shuffledTeams) { const availableGroups = findAvailableGroups(groups, team); if (availableGroups.length === 0) { return null; // Falha, recomeçar } // Escolher um grupo aleatoriamente entre os disponíveis const targetGroup = availableGroups[Math.floor(Math.random() * availableGroups.length)]; placeTeamInGroup(groups[targetGroup], team); } return groups; } function findAvailableGroups(groups, team) { const available = []; for (let groupName of GROUPS) { const group = groups[groupName]; // Verificar se o grupo já tem uma seleção deste pote const hasPot = group.teams.some(t => t.pot === team.pot); if (hasPot) continue; // Verificar se o grupo está cheio if (group.teams.length >= 4) continue; // Verificar as restrições de confederação if (!canAddTeamToGroup(group, team)) continue; available.push(groupName); } return available; } function canAddTeamToGroup(group, team) { const confedCount = group.confederations[team.confed] || 0; if (team.confed === ‘UEFA’) { // UEFA: máx 2 return confedCount < 2; } else { // Outras confederações: máx 1 return confedCount 0; i–) { const j = Math.floor(Math.random() * (i + 1)); [array[i], array[j]] = [array[j], array[i]]; } } // ============================================ // INTERFACE – SORTEIO // ============================================ function startDraw() { // Gerar o sorteio completo state.currentDraw = generateCompleteDraw(); if (!state.currentDraw) { alert(‘Erro ao gerar o sorteio. Por favor, tente novamente.’); return; } // Exibir a seção de sorteio showSection(‘drawSection’); hideSection(‘potsSection’); // Exibir o grupo do Brasil displayBrazilGroup(); // Exibir os grupos com o sorteio completo renderCompleteGroups(); } function displayBrazilGroup() { // Encontrar em qual grupo está o Brasil let brazilGroup = null; for (let groupName of GROUPS) { const group = state.currentDraw[groupName]; const hasBrazil = group.teams.some(team => team.name === ‘Brasil’); if (hasBrazil) { brazilGroup = groupName; break; } } // Exibir a informação const brazilGroupElement = document.getElementById(‘brazilGroup’); if (brazilGroup) { brazilGroupElement.textContent = `Com base no seu sorteio aleatório, o Brasil está no Grupo ${brazilGroup}`; } } function renderCompleteGroups() { const container = document.getElementById(‘groupsContainer’); container.innerHTML = ”; GROUPS.forEach(groupName => { const card = document.createElement(‘div’); card.className = ‘wc-draw-group-card’; const header = document.createElement(‘div’); header.className = ‘wc-draw-group-header’; header.textContent = `Grupo ${groupName}`; const teamsContainer = document.createElement(‘div’); teamsContainer.className = ‘wc-draw-group-teams’; // Recuperar as seleções deste grupo const group = state.currentDraw[groupName]; // Ordenar as seleções por pote const sortedTeams = […group.teams].sort((a, b) => a.pot – b.pot); sortedTeams.forEach(team => { const slot = document.createElement(‘div’); slot.className = ‘wc-draw-group-slot filled’ + (team.name === ‘Brasil’ ? ‘ brazil’ : ”); const label = document.createElement(‘span’); label.className = ‘wc-draw-group-slot-label’; label.textContent = `Pote ${team.pot}:`; const teamNameSpan = document.createElement(‘span’); teamNameSpan.className = ‘wc-draw-team-name’; teamNameSpan.textContent = team.name; // Adicionar badge da confederação (como elemento separado) const badge = document.createElement(‘span’); badge.className = `wc-draw-confed-badge ${team.confed}`; badge.textContent = team.confed; slot.appendChild(label); slot.appendChild(teamNameSpan); slot.appendChild(badge); teamsContainer.appendChild(slot); }); card.appendChild(header); card.appendChild(teamsContainer); container.appendChild(card); }); } function restartDraw() { startDraw(); } // ============================================ // COMPARTILHAMENTO NAS REDES SOCIAIS // ============================================ function generateShareText() { // Encontrar o grupo do Brasil let brazilGroup = null; let brazilTeams = []; for (let groupName of GROUPS) { const group = state.currentDraw[groupName]; const hasBrazil = group.teams.some(team => team.name === ‘Brasil’); if (hasBrazil) { brazilGroup = groupName; brazilTeams = group.teams.map(t => t.name); break; } } let text = `Meu sorteio para a Copa do Mundo 2026!nn`; text += `O Brasil está no Grupo ${brazilGroup} com: ${brazilTeams.filter(t => t !== ‘Brasil’).join(‘, ‘)}nn`; text += `Faça o seu próprio sorteio:`; return text; } function getShareUrl() { return window.location.href; } async function generateDrawImage() { const container = document.getElementById(‘groupsContainer’); const brazilGroupElement = document.getElementById(‘brazilGroup’); // Criar um container temporário para a captura const captureContainer = document.createElement(‘div’); captureContainer.style.cssText = ‘position: absolute; left: -9999px; top: 0; background: white; padding: 30px; width: 950px;’; document.body.appendChild(captureContainer); // Adicionar o logo no topo const logoContainer = document.createElement(‘div’); logoContainer.style.cssText = ‘text-align: center; margin-bottom: 20px;’; const logo = document.createElement(‘img’); logo.src = ‘https://pbs.twimg.com/profile_banners/67141807/1729195299/1500×500’; logo.style.cssText = ‘max-width: 100%; height: auto; border-radius: 8px;’; logo.crossOrigin = ‘anonymous’; logoContainer.appendChild(logo); captureContainer.appendChild(logoContainer); // Attendre que l’image soit chargée await new Promise((resolve) => { if (logo.complete) { resolve(); } else { logo.onload = resolve; logo.onerror = resolve; // Continuer même si l’image échoue } }); // Adicionar um título const title = document.createElement(‘h2’); title.textContent = ‘Meu sorteio – Copa do Mundo 2026’; title.style.cssText = ‘font-family: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, sans-serif; font-size: 24px; color: #333; text-align: center; margin-bottom: 20px;’; captureContainer.appendChild(title); // Adicionar o grupo do Brasil const brazilInfo = document.createElement(‘p’); brazilInfo.textContent = brazilGroupElement.textContent; brazilInfo.style.cssText = ‘font-family: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, sans-serif; font-size: 16px; color: #996515; font-weight: 700; background: #fff8dc; padding: 12px 20px; border-radius: 6px; border-left: 4px solid #FFDF00; margin-bottom: 25px;’; captureContainer.appendChild(brazilInfo); // Clonar o container dos grupos const groupsClone = container.cloneNode(true); groupsClone.style.cssText = ‘display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px;’; captureContainer.appendChild(groupsClone); // Adicionar um rodapé const footer = document.createElement(‘p’); footer.textContent = ‘topmercato.com – Simulador de sorteio FIFA 2026’; footer.style.cssText = ‘font-family: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, sans-serif; font-size: 12px; color: #999; text-align: center; margin-top: 20px;’; captureContainer.appendChild(footer); try { const canvas = await html2canvas(captureContainer, { backgroundColor: ‘#ffffff’, scale: 2, useCORS: true }); document.body.removeChild(captureContainer); return canvas; } catch (error) { if (document.body.contains(captureContainer)) { document.body.removeChild(captureContainer); } console.error(‘Erro ao gerar a imagem:’, error); return null; } } async function downloadDrawImage() { const btn = document.getElementById(‘downloadImage’); const originalText = btn.innerHTML; btn.innerHTML = ‘Gerando…‘; btn.disabled = true; try { const canvas = await generateDrawImage(); if (canvas) { const link = document.createElement(‘a’); link.download = ‘sorteio-copa-do-mundo-2026.png’; link.href = canvas.toDataURL(‘image/png’); link.click(); } else { alert(‘Erro ao gerar a imagem. Por favor, tente novamente.’); } } catch (error) { console.error(‘Erro no download:’, error); alert(‘Erro ao gerar a imagem. Por favor, tente novamente.’); } btn.innerHTML = originalText; btn.disabled = false; } function shareOnX() { const text = generateShareText(); const url = getShareUrl(); alert(‘A imagem foi baixada!nnClique em “Baixar imagem” primeiro, depois anexe-a ao seu tweet.’); const twitterUrl = `https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(url)}`; window.open(twitterUrl, ‘_blank’, ‘width=550,height=420’); } function shareOnFacebook() { const url = getShareUrl(); alert(‘Baixe primeiro a imagem com o botão “Baixar imagem”, depois adicione-a à sua publicação no Facebook.’); const facebookUrl = `https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(url)}`; window.open(facebookUrl, ‘_blank’, ‘width=550,height=420’); } function shareOnInstagram() { const text = generateShareText() + ‘ ‘ + getShareUrl(); navigator.clipboard.writeText(text).then(() => { alert(‘Texto copiado para a área de transferência!nn1. Baixe a imagem com o botão “Baixar imagem”n2. Abra o Instagram e crie uma publicaçãon3. Selecione a imagem baixadan4. Cole o texto na legenda’); }).catch(() => { const textarea = document.createElement(‘textarea’); textarea.value = text; document.body.appendChild(textarea); textarea.select(); document.execCommand(‘copy’); document.body.removeChild(textarea); alert(‘Texto copiado para a área de transferência!nn1. Baixe a imagem com o botão “Baixar imagem”n2. Abra o Instagram e crie uma publicaçãon3. Selecione a imagem baixadan4. Cole o texto na legenda’); }); } // ============================================ // UTILITÁRIOS // ============================================ function showSection(sectionId) { document.getElementById(sectionId).classList.remove(‘wc-draw-hidden’); } function hideSection(sectionId) { document.getElementById(sectionId).classList.add(‘wc-draw-hidden’); } // ============================================ // INICIALIZAÇÃO // ============================================ // Inicialização automática if (document.readyState === ‘loading’) { document.addEventListener(‘DOMContentLoaded’, function() { initWorldCupDrawSimulator(document.getElementById(‘worldcup-draw-simulator’)); }); } else { initWorldCupDrawSimulator(document.getElementById(‘worldcup-draw-simulator’)); } })();

Siga o UmDois Esportes

  • Instagram
  • X
  • YouTube
  • Facebook
  • WhatsApp
Anterior Post

Lula conversa com Trump sobre retirada de sobretaxa

Proximo Post

Mulher condenada por matar seu companheiro é presa em Campos

Germando Santos

Germando Santos

Jornalista e Apresentador

RelacionadaPostagens

E69a3e74 56db 49be Aae2 C9b9fc7059ac
Destaques

Nadadora de Campos conquista medalha de ouro no Campeonato Brasileiro Interclubes Juvenil de Natação

18 de Junho, 2026
Imagem 2
Destaques

Serra Noroeste Run abre inscrições para segunda etapa após sucesso de estreia

14 de Junho, 2026
IMG 4247
Destaques

Homem é preso em flagrante por agredir companheira grávida em Campos

11 de Junho, 2026
224fd174 4121 4e65 A612 3c1666c6c832
Destaques

Equipe de futebol do Paraesporte irá representar à seleção brasileira nas Olimpíadas Especiais Brasil, em Paris

11 de Junho, 2026
IMG 3718
Destaques

Artilheiro Lucas Duarte vive mais uma grande temporada em Portugal

19 de Maio, 2026
5962d97e 7e31 4793 B392 B238a12afa77
Campos

Paraesporte intensifica preparação para Mundial

27 de Abril, 2026
Proximo Post
Captura De Tela 2025 12 02 172322

Mulher condenada por matar seu companheiro é presa em Campos

Deixe um comentário Cancelar resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Jornal Aurora

  • Sobre
  • Privacy Policy
  • Código de Ética
  • Contato

Copyright © Jornal Aurora by Rede Aurora de Comunicação.

Dashboard
  • Home
  • Editorias
    • Economia
    • Educação
    • Esportes
    • Mundo
    • Polícia
    • Política
    • Saúde
  • Entretenimento
  • Tecnologia
  • Cidades
    • Cambuci
    • Campos
    • Cardoso Moreira
    • Itaperuna
    • Quissamã
    • Rio de Janeiro
    • São Fidélis
    • São Francisco
    • São João da Barra
  • Usuários
    • Colaboradores
    • Colunistas
    • Colunas
  • Links
    • Sobre
    • Privacy Policy
    • Código de Ética Jornalística
    • Política de Correções
    • Política de diversidade
    • Contato

📰Colaboradores

Germando Santos
3224 posts
|Ver mais...
Pyettro Souza
32 posts
|Ver mais...

Copyright © Jornal Aurora by Rede Aurora de Comunicação.

imunify-bot-check