Files
Hangman-Game_Adam-Asmaca/TR/adamasmaca_tr.html
T
2025-08-31 21:04:52 +03:00

81 lines
7.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><title>Adam Asmaca Oyunu</title>
<style>
@font-face{font-family:'Montserrat';src:url('/FONTS/Montserrat.woff2')format('woff2');font-style:normal;}
*{margin:0;padding:0;box-sizing:border-box;font-family:"Montserrat",sans-serif;}
body{-webkit-user-select: none !important;display:flex;padding:0 10px;align-items:center;justify-content:center;min-height:100vh;background:#5E63BA}
.container{display:flex;flex-direction: column; width: 53rem;gap: 4.4rem;padding: 3.8rem 2.5rem;background:#fff;border-radius:10px;align-items:flex-end;justify-content:space-between;box-shadow:0 10px 20px rgb(0 0 0 / .1)}
.border_1{display: flex;flex-direction: row;justify-content: space-between;width:100%;}
.title{width: 80%;display: flex;justify-content: center;}
#scoreboard {display: flex;justify-content:space-between;background: white;color: black;width: 100%;font-size: 1.2rem;font-weight: bold;padding: 0.62rem;border-radius: 10px;display: inline-block;margin-bottom: 1.25rem;box-shadow: 0 4px 8px rgba(0, 0, 0, 0.32);width: 20%}
.hangman-box img{user-select:none;max-width:270px}
.game-box .word-display{gap:.62rem;list-style:none;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;margin-top: 5rem;}
.word-display .letter{width:1.8rem;font-size:2rem;text-align:center;font-weight:600;margin-bottom:2.4rem;text-transform:uppercase;border-bottom:3px solid #000}
.word-display .letter.guessed{margin:-40px 0 35px;border-color:#fff0}
.game-box h4{text-align:center;font-size:1.1rem;font-weight:500;margin-bottom:1rem}
.game-box h4 b{font-weight:600}
.game-box .guesses-text b{color:red}
.game-box .keyboard{display:flex;gap:5px;flex-wrap:wrap;margin-top:2.5rem;justify-content:center}
:where(.game-modal,.keyboard) button{color:#fff;border:none;outline:none;cursor:pointer;font-size:1rem;font-weight:600;border-radius:4px;text-transform:uppercase;background:#5E63BA}
.keyboard button{padding:.44rem;width:calc(100% / 9 - 5px)}
.keyboard button[disabled]{pointer-events:none;opacity:.6}
:where(.game-modal,.keyboard) button:hover{background:#8286c9}
.game-modal{position:fixed;top:0;left:0;width:100%;height:100%;opacity:0;pointer-events:none;background:rgb(0 0 0 / .6);display:flex;align-items:center;justify-content:center;z-index:9999;padding:0 10px;transition:opacity 0.4s ease}
.game-modal.show{opacity:1;pointer-events:auto;transition:opacity 0.4s 0.4s ease}
.game-modal .content{padding:30px;max-width:420px;width:100%;border-radius:10px;background:#fff;text-align:center;box-shadow:0 10px 20px rgb(0 0 0 / .1)}
.game-modal img{max-width:130px;margin-bottom:20px}
.game-modal img[src="img/victory.gif"]{margin-left:-10px}
.game-modal h4{font-size:1.53rem}
.game-modal p{font-size:1.15rem;margin:15px 0 30px;font-weight:500}
.game-modal p b{color:#5E63BA;font-weight:600}
.game-modal button{padding:12px 23px}
.difficulty{display: flex;flex-direction: column;align-items: center;margin-top: 2rem;}
@media (max-width:782px){
.container{padding:1.80rem .94rem;align-items:center}
.hangman-box img{max-width:200px}
.game-box h4{font-size:1rem}
.word-display .letter{margin-bottom:35px;font-size:1.7rem}
.word-display .letter.guessed{margin:-35px 0 25px}
.game-modal img{max-width:120px}
.game-modal h4{font-size:1.45rem}
.game-modal p{font-size:1.1rem}
.game-modal button{padding:10px 18px}
}
</style></head>
<body>
<div class="game-modal"><div class="content"><img src="#" alt="gif"><h4>Kaybettin!</h4><p>Doğru kelime:<b>kelime</b></p><button class="play-again">Tekrar Oyna</button></div></div><div class="container"><div class="border_1"><div class="title"><h1>Adam Asmaca Oyunu</h1></div><div id="scoreboard">Skor: <span id="score">0</span></div></div><div class="border_2"><div class="hangman-box"><img src="#" draggable="false" alt="hangman-img">
</div><div class="game-box"><ul class="word-display"></ul><h4 class="hint-text">İpucu:<b></b></h4><h4 class="guesses-text">Yanlış tahminler:<b></b></h4><div class="keyboard"></div></div>
<div class="difficulty">
<h2>Select Difficulty :</h2>
<select id="wordlistSelector">
<option value="/JAVASCRIPT/word-list-tr_1.js" selected>Easy</option>
<option value="/JAVASCRIPT/word-list-tr_2.js">Medium</option>
<option value="/JAVASCRIPT/word-list-tr_3.js">Hard</option>
</select>
<script src="/JAVASCRIPT/word-list-tr_1.js" data-wordlist="true"></script>
</div>
</div></div>
<script>
window.addEventListener("DOMContentLoaded", () => {const selector = document.getElementById("wordlistSelector");selector.selectedIndex = 0;});const selector = document.getElementById("wordlistSelector");function loadWordlist(src) {return new Promise((resolve, reject) => {document.querySelectorAll("script[data-wordlist]").forEach(el => el.remove());const script = document.createElement("script");script.src = src;script.setAttribute("data-wordlist", "true");script.onload = () => resolve();script.onerror = () => reject(new Error("Script yüklenemedi: " + src));document.body.appendChild(script);});}selector.addEventListener("change", async function() {if (this.value) {try {await loadWordlist(this.value);score = 0;scoreDisplay.innerText = score;getRandomWord(); console.log("Yeni wordlist yüklendi:", this.value);} catch (e) {console.error(e);}}});
const wordDisplay=document.querySelector(".word-display"),guessesText=document.querySelector(".guesses-text b"),keyboardDiv=document.querySelector(".keyboard"),hangmanImage=document.querySelector(".hangman-box img"),gameModal=document.querySelector(".game-modal"),playAgainBtn=gameModal.querySelector("button");
let currentWord,correctLetters,wrongGuessCount;
const maxGuesses=6;
score = 0; // Skor değişkeni
const scoreDisplay = document.getElementById("score");
const resetGame=()=>{correctLetters=[];wrongGuessCount=0;hangmanImage.src="img/hangman-0.svg";guessesText.innerText=`${wrongGuessCount} / ${maxGuesses}`;wordDisplay.innerHTML=currentWord.split("").map(() => '<li class="letter"></li>').join("");keyboardDiv.querySelectorAll("button").forEach(btn => btn.disabled=false);gameModal.classList.remove("show");}
const getRandomWord=()=>{const {word,hint} = wordList[Math.floor(Math.random()*wordList.length)];currentWord=word;document.querySelector(".hint-text b").innerText=hint;resetGame();}
const gameOver=(isWin)=>{if(isWin){score++;scoreDisplay.innerText = score;}else{score = 0;scoreDisplay.innerText = score;}const text=isWin?"Kelimeyi buldun:":"Doğru kelime:";gameModal.querySelector("img").src=`img/${isWin?"victory":"lost"}.gif`;gameModal.querySelector("h4").innerText=isWin?"Tebrikler!":"Kaybettin!";gameModal.querySelector("p").innerHTML=`${text} <b>${currentWord}</b>`;gameModal.classList.add("show");}
const initGame=(button,clickedLetter)=>{if(currentWord.includes(clickedLetter)){[...currentWord].forEach((letter,index)=>{if(letter===clickedLetter){correctLetters.push(letter);wordDisplay.querySelectorAll("li")[index].innerText=letter;wordDisplay.querySelectorAll("li")[index].classList.add("guessed");}});} else {wrongGuessCount++;hangmanImage.src=`img/hangman-${wrongGuessCount}.svg`;}button.disabled=true;guessesText.innerText=`${wrongGuessCount} / ${maxGuesses}`;if(wrongGuessCount===maxGuesses) return gameOver(false);if(correctLetters.length===currentWord.length) return gameOver(true);}
// İngilizce harfler
for(let e=97;e<=122;e++){const btn=document.createElement("button");const char = String.fromCharCode(e);btn.innerText=String.fromCharCode(e);btn.setAttribute("aria-label", `${char} harfi`);keyboardDiv.appendChild(btn);btn.addEventListener("click",()=>initGame(btn,String.fromCharCode(e)));}
// Türkçe karakterler
const turkishChars=["ç","ğ","ı","ö","ş","ü"];turkishChars.forEach(char=>{const btn=document.createElement("button");btn.innerText=char;btn.setAttribute("aria-label", `${char} harfi`);keyboardDiv.appendChild(btn);btn.addEventListener("click",()=>initGame(btn,char));});
getRandomWord();playAgainBtn.addEventListener("click",getRandomWord);</script></body></html>