Docs News Picks Peaks
🔥 Trendler
🚀 Yeni
💎 Keşfet
🎲 Sürpriz
✨ Sana Özel
AI˙⋆✮

🎮 Popüler Oyunlar

YENİ
Mavy The Fish Mom
Mavy The Fish Mom
YENİ
Merge Combo
Merge Combo
YENİ
Farm Business Saga
Farm Business Saga
YENİ
Heart Box
Heart Box
YENİ
Woods of Nevia: Forest Survival
Woods of Nevia: F...
YENİ
Racing: Destruction and Chase
Racing: Destructi...
YENİ
Money Ping Pong
Money Ping Pong
YENİ
Dino funny digging
Dino funny digging
YENİ
Tsunami Race
Tsunami Race
YENİ
Merge Balls Shooter 2048 Connect Fruits
Merge Balls Shoot...
YENİ
TENKYU BALL
TENKYU BALL
YENİ
Mini ASMR Relaxing Game Relax
Mini ASMR Relaxin...
YENİ
Pop Tap
Pop Tap
YENİ
Ultimate Brainrot Battle
Ultimate Brainrot...
YENİ
Fishing Frenzy
Fishing Frenzy
YENİ
Circuit Master 2
Circuit Master 2
YENİ
Cryptograms: Secret Text
Cryptograms: Secr...
YENİ
Clicker Knights Vs Dragons
Clicker Knights V...
YENİ
Cargo Path Puzzle
Cargo Path Puzzle
YENİ
Jigmerge Puzzles
Jigmerge Puzzles
YENİ
Picture Jam Factory
Picture Jam Factory
YENİ
Onet Animals
Onet Animals
YENİ
TCG Shop: Maps, Toys and Comics
TCG Shop: Maps, T...
YENİ
PathFinder
PathFinder
YENİ
Liquid Sort Puzzle
Liquid Sort Puzzle
YENİ
Idle Pop Merge
Idle Pop Merge
YENİ
Real COD Strike
Real COD Strike
YENİ
Wood Hexa Factory!
Wood Hexa Factory!
YENİ
Micro GT Racing
Micro GT Racing
YENİ
Heroes of Arena
Heroes of Arena
YENİ
Car Escape Parking
Car Escape Parking
YENİ
Money Empire
Money Empire
YENİ
Lady Rescue
Lady Rescue
YENİ
Leap and Avoid 2
Leap and Avoid 2
YENİ
Slow Time Ninja
Slow Time Ninja
YENİ
Broomcraft Mystic Evasion
Broomcraft Mystic...
YENİ
Block Builder Jam
Block Builder Jam
YENİ
Heroic knight
Heroic knight
YENİ
Yatzy
Yatzy
YENİ
Draw To Smash!
Draw To Smash!
YENİ
Hexa Block Puzzle
Hexa Block Puzzle
YENİ
Coin Color Sort
Coin Color Sort
YENİ
Wednesday Addams Merge Drop Puzzle
Wednesday Addams ...
YENİ
Music Note
Music Note
YENİ
Makeup Fruits
Makeup Fruits
YENİ
Mafia GO - Dice Master
Mafia GO - Dice M...
YENİ
Shadow Stick - Lightning Ninja
Shadow Stick - Li...
YENİ
My Dogy Virtual Pet
My Dogy Virtual Pet
YENİ
Durak
Durak
YENİ
Car Parking Order
Car Parking Order
YENİ
Elements Craft Ultimate
Elements Craft Ul...
YENİ
Screw Color Puzzle
Screw Color Puzzle
YENİ
Online Car Destruction Simulator 3D
Online Car Destru...
YENİ
Space Break
Space Break
YENİ
Brain Line Connect
Brain Line Connect
YENİ
Battle Arena Race to Win
Battle Arena Race...
YENİ
Merge 2048
Merge 2048
YENİ
Jurassic Digging - Tycoon
Jurassic Digging ...
YENİ
Pow
Pow
YENİ
Constructor Bricks
Constructor Bricks
YENİ
Sorting Ball Puzzle
Sorting Ball Puzzle
YENİ
Idle Cookie Tycoon
Idle Cookie Tycoon
YENİ
Ninja: Bamboo Assassin
Ninja: Bamboo Ass...
YENİ
Stack Swipe
Stack Swipe
YENİ
Shopping Simulator
Shopping Simulator
YENİ
 Meow Captcha
Meow Captcha
YENİ
12 minutes to survive
12 minutes to sur...
YENİ
Pocket ZONE
Pocket ZONE
YENİ
Playground Ragdoll Sandbox
Playground Ragdol...
YENİ
Match Master
Match Master
YENİ
The cow of the apocalypse
The cow of the ap...
YENİ
Knock Down
Knock Down
YENİ
The Mad Cow
The Mad Cow
YENİ
Help Tricky Story A Complicated Story
Help Tricky Story...
YENİ
Bird Game Clicker
Bird Game Clicker
YENİ
Kinder Garden
Kinder Garden
YENİ
Laser Survivor
Laser Survivor
YENİ
SNAKES
SNAKES
YENİ
Dice Puzzle
Dice Puzzle
YENİ
Mirrors and Rays
Mirrors and Rays
YENİ
Cats Block Puzzle
Cats Block Puzzle
YENİ
Jewel Blocks
Jewel Blocks
YENİ
Cannon Balls
Cannon Balls
YENİ
Car Parking Simulator
Car Parking Simul...
YENİ
Dark Boy
Dark Boy
YENİ
Queens Royal: Sudoku Puzzle
Queens Royal: Sud...
YENİ
Camel Destroyer
Camel Destroyer
YENİ
Duck Hunter
Duck Hunter
YENİ
Gun and Roll
Gun and Roll
YENİ
Car Collision Master
Car Collision Master
YENİ
Word Search Adventure
Word Search Adven...
YENİ
Balls Animal
Balls Animal
YENİ
Fishtopia
Fishtopia
YENİ
Dress Up Anime Girl
Dress Up Anime Girl
YENİ
Club Guard
Club Guard
YENİ
Italian Brainrot GT Highway Racing
Italian Brainrot ...
YENİ
Merge Plane Tycoon
Merge Plane Tycoon
YENİ
Arkanoid For Painters
Arkanoid For Pain...
YENİ
Slice & Soar
Slice & Soar
YENİ
Mr. Drifter: Car Chase Simulator
Mr. Drifter: Car ...
YENİ
Shape Transform
Shape Transform
YENİ
Ball Bounce: Try It
Ball Bounce: Try It
YENİ
Madness: Ward number 6
Madness: Ward num...
YENİ
Falling Dummy
Falling Dummy
YENİ
Balls: Ricochet!
Balls: Ricochet!
YENİ
Brainrot Tower Defense
Brainrot Tower De...
YENİ
Nubik in the Monster World!
Nubik in the Mons...
YENİ
Sky Blocks Falling
Sky Blocks Falling
YENİ
Stand on the Right Color, Robby!
Stand on the Righ...
YENİ
 PopCats: Merge the cats!
PopCats: Merge t...
YENİ
Fast and Wild in Sky
Fast and Wild in Sky
YENİ
Fortress of the Sinister
Fortress of the S...
YENİ
Pool 8
Pool 8
YENİ
Finger Soccer Tournament
Finger Soccer Tou...
YENİ
Bricks Balls Breaker
Bricks Balls Breaker
YENİ
Card Quest: 10 Minute Adventure
Card Quest: 10 Mi...
YENİ
Animal Basketball
Animal Basketball
YENİ
Fruitsland: Escape from the Amusement Park
Fruitsland: Escap...
YENİ
Bucket Ball
Bucket Ball
YENİ
Noob saves a girl: A Story
Noob saves a girl...
AI Scout
Selam! Ben XIX Scout. 5.000'den fazla oyunu analiz ettim. Yeni favorini bulmaya hazır mısın? 🎮
// ⭐ FAVORİ OYUNLARI LİSTELEME MOTORU window.openFavorites = async function() { // Mobilde klavye açıksa kapat if(document.activeElement) document.activeElement.blur(); const favs = JSON.parse(localStorage.getItem('xix_favorites') || '[]'); const resBox = document.querySelector('.search-results-box'); const overlay = document.querySelector('.search-overlay'); const sWrap = document.querySelector('.search-wrap'); if (!resBox || !overlay) return; // Üstteki arama barı açıksa gizle, sadece sonuç kutusu odaklansın if(sWrap) sWrap.classList.remove('active'); overlay.style.display = 'block'; resBox.style.display = 'block'; setTimeout(() => overlay.style.opacity = '1', 10); // Eğer favori listesi boşsa şık bir uyarı çıkar if (favs.length === 0) { resBox.innerHTML = '
' + '
⭐ FAVORİLERİM
' + '' + '
' + '
' + '' + '

Henüz favori oyunun yok.

' + '

Oyunlardaki kalp ikonuna tıklayarak ekleyebilirsin!

' + '
'; return; } resBox.innerHTML = '
...
'; try { const apiUrl = '/api/suggest?favs=' + favs.join(',') + '&lang=tr'; const res = await fetch(apiUrl); const data = await res.json(); let html = '
' + '
⭐ FAVORİLERİM (' + data.length + ')
' + '' + '
'; if (data.length > 0) { html += '
'; html += data.map(g => '' + '' + g.title + '' + '

' + g.title + '

' + '
' ).join(''); html += '
'; } else { html += '
Kayıtlı oyunlar bulunamadı.
'; } resBox.innerHTML = html; } catch (e) { console.error("Favori Hatası:", e); resBox.innerHTML = '
HATA
Bir hata oluştu.
'; } }; // 🚀 SONSUZ KAYDIRMA MOTORU (INFINITE SCROLL) let currentPageXIX = 1; let isLoadingXIX = false; let hasMoreXIX = true; window.initInfiniteScroll = function() { const sensor = document.getElementById('loadMoreSensor'); if (!sensor) return; const urlParams = new URLSearchParams(window.location.search); const currentCat = urlParams.get('cat') || ''; const currentQ = urlParams.get('q') || ''; const currentSort = urlParams.get('sort') || 'best'; const currentLang = urlParams.get('lang') || 'tr'; const observer = new IntersectionObserver(async (entries) => { // Sensör ekrana 300px yaklaştığında (kullanıcı daha aşağı tam inmeden) yüklemeyi başlat if (entries[0].isIntersecting && !isLoadingXIX && hasMoreXIX) { isLoadingXIX = true; currentPageXIX++; const spinner = document.getElementById('loadingSpinnerXIX'); if(spinner) spinner.style.display = 'block'; try { const res = await fetch('/api/get-more-games?cat=' + currentCat + '&q=' + currentQ + '&sort=' + currentSort + '&page=' + currentPageXIX + '&lang=' + currentLang); const newGames = await res.json(); if (!newGames || newGames.length === 0) { hasMoreXIX = false; // Dükkanda oyun bitti, motoru durdur sensor.style.display = 'none'; return; } const grid = document.querySelector('.games-grid'); if(!grid) return; // Gelen oyunları mevcut ızgaranın altına milimi milimine aynı tasarımla ekle let html = ''; newGames.forEach(g => { const title = g.title.length > 20 ? g.title.substring(0, 17) + "..." : g.title; const gVotes = Number(g.votes || 0); const gAvg = gVotes > 0 ? (g.total_score / gVotes).toFixed(1) : null; let badge = ''; if (gAvg && gAvg > 0) badge = '
★ ' + gAvg + '
'; else badge = '
YENİ
'; const gameSlug = g.gd_id || g.slug; const thumb = g.thumbnail || g.img; html += '
'; html += badge; html += '
'; html += '' + g.title + ''; html += '
' + title + '
'; html += '
'; }); grid.insertAdjacentHTML('beforeend', html); } catch (e) { console.error("Yükleme Hatası:", e); } finally { isLoadingXIX = false; if(spinner) spinner.style.display = 'none'; } } }, { rootMargin: "300px" }); observer.observe(sensor); }; // Sayfa yüklendiğinde motoru tetikle document.addEventListener("DOMContentLoaded", () => { setTimeout(() => { if(typeof window.initInfiniteScroll === 'function') window.initInfiniteScroll(); }, 500); }); // 📰 YAZI VE HABER ARAMA MOTORU (FRONTEND - EVRENSEL) let articleSearchTimeout; async function searchArticles(query, unusedType, langCode) { clearTimeout(articleSearchTimeout); const resContainer = document.getElementById('articleSearchResults'); const mainGrid = document.getElementById('mainArticleGrid'); if (!query || query.trim().length < 2) { resContainer.innerHTML = ''; resContainer.style.display = 'none'; mainGrid.style.display = 'grid'; // Eski listeyi geri getir return; } articleSearchTimeout = setTimeout(async () => { try { // 🚀 Artık type göndermiyoruz, API hepsini getirecek const res = await fetch('/api/search-articles?q=' + encodeURIComponent(query)); const data = await res.json(); mainGrid.style.display = 'none'; // Gerçek listeyi gizle resContainer.style.display = 'grid'; // Arama sonuçlarını göster if (data.length === 0) { resContainer.innerHTML = '
No results found for "'+query+'"
'; return; } let html = ''; data.forEach(art => { // 🎯 KRİTİK NOKTA: Hangi sayfaya gideceğini API'den gelen veriye göre anlıyoruz let linkPath = '/blog/'; // Varsayılan: Belgesel if (art.source === 'picks') { linkPath = '/top-picks/'; } else if (art.category && (art.category.includes('News') || art.category.includes('Trending'))) { linkPath = '/news/'; } html += '
'; html += '
'; if(art.category) html += '' + art.category + ''; html += '

' + art.title + '

'; html += '

' + art.excerpt + '

'; html += '
'; }); resContainer.innerHTML = html; } catch (e) { console.error("Yazı arama hatası:", e); } }, 300); // Kullanıcı yazmayı bitirdikten 300ms sonra arar } // 🚀 YAZILAR (HABER, BLOG, PICKS) İÇİN SONSUZ KAYDIRMA MOTORU let currentArticlePage = 1; let isArticleLoading = false; let hasMoreArticles = true; // Gradient üreten fonksiyonun JS kopyası (Yeni gelenlere renk vermek için) function getBlogGradientJS(slug) { const colors = [ ['#ff4b2b', '#ff416c'], ['#8e2de2', '#4a00e0'], ['#00c6ff', '#0072ff'], ['#f7971e', '#ffd200'], ['#ee0979', '#ff6a00'], ['#00b09b', '#96c93d'], ['#fc466b', '#3f5efb'], ['#43e97b', '#38f9d7'], ['#fa709a', '#fee140'] ]; let hash = 0; if (!slug) return colors[0]; for (let i = 0; i < slug.length; i++) { hash = slug.charCodeAt(i) + ((hash << 5) - hash); } return colors[Math.abs(hash) % colors.length]; } window.initArticleScroll = function() { const sensor = document.getElementById('articleSensor'); if (!sensor) return; const type = sensor.getAttribute('data-type'); const lang = 'tr'; const observer = new IntersectionObserver(async (entries) => { // Sensöre 400px yaklaştığında yüklemeyi başlat if (entries[0].isIntersecting && !isArticleLoading && hasMoreArticles) { isArticleLoading = true; currentArticlePage++; try { const res = await fetch('/api/get-more-articles?type=' + type + '&page=' + currentArticlePage + '&lang=' + lang); const newArticles = await res.json(); if (!newArticles || newArticles.length === 0) { hasMoreArticles = false; sensor.style.display = 'none'; // Daha haber kalmadıysa sensörü yok et return; } const grid = document.getElementById('mainArticleGrid'); if(!grid) return; let html = ''; newArticles.forEach(art => { const colors = getBlogGradientJS(art.slug); const c1 = colors[0], c2 = colors[1]; if (type === 'picks') { html += '
'; html += '
'; html += '

' + art.title + '

' + art.excerpt + '

PLAY NOW »
'; } else if (type === 'news') { const hasImage = art.image_url && art.image_url !== 'gradient' && art.image_url.startsWith('http'); const bgStyle = hasImage ? "background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.8)), url('" + art.image_url + "'); background-size: cover; background-position: center;" : "background: linear-gradient(135deg, " + c1 + ", " + c2 + ");"; html += '
'; html += '
'; if(!hasImage) html += ''; html += '
' + art.category + '
'; html += '

' + art.title + '

' + art.excerpt + '

READ NEWS »
'; } else { html += '
'; html += '
' + art.category + '
'; html += '

' + art.title + '

' + art.excerpt + '

Read Full Article »
'; } }); // Yeni yazıları listeye dikiş izi belli etmeden ekle grid.insertAdjacentHTML('beforeend', html); } catch (e) { console.error("Yazı yükleme hatası:", e); } finally { isArticleLoading = false; } } }, { rootMargin: "400px" }); observer.observe(sensor); }; // Sayfa yüklendiğinde motoru tetikle (Oyunlarda olduğu gibi) document.addEventListener("DOMContentLoaded", () => { setTimeout(() => { if(typeof window.initArticleScroll === 'function') window.initArticleScroll(); }, 600); }); // 🚀 MOBİL DISCOVER MENÜSÜ AÇMA/KAPAMA window.toggleDiscover = function(e) { if (e) e.stopPropagation(); const popup = document.getElementById('discoverPopup'); if (popup) popup.classList.toggle('show'); }; // Ekranda boş bir yere tıklanırsa Discover menüsünü kapat document.addEventListener('click', function(e) { const popup = document.getElementById('discoverPopup'); if (popup && popup.classList.contains('show') && !e.target.closest('#discoverPopup') && !e.target.closest('.mobile-bottom-nav')) { popup.classList.remove('show'); } }); // 🚀 KAYDIRIRKEN GİZLENEN HEADER VE ALT MENÜ (AMORTİSÖRLÜ - DANS ETMEZ) const scrollArea = document.getElementById('mainScroll'); if (scrollArea) { let lastScrollY = scrollArea.scrollTop; let ticking = false; scrollArea.addEventListener('scroll', () => { if (!ticking) { window.requestAnimationFrame(() => { const currentScrollY = scrollArea.scrollTop; const delta = currentScrollY - lastScrollY; // 🚨 AMORTİSÖR FİLTRESİ: Sadece 10 pikselden büyük kaydırmalarda tepki ver. // Bu sayede sistem "margin" değiştiğinde oluşan milimetrik kaymaları yoksayar ve dans etmez. if (Math.abs(delta) > 10) { const header = document.querySelector('.header'); const bottomNav = document.getElementById('mobileBottomNav'); const popup = document.getElementById('discoverPopup'); // En tepedeyken hep görünür olsun if (currentScrollY < 60) { if (header) header.classList.remove('header-hidden'); if (bottomNav) bottomNav.classList.remove('nav-hidden'); } // Hızlıca AŞAĞI iniyorsa (Delta pozitif) else if (delta > 0) { if (header) header.classList.add('header-hidden'); if (bottomNav) bottomNav.classList.add('nav-hidden'); if (popup) popup.classList.remove('show'); // Açık menü varsa kapat } // Hızlıca YUKARI çıkıyorsa (Delta negatif) else if (delta < 0) { if (header) header.classList.remove('header-hidden'); if (bottomNav) bottomNav.classList.remove('nav-hidden'); } // Referans noktasını sadece barajı geçince güncelle (Kilit nokta) lastScrollY = currentScrollY; } ticking = false; }); ticking = true; } }, { passive: true }); }
...
Game

...

▶ OYUNU BAŞLAT