IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   HTML/CSS/JavaScript (https://www.ircforumlari.net/html-css-javascript/)
-   -   Sayı Tahmin Oyunu / Html & JavaScript (https://www.ircforumlari.net/html-css-javascript/1061449-sayi-tahmin-oyunu-html-amp-javascript.html)

Mylife 22 Mayıs 2025 13:19

Sayı Tahmin Oyunu / Html & JavaScript
 
Kod:

<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8" />
    <title>Sayı Tahmin Oyunu </title>
    <style>
        body {
            font-family: Georgia, serif;
            background: #f0f8ff;
            display: flex;
            justify-content: center;
            padding-top: 40px;
        }
        .game-container {
            background: #d1e7dd;
            border: 3px solid #0f5132;
            border-radius: 15px;
            padding: 20px 30px;
            width: 400px;
            box-shadow: 0 0 15px #0f5132aa;
            text-align: center;
        }
        h1 {
            color: #0f5132;
            margin-bottom: 10px;
            font-size: 28px;
        }
        input[type=text], input[type=number] {
            width: 90%;
            font-size: 18px;
            padding: 8px;
            margin: 10px 0 15px 0;
            border-radius: 5px;
            border: 1.5px solid #0f5132;
        }
        button {
            font-size: 18px;
            padding: 10px 15px;
            border-radius: 8px;
            border: none;
            background-color: #0f5132;
            color: white;
            cursor: pointer;
            margin-top: 10px;
            width: 95%;
        }
        button:disabled {
            background-color: #6c757d;
            cursor: default;
        }
        .message {
            margin-top: 20px;
            font-weight: bold;
            font-size: 20px;
            min-height: 30px;
            color: #0f5132;
        }
        .status {
            margin-top: 5px;
            font-size: 16px;
            color: #155724;
        }
        #playerList {
            margin-top: 20px;
            text-align: left;
            background: #e6f4ea;
            border: 2px solid #0f5132;
            border-radius: 10px;
            padding: 10px;
            max-height: 150px;
            overflow-y: auto;
        }
        #playerList h2 {
            text-align: center;
            color: #0f5132;
        }
        #playerList ul {
            list-style: none;
            padding-left: 5px;
        }
        #playerList li {
            margin: 5px 0;
            font-weight: bold;
            color: #0f5132;
        }
        .timer {
            font-size: 18px;
            font-weight: bold;
            color: #b02a37;
            margin-bottom: 15px;
        }
    </style>
</head>
<body>

<div class="game-container">
    <h1>🎯 Sayı Tahmin Oyunu</h1>

    <div id="player-input">
        <input type="text" id="playerName" placeholder="Adınızı girin" />
        <button id="startBtn">Oyunu Başlat</button>
    </div>

    <div id="game" style="display:none;">
        <div class="timer">Kalan Süre: <span id="timer">20</span> saniye</div>
        <p>Tahmin hakkınız: <span id="tahminHakki">3</span></p>
        <input type="number" id="guessInput" min="1" max="20" placeholder="1-20 arasında sayı belirt." />
        <button id="guessBtn">Tahmin Et</button>
        <div class="message" id="message"></div>
        <button id="restartBtn" style="display:none;">Yeniden Başla</button>
    </div>

    <div id="playerList" style="display:none;">
        <h2>🏆 Başarılı Oyuncular</h2>
        <ul id="successList"></ul>
    </div>
</div>

<script>
    const startBtn = document.getElementById("startBtn");
    const playerNameInput = document.getElementById("playerName");
    const playerInputDiv = document.getElementById("player-input");

    const gameDiv = document.getElementById("game");
    const tahminHakkiSpan = document.getElementById("tahminHakki");
    const guessInput = document.getElementById("guessInput");
    const guessBtn = document.getElementById("guessBtn");
    const messageDiv = document.getElementById("message");
    const restartBtn = document.getElementById("restartBtn");
    const timerSpan = document.getElementById("timer");

    const playerListDiv = document.getElementById("playerList");
    const successList = document.getElementById("successList");

    let tutulanSayi = 0;
    let tahminHakki = 3;
    let oyuncuAdi = "";
    let timer = null;
    let kalanSure = 20;

    let basariliOyuncular = [];

    function baslat() {
        oyuncuAdi = playerNameInput.value.trim();
        if (oyuncuAdi === "") {
            alert("Lütfen isminizi girin.");
            return;
        }
        tutulanSayi = Math.floor(Math.random() * 20) + 1;
        tahminHakki = 3;
        kalanSure = 20;
        tahminHakkiSpan.textContent = tahminHakki;
        timerSpan.textContent = kalanSure;
        messageDiv.textContent = `Hoşgeldiniz, ${oyuncuAdi}! 1 ile 20 arasında bir sayı tutuyorum, tahmin etmeye çalışın.`;
        guessInput.value = "";
        guessInput.disabled = false;
        guessBtn.disabled = false;
        restartBtn.style.display = "none";
        playerInputDiv.style.display = "none";
        gameDiv.style.display = "block";
        playerListDiv.style.display = "block";
        guessInput.focus();

        if(timer) clearInterval(timer);
        timer = setInterval(() => {
            kalanSure--;
            timerSpan.textContent = kalanSure;
            if (kalanSure <= 0) {
                clearInterval(timer);
                messageDiv.textContent = `⏰ Süre doldu! Doğru sayı ${tutulanSayi} idi.`;
                bitirOyun();
            }
        }, 1000);
    }

    function tahminEt() {
        const tahmin = Number(guessInput.value);
        if (!tahmin || tahmin < 1 || tahmin > 20) {
            alert("Lütfen 1 ile 20 arasında geçerli bir sayı girin.");
            return;
        }

        if (tahmin === tutulanSayi) {
            messageDiv.textContent = `🎉 Tebrikler ${oyuncuAdi}, doğru tahmin! Sayı ${tahmin} Süreniz: ${20 - kalanSure} saniye.`;
            basariliOyuncular.push({ isim: oyuncuAdi, sure: 20 - kalanSure });
            guncelleBasariliOyuncular();
            bitirOyun();
        } else {
            tahminHakki--;
            tahminHakkiSpan.textContent = tahminHakki;
            if (tahminHakki === 0) {
                messageDiv.textContent = `😞 Hakkınız bitti! Doğru sayı ${tutulanSayi} idi.`;
                bitirOyun();
            } else {
                messageDiv.textContent = tahmin < tutulanSayi ? "⬆️ Daha büyük bir sayı deneyin." : "⬇️ Daha küçük bir sayı deneyin.";
            }
        }
        guessInput.value = "";
        guessInput.focus();
    }

    function bitirOyun() {
        guessInput.disabled = true;
        guessBtn.disabled = true;
        restartBtn.style.display = "inline-block";
        clearInterval(timer);
    }

    function yenidenBaslat() {
        playerInputDiv.style.display = "block";
        gameDiv.style.display = "none";
        messageDiv.textContent = "";
        playerNameInput.value = "";
    }

    function guncelleBasariliOyuncular() {
        successList.innerHTML = "";
        basariliOyuncular.forEach((oyuncu, index) => {
            const li = document.createElement("li");
            li.textContent = `${index + 1}. ${oyuncu.isim} - Süre: ${oyuncu.sure} sn`;
            successList.appendChild(li);
        });
    }

    startBtn.addEventListener("click", baslat);
    guessBtn.addEventListener("click", tahminEt);
    restartBtn.addEventListener("click", yenidenBaslat);

    guessInput.addEventListener("keyup", function(event) {
        if (event.key === "Enter") {
            tahminEt();
        }
    });
</script>

</body>
</html>

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

1 ile 20 arasında sayı tahmini yaparsınız ve 3 hak verilir. Doğru tahmin yapanların, kaç saniyede doğru tahmin ettikleri başarılı oyuncular kısmında gösterilir.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 18:56.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk