<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Spor Toto Tahmin Oluşturucu</title>
    
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap');

        :root {
            --primary-color: #0d6efd;
            --secondary-color: #6c757d;
            --success-color: #198754;
            --danger-color: #dc3545;
            --light-color: #f8f9fa;
            --dark-color: #212529;
            --border-color: #dee2e6;
        }

        body {
            font-family: 'Inter', sans-serif;
            background-color: var(--light-color);
            color: var(--dark-color);
            margin: 0;
            padding: 20px;
            display: flex;
            justify-content: center;
        }

        .container {
            max-width: 900px;
            width: 100%;
            background-color: #ffffff;
            padding: 25px;
            border-radius: 12px;
            box-shadow: 0 4px 12px rgba(0,0,0,0.08);
        }

        header {
            text-align: center;
            border-bottom: 1px solid var(--border-color);
            padding-bottom: 20px;
            margin-bottom: 25px;
        }

        header h1 {
            color: var(--dark-color);
            margin: 0;
        }

        header p {
            color: var(--secondary-color);
            margin-top: 8px;
        }

        .section-title {
            font-size: 1.5em;
            font-weight: 700;
            margin-bottom: 15px;
            color: var(--primary-color);
        }

        .controls {
            display: flex;
            flex-wrap: wrap;
            gap: 20px;
            align-items: center;
            padding: 20px;
            background-color: var(--light-color);
            border-radius: 8px;
            margin-bottom: 25px;
        }

        .control-group {
            display: flex;
            flex-direction: column;
        }

        .control-group label {
            font-weight: 600;
            margin-bottom: 8px;
            font-size: 0.9em;
        }
        
        .control-group input[type="number"],
        .control-group select {
            padding: 10px;
            border-radius: 6px;
            border: 1px solid var(--border-color);
            font-size: 1em;
            width: 150px;
        }

        .buttons {
            display: flex;
            gap: 10px;
            margin-left: auto;
        }

        button {
            padding: 10px 20px;
            font-size: 1em;
            font-weight: 600;
            border-radius: 6px;
            border: none;
            cursor: pointer;
            color: #fff;
            transition: opacity 0.2s;
        }
        
        button:hover {
            opacity: 0.85;
        }

        #generate-btn { background-color: var(--success-color); }
        #clear-btn { background-color: var(--danger-color); }

        table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 15px;
        }

        th, td {
            padding: 12px 15px;
            text-align: center;
            border: 1px solid var(--border-color);
        }

        th {
            background-color: var(--dark-color);
            color: #fff;
            font-weight: 600;
        }

        tr:nth-child(even) {
            background-color: #f2f2f2;
        }
        
        .team-name {
            text-align: left;
            font-weight: 600;
        }
        
        .result-cell {
            font-weight: 700;
            font-size: 1.1em;
        }

        .update-info {
            background-color: #fff3cd;
            color: #664d03;
            border: 1px solid #ffecb5;
            padding: 15px;
            border-radius: 8px;
            margin-bottom: 25px;
            text-align: center;
        }

        footer {
            text-align: center;
            margin-top: 30px;
            padding-top: 20px;
            border-top: 1px solid var(--border-color);
            font-size: 0.9em;
            color: var(--secondary-color);
        }
        
        @media (max-width: 768px) {
            .controls {
                flex-direction: column;
                align-items: stretch;
            }
            .buttons {
                width: 100%;
                margin-left: 0;
                justify-content: stretch;
            }
            button {
                flex-grow: 1;
            }
            .control-group input[type="number"],
            .control-group select {
                width: auto;
            }
        }

    </style>
    </head>
<body>

    <div class="container">
        <header>
            <h1>Spor Toto Tahmin Oluşturucu</h1>
            <p>Haftalık bülten için akıllı tahmin kolonları oluşturun.</p>
        </header>
        
        <main>
            <h2 class="section-title">Haftanın Maçları</h2>
            <div class="update-info">
                <strong>Önemli:</strong> Haftalık bülteni güncellemek için bu HTML dosyasını açın ve aşağıdaki JavaScript bölümündeki <code>haftalikBulten</code> listesini düzenleyin.
            </div>
            <div id="bulletin-container">
                </div>

            <h2 class="section-title" style="margin-top: 30px;">Tahmin Oluşturucu</h2>
            <div class="controls">
                <div class="control-group">
                    <label for="kolon-sayisi">Kolon Sayısı</label>
                    <input type="number" id="kolon-sayisi" value="3" min="1" max="50">
                </div>
                <div class="control-group">
                    <label for="tahmin-stratejisi">Tahmin Stratejisi</label>
                    <select id="tahmin-stratejisi">
                        <option value="random">Rastgele</option>
                        <option value="favorite" selected>Favori Ağırlıklı</option>
                        <option value="surprise">Sürpriz Ağırlıklı</option>
                    </select>
                </div>
                <div class="buttons">
                    <button id="generate-btn">Tahmin Oluştur</button>
                    <button id="clear-btn">Temizle</button>
                </div>
            </div>

            <div id="results-container">
                </div>
        </main>
        
        <footer>
            Bu araç sadece eğlence amaçlıdır ve tahminlerin doğruluğu garanti edilmez.
        </footer>
    </div>

    <script>
        document.addEventListener('DOMContentLoaded', function() {
            
            // =================================================================================
            // === DÜZENLENECEK ALAN: Haftalık Bülteni Buradan Güncelleyin ===
            // =================================================================================
            // Her hafta bu listeyi güncelleyin. 15 maç olmalıdır.
            const haftalikBulten = [
                { evSahibi: 'Galatasaray', deplasman: 'Fenerbahçe' },
                { evSahibi: 'Beşiktaş', deplasman: 'Trabzonspor' },
                { evSahibi: 'Başakşehir', deplasman: 'Kasımpaşa' },
                { evSahibi: 'Sivasspor', deplasman: 'Kayserispor' },
                { evSahibi: 'Adana Demirspor', deplasman: 'Antalyaspor' },
                { evSahibi: 'Konyaspor', deplasman: 'Samsunspor' },
                { evSahibi: 'Gaziantep FK', deplasman: 'Pendikspor' },
                { evSahibi: 'Alanyaspor', deplasman: 'Ankaragücü' },
                { evSahibi: 'Karagümrük', deplasman: 'Çaykur Rizespor' },
                { evSahibi: 'Hatayspor', deplasman: 'İstanbulspor' },
                { evSahibi: 'Man City', deplasman: 'Liverpool' },
                { evSahibi: 'Real Madrid', deplasman: 'Barcelona' },
                { evSahibi: 'Bayern Münih', deplasman: 'Dortmund' },
                { evSahibi: 'Inter', deplasman: 'AC Milan' },
                { evSahibi: 'PSG', deplasman: 'Monaco' }
            ];
            // =================================================================================
            // === GÜNCELLEME ALANI BİTİŞ ===
            // =================================================================================


            const bulletinContainer = document.getElementById('bulletin-container');
            const resultsContainer = document.getElementById('results-container');
            const generateBtn = document.getElementById('generate-btn');
            const clearBtn = document.getElementById('clear-btn');
            const kolonSayisiInput = document.getElementById('kolon-sayisi');
            const stratejiSelect = document.getElementById('tahmin-stratejisi');

            // Maç listesini ekrana çizen fonksiyon
            function renderBulletin() {
                if (haftalikBulten.length !== 15) {
                    bulletinContainer.innerHTML = `<p style="color:red; text-align:center;">Hata: Maç listesi 15 maç içermelidir. Lütfen kodu kontrol edin.</p>`;
                    return;
                }

                let tableHTML = '<table><thead><tr><th>#</th><th>Ev Sahibi</th><th>Deplasman</th></tr></thead><tbody>';
                haftalikBulten.forEach((mac, index) => {
                    tableHTML += `
                        <tr>
                            <td>${index + 1}</td>
                            <td class="team-name">${mac.evSahibi}</td>
                            <td class="team-name">${mac.deplasman}</td>
                        </tr>
                    `;
                });
                tableHTML += '</tbody></table>';
                bulletinContainer.innerHTML = tableHTML;
            }

            // Tek bir maç için tahmin üreten fonksiyon
            function getSinglePrediction(strategy) {
                const rand = Math.random();
                if (strategy === 'favorite') {
                    if (rand < 0.60) return '1'; // %60 şansla Ev Sahibi
                    if (rand < 0.85) return 'X'; // %25 şansla Beraberlik
                    return '2'; // %15 şansla Deplasman
                } else if (strategy === 'surprise') {
                    if (rand < 0.30) return '1'; // %30 şansla Ev Sahibi
                    if (rand < 0.65) return 'X'; // %35 şansla Beraberlik
                    return '2'; // %35 şansla Deplasman
                } else { // random
                    if (rand < 0.333) return '1';
                    if (rand < 0.666) return 'X';
                    return '2';
                }
            }

            // Belirtilen sayıda kolonu oluşturan ana fonksiyon
            function generateColumns() {
                const kolonSayisi = parseInt(kolonSayisiInput.value, 10);
                const strateji = stratejiSelect.value;
                
                if (isNaN(kolonSayisi) || kolonSayisi < 1) {
                    alert("Lütfen geçerli bir kolon sayısı girin.");
                    return;
                }

                let columns = [];
                for (let i = 0; i < kolonSayisi; i++) {
                    const yeniKolon = haftalikBulten.map(() => getSinglePrediction(strateji));
                    columns.push(yeniKolon);
                }
                
                renderResults(columns);
            }

            // Oluşturulan kolonları ekranda gösteren fonksiyon
            function renderResults(columns) {
                resultsContainer.innerHTML = '';
                if (columns.length === 0) return;
                
                let tableHTML = '<h2 class="section-title" style="margin-top: 30px;">Tahmin Sonuçları</h2>';
                tableHTML += '<table><thead><tr><th>#</th>';
                for (let i = 0; i < columns.length; i++) {
                    tableHTML += `<th>Kolon ${i + 1}</th>`;
                }
                tableHTML += '</tr></thead><tbody>';

                for (let i = 0; i < 15; i++) {
                    tableHTML += `<tr><td>${i + 1}</td>`;
                    for (let j = 0; j < columns.length; j++) {
                        tableHTML += `<td class="result-cell">${columns[j][i]}</td>`;
                    }
                    tableHTML += `</tr>`;
                }

                tableHTML += '</tbody></table>';
                resultsContainer.innerHTML = tableHTML;
            }
            
            // Sonuçları temizleyen fonksiyon
            function clearResults() {
                resultsContainer.innerHTML = '';
                kolonSayisiInput.value = 3;
                stratejiSelect.value = 'favorite';
            }

            // Olay dinleyicileri
            generateBtn.addEventListener('click', generateColumns);
            clearBtn.addEventListener('click', clearResults);

            // Sayfa yüklendiğinde maç listesini oluştur
            renderBulletin();
        });
    </script>
    </body>
</html>








Selamlar gemini ile basit bir spor toto tahmin yazdık kodlar görseller yukarıda haftalık bülteni manuel kodun içinden değiştirip yapmanız gerekiyor iyi forumlar