您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Gartic.io için casino paneli - Rulet, Aviator, Mines, Slot, Blackjack
// ==UserScript== // @name Gartic.io Casino Panel // @namespace http://tampermonkey.net/ // @version 2.0 // @description Gartic.io için casino paneli - Rulet, Aviator, Mines, Slot, Blackjack // @author Muho // @match https://gartic.io/* // @match https://*.gartic.io/* // @grant none // ==/UserScript== (function() { 'use strict'; let dumCoins = 50000; // Başlangıç parası let currentGame = 'rulet'; let aviatorMultiplier = 1.00; let aviatorActive = false; let aviatorInterval = null; let minesBoard = []; let minesRevealed = []; let slotSpinning = false; let gameActive = false; // Mines için oyun durumu // Blackjack oyun durumu let blackjackGame = { deck: [], playerCards: [], dealerCards: [], gameActive: false, playerStand: false, dealerHidden: true, bet: 0 }; // Ana panel oluştur function createCasinoPanel() { const panel = document.createElement('div'); panel.id = 'casino-panel'; panel.style.cssText = ` position: fixed; top: 10px; left: 10px; width: 380px; height: 550px; background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%); border: 3px solid #FFD700; border-radius: 15px; box-shadow: 0 15px 40px rgba(0,0,0,0.5); z-index: 9999; font-family: 'Arial', sans-serif; color: white; overflow: hidden; `; panel.innerHTML = ` <div style="padding: 15px; text-align: center; background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%); border-bottom: 2px solid #B8860B; color: #000;"> <h3 style="margin: 0; text-shadow: 1px 1px 2px rgba(0,0,0,0.3);">🎰 DUM CASINO 🎰</h3> <div style="margin-top: 5px; font-size: 18px; font-weight: bold;"> 💰 <span id="coin-display">${dumCoins.toLocaleString()}</span> DumCoin </div> </div> <div style="display: grid; grid-template-columns: repeat(5, 1fr); background: rgba(0,0,0,0.3);"> <button onclick="window.switchGame('rulet')" class="game-btn" id="rulet-btn">🎡 Rulet</button> <button onclick="window.switchGame('aviator')" class="game-btn" id="aviator-btn">✈️ Aviator</button> <button onclick="window.switchGame('mines')" class="game-btn" id="mines-btn">💣 Mines</button> <button onclick="window.switchGame('slot')" class="game-btn" id="slot-btn">🎰 Slot</button> <button onclick="window.switchGame('blackjack')" class="game-btn" id="blackjack-btn">🃏 21</button> </div> <div id="game-area" style="padding: 15px; height: 420px; overflow-y: auto;"></div> `; document.body.appendChild(panel); // CSS stilleri ekle const style = document.createElement('style'); style.textContent = ` .game-btn { padding: 12px 8px; background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.05) 100%); border: 1px solid rgba(255,255,255,0.2); color: white; cursor: pointer; font-size: 11px; font-weight: bold; transition: all 0.3s ease; text-shadow: 1px 1px 2px rgba(0,0,0,0.5); } .game-btn:hover { background: linear-gradient(135deg, rgba(255,215,0,0.3) 0%, rgba(255,140,0,0.2) 100%); transform: translateY(-1px); } .game-btn.active { background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%); color: #000; border-bottom: 3px solid #B8860B; text-shadow: none; } .bet-input { width: 100px; padding: 8px; border: 2px solid #FFD700; border-radius: 8px; text-align: center; font-size: 14px; font-weight: bold; background: rgba(255,255,255,0.9); color: #333; } .action-btn { background: linear-gradient(135deg, #FF6B6B 0%, #FF4757 100%); border: none; color: white; padding: 12px 20px; border-radius: 10px; cursor: pointer; font-weight: bold; font-size: 14px; transition: all 0.3s ease; margin: 5px; text-shadow: 1px 1px 2px rgba(0,0,0,0.3); box-shadow: 0 4px 12px rgba(255,107,107,0.3); } .action-btn:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(255,107,107,0.4); } .action-btn:active:not(:disabled) { transform: translateY(0px); } .action-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none !important; box-shadow: none !important; } .success-btn { background: linear-gradient(135deg, #2ED573 0%, #1DD1A1 100%) !important; box-shadow: 0 4px 12px rgba(46,213,115,0.3) !important; } .success-btn:hover:not(:disabled) { box-shadow: 0 6px 20px rgba(46,213,115,0.4) !important; } .warning-btn { background: linear-gradient(135deg, #FFA502 0%, #FF7675 100%) !important; box-shadow: 0 4px 12px rgba(255,165,2,0.3) !important; } .card { display: inline-block; width: 40px; height: 56px; background: white; border: 2px solid #333; border-radius: 6px; margin: 2px; text-align: center; line-height: 52px; font-size: 12px; font-weight: bold; color: #333; vertical-align: top; } .card.red { color: #d63031; } .result-display { background: rgba(0,0,0,0.6); border: 2px solid #FFD700; border-radius: 10px; padding: 10px; margin: 10px 0; font-weight: bold; text-align: center; min-height: 20px; } `; document.head.appendChild(style); // Global fonksiyonları tanımla window.switchGame = switchGame; window.playRulet = playRulet; window.startAviator = startAviator; window.cashoutAviator = cashoutAviator; window.revealMine = revealMine; window.startMines = startMines; window.cashoutMines = cashoutMines; window.spinSlot = spinSlot; window.startBlackjack = startBlackjack; window.hitBlackjack = hitBlackjack; window.standBlackjack = standBlackjack; switchGame('rulet'); } function updateCoinDisplay() { const display = document.getElementById('coin-display'); if (display) { display.textContent = dumCoins.toLocaleString(); } } function switchGame(game) { currentGame = game; // Buton durumlarını güncelle document.querySelectorAll('.game-btn').forEach(btn => btn.classList.remove('active')); const activeBtn = document.getElementById(game + '-btn'); if (activeBtn) activeBtn.classList.add('active'); const gameArea = document.getElementById('game-area'); if (!gameArea) return; switch(game) { case 'rulet': gameArea.innerHTML = createRuletGame(); break; case 'aviator': gameArea.innerHTML = createAviatorGame(); break; case 'mines': gameArea.innerHTML = createMinesGame(); initMinesBoard(); break; case 'slot': gameArea.innerHTML = createSlotGame(); break; case 'blackjack': gameArea.innerHTML = createBlackjackGame(); break; } } function createRuletGame() { return ` <div style="text-align: center;"> <h3 style="color: #FFD700; margin-bottom: 15px;">🎡 RULET MASASI</h3> <div style="margin: 20px 0;"> <div style="position: relative; display: inline-block;"> <div id="roulette-wheel" style="width: 180px; height: 180px; border: 4px solid #FFD700; border-radius: 50%; margin: 0 auto; position: relative; background: conic-gradient(#00FF00 0deg 9.7deg, #FF0000 9.7deg 19.4deg, #000000 19.4deg 29.1deg, #FF0000 29.1deg 38.8deg, #000000 38.8deg 48.5deg, #FF0000 48.5deg 58.2deg, #000000 58.2deg 67.9deg, #FF0000 67.9deg 77.6deg, #000000 77.6deg 87.3deg, #FF0000 87.3deg 97deg, #000000 97deg 106.7deg, #FF0000 106.7deg 116.4deg, #000000 116.4deg 126.1deg, #FF0000 126.1deg 135.8deg, #000000 135.8deg 145.5deg, #FF0000 145.5deg 155.2deg, #000000 155.2deg 164.9deg, #FF0000 164.9deg 174.6deg, #000000 174.6deg 184.3deg, #FF0000 184.3deg 194deg, #000000 194deg 203.7deg, #FF0000 203.7deg 213.4deg, #000000 213.4deg 223.1deg, #FF0000 223.1deg 232.8deg, #000000 232.8deg 242.5deg, #FF0000 242.5deg 252.2deg, #000000 252.2deg 261.9deg, #FF0000 261.9deg 271.6deg, #000000 271.6deg 281.3deg, #FF0000 281.3deg 291deg, #000000 291deg 300.7deg, #FF0000 300.7deg 310.4deg, #000000 310.4deg 320.1deg, #FF0000 320.1deg 329.8deg, #000000 329.8deg 339.5deg, #FF0000 339.5deg 349.2deg, #000000 349.2deg 358.9deg, #FF0000 358.9deg 360deg); transition: transform 3s cubic-bezier(0.23, 1, 0.32, 1); box-shadow: inset 0 0 20px rgba(255,215,0,0.3);"> <div style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 15px; height: 15px; background: white; border-radius: 50%; box-shadow: 0 0 10px rgba(255,255,255,0.8);"></div> </div> <div style="position: absolute; top: -8px; left: 50%; transform: translateX(-50%); width: 0; height: 0; border-left: 10px solid transparent; border-right: 10px solid transparent; border-top: 16px solid #FFD700; z-index: 10; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));"></div> </div> <div id="roulette-result-display" class="result-display" style="margin-top: 15px; font-size: 20px; color: #FFD700;">Bahis yapın ve şansınızı deneyin!</div> </div> <div style="margin: 15px 0;"> <label style="color: #FFD700; font-weight: bold;">💰 Bahis Miktarı: </label> <input type="number" id="rulet-bet" class="bet-input" value="100" min="10" max="${dumCoins}"> </div> <div style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin: 15px 0;"> <button class="action-btn" onclick="window.playRulet('red')" id="rulet-red-btn" style="background: linear-gradient(135deg, #FF0000 0%, #CC0000 100%);">🔴 KIRMIZI (2x)</button> <button class="action-btn" onclick="window.playRulet('black')" id="rulet-black-btn" style="background: linear-gradient(135deg, #333333 0%, #000000 100%);">⚫ SİYAH (2x)</button> <button class="action-btn" onclick="window.playRulet('even')" id="rulet-even-btn">⚪ ÇİFT SAYI (2x)</button> <button class="action-btn" onclick="window.playRulet('odd')" id="rulet-odd-btn">⚪ TEK SAYI (2x)</button> </div> <div id="rulet-result" class="result-display" style="font-size: 16px;">Bahis seçin ve oyunu başlatın!</div> </div> `; } function createAviatorGame() { return ` <div style="text-align: center;"> <h3 style="color: #FFD700; margin-bottom: 15px;">✈️ AVIATOR UÇAĞI</h3> <div style="margin: 20px 0;"> <div style="width: 300px; height: 180px; background: linear-gradient(to bottom, #87CEEB, #98FB98); border: 3px solid #FFD700; border-radius: 15px; margin: 0 auto; position: relative; overflow: hidden; box-shadow: inset 0 0 20px rgba(255,215,0,0.2);"> <div id="aviator-plane" style="position: absolute; bottom: 20px; left: 20px; font-size: 35px; transition: all 0.1s; text-shadow: 2px 2px 4px rgba(0,0,0,0.3);">✈️</div> <div id="aviator-multiplier" style="position: absolute; top: 20px; right: 20px; font-size: 28px; font-weight: bold; color: #333; background: rgba(255,255,255,0.8); padding: 8px 15px; border-radius: 10px; border: 2px solid #FFD700;">1.00x</div> <div style="position: absolute; bottom: 10px; left: 10px; font-size: 12px; color: #333; background: rgba(255,255,255,0.7); padding: 5px; border-radius: 5px;">Uçak yükseldikçe çarpan artar!</div> </div> </div> <div style="margin: 20px 0;"> <label style="color: #FFD700; font-weight: bold;">💰 Bahis Miktarı: </label> <input type="number" id="aviator-bet" class="bet-input" value="100" min="10" max="${dumCoins}"> </div> <div style="display: flex; justify-content: center; gap: 15px;"> <button id="aviator-start-btn" class="action-btn" onclick="window.startAviator()" style="background: linear-gradient(135deg, #00D2FF 0%, #3A7BD5 100%); box-shadow: 0 4px 12px rgba(0,210,255,0.3);">🚀 UÇUŞU BAŞLAT</button> <button id="aviator-cashout-btn" class="action-btn success-btn" onclick="window.cashoutAviator()" disabled>💰 PARA ÇEK</button> </div> <div id="aviator-result" class="result-display" style="font-size: 16px;">Uçağın düşmeden önce para çekin!</div> </div> `; } function createMinesGame() { return ` <div style="text-align: center;"> <h3 style="color: #FFD700; margin-bottom: 15px;">💣 MAYIN TARLASI</h3> <div style="background: rgba(255,215,0,0.1); padding: 10px; border-radius: 10px; margin: 10px 0; border: 2px solid #FFD700;"> <div style="font-size: 14px; color: #FFD700; margin-bottom: 5px;">📋 OYUN KURALLARI:</div> <div style="font-size: 12px; color: #FFF;">4 mayın var • Elmas bul kazanç artar • Mayına basarsan kaybedersin</div> </div> <div style="margin: 15px 0;"> <label style="color: #FFD700; font-weight: bold;">💰 Bahis Miktarı: </label> <input type="number" id="mines-bet" class="bet-input" value="100" min="10" max="${dumCoins}"> </div> <div style="display: flex; justify-content: center; gap: 15px; margin: 15px 0;"> <button class="action-btn" onclick="window.startMines()" id="mines-start-btn">🎮 OYUNU BAŞLAT</button> <button class="action-btn success-btn" onclick="window.cashoutMines()" id="mines-cashout-btn" disabled>💰 PARA ÇEK</button> </div> <div id="mines-board" style="display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 20px auto; width: 240px; background: rgba(0,0,0,0.3); padding: 15px; border-radius: 10px; border: 2px solid #FFD700;"></div> <div id="mines-result" class="result-display">Oyunu başlatın ve dikkatli seçim yapın!</div> </div> `; } function createSlotGame() { return ` <div style="text-align: center;"> <h3 style="color: #FFD700; margin-bottom: 15px;">🎰 SLOT MAKİNESİ</h3> <div style="margin: 20px 0;"> <div style="background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%); padding: 20px; border-radius: 15px; display: inline-block; border: 3px solid #B8860B;"> <div style="display: flex; justify-content: center; gap: 15px; margin: 10px 0;"> <div class="slot-reel" id="reel1" style="width: 70px; height: 90px; border: 3px solid #333; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 35px; background: white; color: black; box-shadow: inset 0 0 10px rgba(0,0,0,0.2);">🍒</div> <div class="slot-reel" id="reel2" style="width: 70px; height: 90px; border: 3px solid #333; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 35px; background: white; color: black; box-shadow: inset 0 0 10px rgba(0,0,0,0.2);">🍋</div> <div class="slot-reel" id="reel3" style="width: 70px; height: 90px; border: 3px solid #333; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 35px; background: white; color: black; box-shadow: inset 0 0 10px rgba(0,0,0,0.2);">🍊</div> </div> </div> </div> <div style="margin: 20px 0;"> <label style="color: #FFD700; font-weight: bold;">💰 Bahis Miktarı: </label> <input type="number" id="slot-bet" class="bet-input" value="100" min="10" max="${dumCoins}"> </div> <button class="action-btn" onclick="window.spinSlot()" id="slot-spin-btn" style="background: linear-gradient(135deg, #FF6B6B 0%, #4ECDC4 100%); font-size: 16px; padding: 15px 30px;">🎰 ÇEVİR!</button> <div style="background: rgba(255,215,0,0.1); padding: 15px; border-radius: 10px; margin: 20px 0; border: 2px solid #FFD700;"> <div style="color: #FFD700; font-size: 14px; font-weight: bold; margin-bottom: 8px;">🏆 KAZANÇ TABLOSU:</div> <div style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 5px; font-size: 12px; color: #FFF;"> <div>💎💎💎 = 20x</div> <div>🍒🍒🍒 = 10x</div> <div>🍋🍋🍋 = 8x</div> <div>🍊🍊🍊 = 6x</div> </div> </div> <div id="slot-result" class="result-display">Üç aynı sembol ile kazanın!</div> </div> `; } function createBlackjackGame() { return ` <div style="text-align: center;"> <h3 style="color: #FFD700; margin-bottom: 15px;">🃏 BLACKJACK 21</h3> <div style="background: rgba(0,0,0,0.4); padding: 15px; border-radius: 10px; margin: 15px 0; border: 2px solid #FFD700;"> <div style="margin-bottom: 15px;"> <div style="color: #FFD700; font-weight: bold; margin-bottom: 5px;">🎭 KRUPYE ELLERİ:</div> <div id="dealer-cards" style="min-height: 60px; display: flex; justify-content: center; flex-wrap: wrap; align-items: center;"></div> <div id="dealer-total" style="color: #FFF; font-weight: bold; margin-top: 5px;"></div> </div> <div> <div style="color: #00FF00; font-weight: bold; margin-bottom: 5px;">👤 SİZİN ELLERİNİZ:</div> <div id="player-cards" style="min-height: 60px; display: flex; justify-content: center; flex-wrap: wrap; align-items: center;"></div> <div id="player-total" style="color: #FFF; font-weight: bold; margin-top: 5px;"></div> </div> </div> <div style="margin: 20px 0;"> <label style="color: #FFD700; font-weight: bold;">💰 Bahis Miktarı: </label> <input type="number" id="blackjack-bet" class="bet-input" value="100" min="10" max="${dumCoins}"> </div> <div style="display: flex; justify-content: center; gap: 10px; flex-wrap: wrap;"> <button class="action-btn" onclick="window.startBlackjack()" id="blackjack-start-btn">🃏 OYUNU BAŞLAT</button> <button class="action-btn warning-btn" onclick="window.hitBlackjack()" id="blackjack-hit-btn" disabled>📥 KART ÇEK</button> <button class="action-btn success-btn" onclick="window.standBlackjack()" id="blackjack-stand-btn" disabled>✋ PAS</button> </div> <div style="background: rgba(255,215,0,0.1); padding: 10px; border-radius: 10px; margin: 15px 0; border: 2px solid #FFD700;"> <div style="color: #FFD700; font-size: 12px; font-weight: bold;">📋 KURALLAR:</div> <div style="font-size: 11px; color: #FFF;">21'e yaklaş ama geçme • As = 1 veya 11 • J,Q,K = 10</div> </div> <div id="blackjack-result" class="result-display">Bahis yapın ve kartları çekin!</div> </div> `; } // Blackjack fonksiyonları function createDeck() { const suits = ['♠', '♥', '♦', '♣']; const values = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']; const deck = []; for (let suit of suits) { for (let value of values) { deck.push({ value: value, suit: suit, numValue: value === 'A' ? 11 : (value === 'J' || value === 'Q' || value === 'K') ? 10 : parseInt(value) }); } } // Kartları karıştır for (let i = deck.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [deck[i], deck[j]] = [deck[j], deck[i]]; } return deck; } function calculateHandValue(cards) { let value = 0; let aces = 0; for (let card of cards) { if (card.value === 'A') { aces++; value += 11; } else { value += card.numValue; } } // As'ları düzelt (11'den 1'e çevir) while (value > 21 && aces > 0) { value -= 10; aces--; } return value; } function renderCards(cards, containerId, hideFirst = false) { const container = document.getElementById(containerId); if (!container) return; container.innerHTML = ''; for (let i = 0; i < cards.length; i++) { const card = cards[i]; const cardElement = document.createElement('div'); if (hideFirst && i === 0) { cardElement.className = 'card'; cardElement.style.background = '#333'; cardElement.style.color = '#666'; cardElement.textContent = '?'; } else { const isRed = card.suit === '♥' || card.suit === '♦'; cardElement.className = `card ${isRed ? 'red' : ''}`; cardElement.textContent = card.value + card.suit; } container.appendChild(cardElement); } } function startBlackjack() { const betAmount = parseInt(document.getElementById('blackjack-bet').value); if (betAmount > dumCoins || betAmount < 10) { document.getElementById('blackjack-result').textContent = '❌ Geçersiz bahis miktarı!'; return; } dumCoins -= betAmount; updateCoinDisplay(); blackjackGame.deck = createDeck(); blackjackGame.playerCards = []; blackjackGame.dealerCards = []; blackjackGame.gameActive = true; blackjackGame.playerStand = false; blackjackGame.dealerHidden = true; blackjackGame.bet = betAmount; // İlk kartları dağıt blackjackGame.playerCards.push(blackjackGame.deck.pop()); blackjackGame.dealerCards.push(blackjackGame.deck.pop()); blackjackGame.playerCards.push(blackjackGame.deck.pop()); blackjackGame.dealerCards.push(blackjackGame.deck.pop()); renderCards(blackjackGame.playerCards, 'player-cards'); renderCards(blackjackGame.dealerCards, 'dealer-cards', true); const playerTotal = calculateHandValue(blackjackGame.playerCards); document.getElementById('player-total').textContent = `Toplam: ${playerTotal}`; document.getElementById('dealer-total').textContent = 'Toplam: ?'; // Butonları güncelle document.getElementById('blackjack-start-btn').disabled = true; document.getElementById('blackjack-hit-btn').disabled = false; document.getElementById('blackjack-stand-btn').disabled = false; // Blackjack kontrolü if (playerTotal === 21) { document.getElementById('blackjack-result').innerHTML = '🎉 BLACKJACK! Otomatik kazanç!'; setTimeout(() => endBlackjackGame(), 1000); } else { document.getElementById('blackjack-result').textContent = 'Kart çek veya pas geç!'; } } function hitBlackjack() { if (!blackjackGame.gameActive) return; blackjackGame.playerCards.push(blackjackGame.deck.pop()); renderCards(blackjackGame.playerCards, 'player-cards'); const playerTotal = calculateHandValue(blackjackGame.playerCards); document.getElementById('player-total').textContent = `Toplam: ${playerTotal}`; if (playerTotal > 21) { document.getElementById('blackjack-result').innerHTML = `💥 BATTI! ${playerTotal} - Kaybettiniz!<br>-${blackjackGame.bet} DumCoin`; endBlackjackGame(); } else if (playerTotal === 21) { document.getElementById('blackjack-result').textContent = '🎯 21! Krupye sırası...'; setTimeout(() => standBlackjack(), 1000); } else { document.getElementById('blackjack-result').textContent = `Toplam: ${playerTotal} - Devam edin!`; } } function standBlackjack() { if (!blackjackGame.gameActive) return; blackjackGame.playerStand = true; blackjackGame.dealerHidden = false; // Krupye kartlarını göster renderCards(blackjackGame.dealerCards, 'dealer-cards', false); let dealerTotal = calculateHandValue(blackjackGame.dealerCards); document.getElementById('dealer-total').textContent = `Toplam: ${dealerTotal}`; document.getElementById('blackjack-hit-btn').disabled = true; document.getElementById('blackjack-stand-btn').disabled = true; // Krupye 17'ye kadar kart çeker const dealerPlay = () => { if (dealerTotal < 17) { setTimeout(() => { blackjackGame.dealerCards.push(blackjackGame.deck.pop()); renderCards(blackjackGame.dealerCards, 'dealer-cards', false); dealerTotal = calculateHandValue(blackjackGame.dealerCards); document.getElementById('dealer-total').textContent = `Toplam: ${dealerTotal}`; if (dealerTotal < 17) { dealerPlay(); } else { setTimeout(() => endBlackjackGame(), 1000); } }, 1000); } else { setTimeout(() => endBlackjackGame(), 1000); } }; dealerPlay(); } function endBlackjackGame() { if (!blackjackGame.gameActive) return; blackjackGame.gameActive = false; const playerTotal = calculateHandValue(blackjackGame.playerCards); const dealerTotal = calculateHandValue(blackjackGame.dealerCards); // Tüm kartları göster renderCards(blackjackGame.dealerCards, 'dealer-cards', false); document.getElementById('dealer-total').textContent = `Toplam: ${dealerTotal}`; let result = ''; let winAmount = 0; if (playerTotal > 21) { result = `💥 BATTI! Siz: ${playerTotal}<br>-${blackjackGame.bet} DumCoin`; } else if (dealerTotal > 21) { result = `🎉 KRUPYE BATTI! Kazandınız!<br>+${blackjackGame.bet * 2} DumCoin`; winAmount = blackjackGame.bet * 2; } else if (playerTotal === 21 && blackjackGame.playerCards.length === 2) { result = `🃏 BLACKJACK! Süper kazanç!<br>+${Math.floor(blackjackGame.bet * 2.5)} DumCoin`; winAmount = Math.floor(blackjackGame.bet * 2.5); } else if (playerTotal > dealerTotal) { result = `🎉 KAZANDINIZ! Siz: ${playerTotal} vs ${dealerTotal}<br>+${blackjackGame.bet * 2} DumCoin`; winAmount = blackjackGame.bet * 2; } else if (playerTotal < dealerTotal) { result = `😢 KAYBETTİNİZ! Siz: ${playerTotal} vs ${dealerTotal}<br>-${blackjackGame.bet} DumCoin`; } else { result = `🤝 BERABERE! Siz: ${playerTotal} vs ${dealerTotal}<br>+${blackjackGame.bet} DumCoin (İade)`; winAmount = blackjackGame.bet; } dumCoins += winAmount; updateCoinDisplay(); document.getElementById('blackjack-result').innerHTML = result; document.getElementById('blackjack-start-btn').disabled = false; document.getElementById('blackjack-hit-btn').disabled = true; document.getElementById('blackjack-stand-btn').disabled = true; } function playRulet(bet) { const betAmount = parseInt(document.getElementById('rulet-bet').value); if (betAmount > dumCoins || betAmount < 10) { document.getElementById('rulet-result').innerHTML = '<span style="color: #FF6B6B;">❌ Geçersiz bahis miktarı!</span>'; return; } // Butonları devre dışı bırak const buttons = ['rulet-red-btn', 'rulet-black-btn', 'rulet-even-btn', 'rulet-odd-btn']; buttons.forEach(btnId => { const btn = document.getElementById(btnId); if (btn) btn.disabled = true; }); dumCoins -= betAmount; updateCoinDisplay(); // Rulet sonucunu önceden hesapla const result = Math.floor(Math.random() * 37); // 0-36 const isRed = [1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36].includes(result); const isBlack = result > 0 && !isRed; const isEven = result > 0 && result % 2 === 0; const isOdd = result > 0 && result % 2 === 1; // Dönme animasyonu const wheel = document.getElementById('roulette-wheel'); const resultDisplay = document.getElementById('roulette-result-display'); if (wheel && resultDisplay) { document.getElementById('rulet-result').innerHTML = '<span style="color: #FFD700;">🎡 Rulet dönüyor... Şansınızı deneyin!</span>'; resultDisplay.innerHTML = '<span style="color: #FFD700;">🎰 Rulet dönüyor...</span>'; // Her sayı için açı hesapla (37 sektör) const sectorAngle = 360 / 37; const resultAngle = result * sectorAngle; // Random dönüş sayısı + hedef açı const spins = Math.floor(Math.random() * 5) + 4; const targetAngle = (spins * 360) - resultAngle; wheel.style.transform = `rotate(${targetAngle}deg)`; // Sonucu göster setTimeout(() => { let resultColor = result === 0 ? '#00FF00' : (isRed ? '#FF0000' : '#FFFFFF'); let resultBg = result === 0 ? 'rgba(0,255,0,0.3)' : (isRed ? 'rgba(255,0,0,0.3)' : 'rgba(0,0,0,0.8)'); resultDisplay.innerHTML = `<span style="color: ${resultColor}; background: ${resultBg}; padding: 8px 20px; border-radius: 25px; border: 2px solid ${resultColor}; font-weight: bold; text-shadow: 1px 1px 2px rgba(0,0,0,0.5);">${result}</span>`; let won = false; if ((bet === 'red' && isRed) || (bet === 'black' && isBlack) || (bet === 'even' && isEven) || (bet === 'odd' && isOdd)) { won = true; dumCoins += betAmount * 2; document.getElementById('rulet-result').innerHTML = `<span style="color: #00FF00;">🎉 KAZANDINIZ!</span><br>Çıkan Sayı: <span style="color: ${resultColor}; font-weight: bold;">${result}</span><br><span style="color: #FFD700;">+${betAmount * 2} DumCoin</span>`; } else { document.getElementById('rulet-result').innerHTML = `<span style="color: #FF6B6B;">😢 KAYBETTİNİZ!</span><br>Çıkan Sayı: <span style="color: ${resultColor}; font-weight: bold;">${result}</span><br><span style="color: #FF6B6B;">-${betAmount} DumCoin</span>`; } updateCoinDisplay(); // Butonları tekrar aktif et setTimeout(() => { buttons.forEach(btnId => { const btn = document.getElementById(btnId); if (btn) btn.disabled = false; }); }, 1000); }, 3200); } } function startAviator() { const betAmount = parseInt(document.getElementById('aviator-bet').value); if (betAmount > dumCoins || betAmount < 10) { document.getElementById('aviator-result').innerHTML = '<span style="color: #FF6B6B;">❌ Geçersiz bahis miktarı!</span>'; return; } dumCoins -= betAmount; updateCoinDisplay(); aviatorActive = true; aviatorMultiplier = 1.00; const startBtn = document.getElementById('aviator-start-btn'); const cashoutBtn = document.getElementById('aviator-cashout-btn'); if (startBtn) startBtn.disabled = true; if (cashoutBtn) cashoutBtn.disabled = false; document.getElementById('aviator-result').innerHTML = '<span style="color: #00FF00;">✈️ Uçak havalandı! Düşmeden para çekin!</span>'; // Çıkma olasılığı sistemi - daha gerçekçi let crashPoint = 1.0 + Math.random() * 4; // 1.0 - 5.0 arası if (Math.random() < 0.05) crashPoint = 1.0 + Math.random() * 10; // %5 şansla yüksek çarpan aviatorInterval = setInterval(() => { if (!aviatorActive) return; aviatorMultiplier += 0.01; const multiplierDisplay = document.getElementById('aviator-multiplier'); if (multiplierDisplay) { multiplierDisplay.textContent = aviatorMultiplier.toFixed(2) + 'x'; } // Uçak animasyonu const plane = document.getElementById('aviator-plane'); if (plane) { const progress = Math.min((aviatorMultiplier - 1) * 60, 250); plane.style.left = (20 + progress) + 'px'; plane.style.bottom = (20 + progress/3) + 'px'; plane.style.transform = `rotate(${progress/10}deg)`; } // Crash kontrolü if (aviatorMultiplier >= crashPoint) { aviatorActive = false; clearInterval(aviatorInterval); document.getElementById('aviator-result').innerHTML = `<span style="color: #FF6B6B;">💥 Uçak düştü! ${aviatorMultiplier.toFixed(2)}x'de</span><br><span style="color: #FF6B6B;">-${betAmount} DumCoin</span>`; if (startBtn) startBtn.disabled = false; if (cashoutBtn) cashoutBtn.disabled = true; // Reset animasyonu setTimeout(() => { if (plane) { plane.style.left = '20px'; plane.style.bottom = '20px'; plane.style.transform = 'rotate(0deg)'; } if (multiplierDisplay) { multiplierDisplay.textContent = '1.00x'; } }, 1500); } }, 100); } function cashoutAviator() { if (!aviatorActive) return; aviatorActive = false; clearInterval(aviatorInterval); const betAmount = parseInt(document.getElementById('aviator-bet').value); const winAmount = Math.floor(betAmount * aviatorMultiplier); dumCoins += winAmount; updateCoinDisplay(); document.getElementById('aviator-result').innerHTML = `<span style="color: #00FF00;">🎉 Başarılı çıkış! ${aviatorMultiplier.toFixed(2)}x</span><br><span style="color: #FFD700;">+${winAmount} DumCoin</span>`; const startBtn = document.getElementById('aviator-start-btn'); const cashoutBtn = document.getElementById('aviator-cashout-btn'); if (startBtn) startBtn.disabled = false; if (cashoutBtn) cashoutBtn.disabled = true; // Reset animasyonu setTimeout(() => { const plane = document.getElementById('aviator-plane'); const multiplierDisplay = document.getElementById('aviator-multiplier'); if (plane) { plane.style.left = '20px'; plane.style.bottom = '20px'; plane.style.transform = 'rotate(0deg)'; } if (multiplierDisplay) { multiplierDisplay.textContent = '1.00x'; } }, 1000); } function initMinesBoard() { minesBoard = Array(16).fill(false); minesRevealed = Array(16).fill(false); gameActive = false; // Oyun başlatılmadı // 4 mayın yerleştir let minesPlaced = 0; while (minesPlaced < 4) { const pos = Math.floor(Math.random() * 16); if (!minesBoard[pos]) { minesBoard[pos] = true; minesPlaced++; } } updateMinesBoard(); } function updateMinesBoard() { const board = document.getElementById('mines-board'); if (!board) return; board.innerHTML = ''; for (let i = 0; i < 16; i++) { const cell = document.createElement('div'); cell.style.cssText = ` width: 50px; height: 50px; background: linear-gradient(135deg, #666 0%, #444 100%); border: 2px solid #999; border-radius: 8px; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 24px; transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(0,0,0,0.3); `; if (minesRevealed[i]) { if (minesBoard[i]) { cell.textContent = '💣'; cell.style.background = 'linear-gradient(135deg, #FF4757 0%, #CC2E3F 100%)'; cell.style.boxShadow = '0 0 15px rgba(255,71,87,0.5)'; } else { cell.textContent = '💎'; cell.style.background = 'linear-gradient(135deg, #00D2FF 0%, #3A7BD5 100%)'; cell.style.boxShadow = '0 0 15px rgba(0,210,255,0.5)'; } cell.style.cursor = 'default'; } else { cell.addEventListener('click', () => window.revealMine(i)); cell.addEventListener('mouseenter', () => { if (gameActive) { cell.style.background = 'linear-gradient(135deg, #888 0%, #666 100%)'; cell.style.transform = 'translateY(-2px)'; } }); cell.addEventListener('mouseleave', () => { cell.style.background = 'linear-gradient(135deg, #666 0%, #444 100%)'; cell.style.transform = 'translateY(0px)'; }); } board.appendChild(cell); } } function startMines() { const betAmount = parseInt(document.getElementById('mines-bet').value); if (betAmount > dumCoins || betAmount < 10) { document.getElementById('mines-result').innerHTML = '<span style="color: #FF6B6B;">❌ Geçersiz bahis miktarı!</span>'; return; } dumCoins -= betAmount; updateCoinDisplay(); gameActive = true; // Yeni oyun için board'u sıfırla minesBoard = Array(16).fill(false); minesRevealed = Array(16).fill(false); // 4 mayın yerleştir let minesPlaced = 0; while (minesPlaced < 4) { const pos = Math.floor(Math.random() * 16); if (!minesBoard[pos]) { minesBoard[pos] = true; minesPlaced++; } } updateMinesBoard(); document.getElementById('mines-result').innerHTML = '<span style="color: #FFD700;">💎 Elmasları bulun! Mayınlardan kaçının!</span>'; const startBtn = document.getElementById('mines-start-btn'); const cashoutBtn = document.getElementById('mines-cashout-btn'); if (startBtn) startBtn.disabled = true; if (cashoutBtn) cashoutBtn.disabled = false; } function revealMine(index) { if (minesRevealed[index] || !gameActive) return; minesRevealed[index] = true; updateMinesBoard(); const betAmount = parseInt(document.getElementById('mines-bet').value); if (minesBoard[index]) { // Mayın buldu - oyun bitti gameActive = false; document.getElementById('mines-result').innerHTML = `<span style="color: #FF6B6B;">💣 Mayına bastınız! Oyun bitti!</span><br><span style="color: #FF6B6B;">-${betAmount} DumCoin</span>`; const startBtn = document.getElementById('mines-start-btn'); const cashoutBtn = document.getElementById('mines-cashout-btn'); if (startBtn) startBtn.disabled = false; if (cashoutBtn) cashoutBtn.disabled = true; // Tüm mayınları göster setTimeout(() => { for (let i = 0; i < 16; i++) { if (minesBoard[i]) minesRevealed[i] = true; } updateMinesBoard(); }, 500); } else { // Güvenli alan const revealedCount = minesRevealed.filter((revealed, i) => revealed && !minesBoard[i]).length; const multiplier = 1 + (revealedCount * 0.4); // Her elmas %40 bonus const currentWin = Math.floor(betAmount * multiplier); document.getElementById('mines-result').innerHTML = `<span style="color: #00FF00;">💎 Elmas bulundu!</span><br>Mevcut kazanç: <span style="color: #FFD700;">${currentWin} DumCoin (${multiplier.toFixed(1)}x)</span>`; // Tüm güvenli alanlar bulundu if (revealedCount === 12) { gameActive = false; dumCoins += currentWin; updateCoinDisplay(); document.getElementById('mines-result').innerHTML = `<span style="color: #00FF00;">🎉 Tüm elmasları buldunuz!</span><br><span style="color: #FFD700;">+${currentWin} DumCoin</span>`; const startBtn = document.getElementById('mines-start-btn'); const cashoutBtn = document.getElementById('mines-cashout-btn'); if (startBtn) startBtn.disabled = false; if (cashoutBtn) cashoutBtn.disabled = true; } } } function cashoutMines() { if (!gameActive) { document.getElementById('mines-result').innerHTML = '<span style="color: #FF6B6B;">❌ Önce oyunu başlatın!</span>'; return; } const betAmount = parseInt(document.getElementById('mines-bet').value); const revealedCount = minesRevealed.filter((revealed, i) => revealed && !minesBoard[i]).length; if (revealedCount === 0) { document.getElementById('mines-result').innerHTML = '<span style="color: #FF6B6B;">❌ Önce bir elmas bulun!</span>'; return; } gameActive = false; const multiplier = 1 + (revealedCount * 0.4); const winAmount = Math.floor(betAmount * multiplier); dumCoins += winAmount; updateCoinDisplay(); document.getElementById('mines-result').innerHTML = `<span style="color: #00FF00;">💰 Para çekildi! ${revealedCount} elmas bulundu</span><br><span style="color: #FFD700;">+${winAmount} DumCoin (${multiplier.toFixed(1)}x)</span>`; const startBtn = document.getElementById('mines-start-btn'); const cashoutBtn = document.getElementById('mines-cashout-btn'); if (startBtn) startBtn.disabled = false; if (cashoutBtn) cashoutBtn.disabled = true; // Oyunu sıfırla setTimeout(() => { minesBoard = Array(16).fill(false); minesRevealed = Array(16).fill(false); updateMinesBoard(); }, 2000); } function spinSlot() { const betAmount = parseInt(document.getElementById('slot-bet').value); if (betAmount > dumCoins || betAmount < 10 || slotSpinning) return; dumCoins -= betAmount; updateCoinDisplay(); slotSpinning = true; const spinBtn = document.getElementById('slot-spin-btn'); if (spinBtn) spinBtn.disabled = true; const symbols = ['🍒', '🍋', '🍊', '💎', '⭐', '🍇']; const reels = ['reel1', 'reel2', 'reel3']; const results = []; document.getElementById('slot-result').innerHTML = '<span style="color: #FFD700;">🎰 Makaralar dönüyor...</span>'; // Animasyonlu spin let spinCount = 0; const spinInterval = setInterval(() => { reels.forEach(reelId => { const reel = document.getElementById(reelId); if (reel) { const randomSymbol = symbols[Math.floor(Math.random() * symbols.length)]; reel.textContent = randomSymbol; } }); spinCount++; if (spinCount > 25) { clearInterval(spinInterval); // Final sonuçları belirle results.length = 0; reels.forEach(reelId => { const reel = document.getElementById(reelId); if (reel) { const finalSymbol = symbols[Math.floor(Math.random() * symbols.length)]; reel.textContent = finalSymbol; results.push(finalSymbol); } }); // Kazanç hesapla let multiplier = 0; if (results.length === 3 && results[0] === results[1] && results[1] === results[2]) { switch(results[0]) { case '💎': multiplier = 20; break; case '🍒': multiplier = 10; break; case '🍋': multiplier = 8; break; case '🍊': multiplier = 6; break; case '⭐': multiplier = 15; break; case '🍇': multiplier = 5; break; default: multiplier = 4; } } if (multiplier > 0) { const winAmount = betAmount * multiplier; dumCoins += winAmount; document.getElementById('slot-result').innerHTML = `<span style="color: #00FF00;">🎉 JACKPOT!</span><br>${results.join(' ')}<br><span style="color: #FFD700;">+${winAmount} DumCoin (${multiplier}x)</span>`; } else { document.getElementById('slot-result').innerHTML = `<span style="color: #FF6B6B;">😢 Şanssızlık!</span><br>${results.join(' ')}<br><span style="color: #FF6B6B;">-${betAmount} DumCoin</span>`; } updateCoinDisplay(); slotSpinning = false; if (spinBtn) spinBtn.disabled = false; } }, 80); } // Oyun başlatıldığında paneli oluştur setTimeout(createCasinoPanel, 1000); })();