import React from 'react'; import { Bar, Doughnut, Line } from 'react-chartjs-2'; import { TrendingUp, Target, Calculator, Zap } from 'lucide-react'; import '../utils/chartSetup'; // Importar configuração do Chart.js interface StatisticsProps { totalGames: number; currentGame: number; phases: number; gamesPerPhase: Record; } const Statistics: React.FC = ({ totalGames, currentGame, phases, gamesPerPhase }) => { // Dados para gráfico de barras - jogos por fase const barChartData = { labels: Object.keys(gamesPerPhase).map(phase => `Fase ${phase}`), datasets: [ { label: 'Jogos por Fase', data: Object.values(gamesPerPhase), backgroundColor: [ 'rgba(59, 130, 246, 0.8)', 'rgba(16, 185, 129, 0.8)', 'rgba(245, 158, 11, 0.8)', 'rgba(239, 68, 68, 0.8)', ], borderColor: [ 'rgb(59, 130, 246)', 'rgb(16, 185, 129)', 'rgb(245, 158, 11)', 'rgb(239, 68, 68)', ], borderWidth: 2, borderRadius: 4, }, ], }; // Dados para gráfico de rosca - progresso const doughnutData = { labels: ['Jogos Concluídos', 'Jogos Restantes'], datasets: [ { data: [currentGame, totalGames - currentGame], backgroundColor: [ 'rgba(34, 197, 94, 0.8)', 'rgba(156, 163, 175, 0.3)', ], borderColor: [ 'rgb(34, 197, 94)', 'rgb(156, 163, 175)', ], borderWidth: 2, }, ], }; // Simulação de probabilidades (dados reais viriam de análise histórica) const probabilityData = { 17: 15.2, 18: 8.7, 19: 3.1, 20: 0.8, }; const probabilityChartData = { labels: ['17 pontos', '18 pontos', '19 pontos', '20 pontos'], datasets: [ { label: 'Probabilidade (%)', data: Object.values(probabilityData), borderColor: 'rgb(59, 130, 246)', backgroundColor: 'rgba(59, 130, 246, 0.1)', tension: 0.4, fill: true, }, ], }; const chartOptions = { responsive: true, plugins: { legend: { position: 'top' as const, }, title: { display: false, }, }, scales: { y: { beginAtZero: true, }, }, }; const StatCard: React.FC<{ title: string; value: string | number; icon: React.ReactNode; color: string; description?: string; }> = ({ title, value, icon, color, description }) => (

{title}

{value}

{description && (

{description}

)}
{icon}
); return (
{/* Header */}

Estatísticas da Estratégia

Análise completa do desempenho e padrões da sua estratégia

{/* Cards de Estatísticas Principais */}
} color="text-blue-600" description="Jogos na estratégia completa" /> } color="text-green-600" description={`${Math.round((currentGame / totalGames) * 100)}% concluído`} /> } color="text-orange-600" description="Fases da estratégia" /> } color="text-purple-600" description="Para completar a estratégia" />
{/* Gráficos */}
{/* Jogos por Fase */}

Distribuição de Jogos por Fase

{/* Progresso Geral */}

Progresso da Estratégia

{/* Probabilidades */}

Probabilidades de Acerto (Estimativas)

{Object.entries(probabilityData).map(([points, probability]) => (
{points} pontos
{probability}%
))}
{/* Análise Detalhada */}

Análise Detalhada da Estratégia

{Math.round(totalGames / phases)}
Jogos por Fase (Média)
50
Números por Jogo
5
Colunas Marcadas
); }; export default Statistics;