Simulador Premier: Quem será o campeão, Arsenal ou City?

A disputa está pegando fogo na reta final do Campeonato Inglês! A cada rodada, Arsenal e Manchester City provam por que protagonizam uma das rivalidades mais intensas do futebol mundial atualmente. Qualquer tropeço pode custar a taça mais cobiçada da Inglaterra.

Para você não ficar apenas na ansiedade ou fazendo contas no papel, o 365Scores preparou um Simulador da Reta Final da Premier League, focado 100% no duelo entre os Gunners de Mikel Arteta e os Citizens de Pep Guardiola.

Como funciona? É muito simples: você preenche os placares de todos os jogos restantes das duas equipes. A nossa tabela inteligente é atualizada em tempo real a cada gol que você digita.

Se os times terminarem empatados em pontos, o nosso simulador já calcula automaticamente os critérios de desempate oficiais da Premier League:

  1. Saldo de gols;
  2. Gols marcados (Gols Pró);
  3. Confronto direto (Pontos);
  4. Confronto direto (Gols marcados fora de casa).

`;
}

const homeImgUrl = teamLogos[match.home] || ”;
const awayImgUrl = teamLogos[match.away] || ”;

const homeImg = homeImgUrl ? `${match.home}` : ”;
const awayImg = awayImgUrl ? `${match.away}` : ”;

const homeShort = match.home.substring(0, 3).toUpperCase();
const awayShort = match.away.substring(0, 3).toUpperCase();

const isFixed = plResults[match.id] !== undefined;
const homeVal = isFixed ? plResults[match.id].h : ”;
const awayVal = isFixed ? plResults[match.id].a : ”;
const disabledAttr = isFixed && match.locked ? ‘disabled’ : ”;

html += `

`;
});

container.innerHTML = html;

document.querySelectorAll(‘#pl-final-sim-wrapper .pl-input-score:not(:disabled)’).forEach(input => {
input.addEventListener(‘input’, handleScoreChange);
});
}

function handleScoreChange(e) {
const matchId = e.target.getAttribute(‘data-id’);
const row = e.target.closest(‘.pl-match-row’);
const homeInput = row.querySelector(‘.home-score’).value;
const awayInput = row.querySelector(‘.away-score’).value;

if (homeInput !== “” && awayInput !== “”) {
plResults[matchId] = { h: parseInt(homeInput, 10), a: parseInt(awayInput, 10) };
} else {
delete plResults[matchId];
}
calculatePL();
}

function calculatePL() {
let table = {
‘Arsenal’: JSON.parse(JSON.stringify(baseStats[‘Arsenal’])),
‘Manchester City’: JSON.parse(JSON.stringify(baseStats[‘Manchester City’]))
};

// Proteção estrita usando Object.keys()
Object.keys(plResults).forEach(key => {
let match = matchesSchedule.find(m => m.id === key);
if (!match) return;
let res = plResults[key];

if (table[match.home]) {
table[match.home].j++;
table[match.home].gp += res.h;
table[match.home].gc += res.a;
if (res.h > res.a) table[match.home].p += 3;
else if (res.h === res.a) table[match.home].p += 1;
}

if (table[match.away]) {
table[match.away].j++;
table[match.away].gp += res.a;
table[match.away].gc += res.h;
if (res.a > res.h) table[match.away].p += 3;
else if (res.h === res.a) table[match.away].p += 1;
}
});

let teamsArr = Object.values(table);

teamsArr.sort((a, b) => {
if (b.p !== a.p) return b.p – a.p;

let sgA = a.gp – a.gc;
let sgB = b.gp – b.gc;
if (sgB !== sgA) return sgB – sgA;

if (b.gp !== a.gp) return b.gp – a.gp;

if (b.h2hPts !== a.h2hPts) return b.h2hPts – a.h2hPts;
if (b.h2hAwayGoals !== a.h2hAwayGoals) return b.h2hAwayGoals – a.h2hAwayGoals;

return a.name.localeCompare(b.name);
});

renderTable(teamsArr);
}

function renderTable(sortedTeams) {
const tbody = document.getElementById(‘pl-table-body’);
if(!tbody) return;
let html=””;

sortedTeams.forEach((team, index) => {
const posClass = index === 0 ? ‘pl-pos-1’ : ”;
const sg = team.gp – team.gc;
const sgDisplay = sg > 0 ? `+${sg}` : sg;

html += `

${index + 1}
${team.name}
${team.name}
${team.p} ${team.j} ${team.gp}:${team.gc} ${sgDisplay}

`;
});
tbody.innerHTML = html;

// Lógica do Quadro de Campeão e Campeão Antecipado
const champBox = document.getElementById(‘pl-champion-box’);
const champLabel = document.getElementById(‘pl-champ-label’);
const champImg = document.getElementById(‘pl-champ-img’);
const champName = document.getElementById(‘pl-champ-name’);

let leader = sortedTeams[0];
champImg.src = leader.img;
champName.innerText = leader.name;

// Matemática de campeão antecipado (cada time tem exatamente 2 jogos restantes)
let arsPlayed = [‘r37_1’, ‘r38_1’].filter(id => plResults[id]).length;
let cityPlayed = [‘r37_2’, ‘r38_2’].filter(id => plResults[id]).length;

let maxArsPts = sortedTeams.find(t => t.id === ‘Arsenal’).p + ((2 – arsPlayed) * 3);
let maxCityPts = sortedTeams.find(t => t.id === ‘Manchester City’).p + ((2 – cityPlayed) * 3);

let isAllPlayed = Object.keys(plResults).length === matchesSchedule.length;
let labelText = “LÍDER ATUAL:”;
let isChamp = false;

if (isAllPlayed) {
labelText = “🏆 CAMPEÃO:”;
isChamp = true;
} else if (leader.id === ‘Arsenal’ && leader.p > maxCityPts) {
labelText = “🏆 CAMPEÃO ANTECIPADO:”;
isChamp = true;
} else if (leader.id === ‘Manchester City’ && leader.p > maxArsPts) {
labelText = “🏆 CAMPEÃO ANTECIPADO:”;
isChamp = true;
}

champLabel.innerText = labelText;

if (isChamp) {
champLabel.style.color = “var(–text-accent)”;
champBox.style.borderColor = “var(–text-accent)”;
champBox.style.boxShadow = “0 4px 15px rgba(0, 255, 135, 0.2)”;
champBox.style.transform = “scale(1.02)”;
} else {
champLabel.style.color = “var(–text-gray-desc)”;
champBox.style.borderColor = “var(–border-color)”;
champBox.style.boxShadow = “none”;
champBox.style.transform = “scale(1)”;
}

champBox.style.display = ‘flex’;
}

if (document.readyState === ‘complete’ || document.readyState === ‘interactive’) {
initPLSim();
} else {
document.addEventListener(‘DOMContentLoaded’, initPLSim);
}
})();
/* ]]> */

O futuro da Inglaterra está nas suas mãos. Quem levanta o troféu no final de maio? Faça as suas apostas no simulador, veja como fica a classificação final, tire um print e compartilhe o seu palpite com os amigos!

Últimas

Doumbia marca primeiro golo na Champions pelo Sporting

Doumbia marcou o seu primeiro golo pelo Sporting na...

Sporting na Champions: vitória e liderança provisória

Home Mais recentes Suárez faz história e...

Portugal defende vantagem de 4-0 frente à Irlanda do Norte

Portugal defronta a Irlanda do Norte em Portimão com...

Ronaldo 981 golos: Al Nassr vence na AFC

Ronaldo chega aos 981 golos profissionais após vitória do...

Atualizações

Em alta

Cristiano Ronaldo indica aposentadoria do futebol

Prestetes a completar 41 anos, Cristiano Ronaldo soltou uma...

Antevisão: Atlético Madrid vs Barcelona – 14/04/26 – Onde ver e onzes prováveis

Home Mais recentes Antevisão: Atlético Madrid vs...

Quantos brasileiros tem na Premier League? Veja a lista

A Premier League 2026/27 começa nesta sexta-feira (21), com...

Górnik Zabrze x Monaco: onde assistir ao jogo e escalações

Gornik Zabrze e Monaco entram em campo nesta quinta-feira...

Doumbia marca primeiro golo na Champions pelo Sporting

Doumbia marcou o seu primeiro golo pelo Sporting na Champions e ajudou os leões a vencer o Lens por 2-0, no segundo triunfo europeu...

Sporting na Champions: vitória e liderança provisória

Home Mais recentes Suárez faz história e Sporting lidera provisoriamente na Champions O Sporting na Champions venceu o Lens por 2-0, com recorde...

Portugal defende vantagem de 4-0 frente à Irlanda do Norte

Portugal defronta a Irlanda do Norte em Portimão com uma vantagem de 4-0 e procura confirmar a passagem ao segundo play-off do Mundial feminino. goleada-abre-caminho-portugal-segundo-play-off A...

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui