Copy Code
<style>
.bungkusnye {
display: flex;
flex-direction: column;
align-items: center;
}
.judulnye {text-align:center;
padding-bottom : 25px}
.bingkai {
background: #FFF;
color: black;
border-radius: 10px;
padding: 2em;
margin-top: 2em;
width: 90%;
max-width: 500px;
box-shadow: 0 0 10px rgba(0,0,0,0.3);
}
.status-bar {
display: flex;
justify-content: space-between;
margin-bottom: 1em;
}
.Objek-container {
font-size: 5em;
text-align: center;
}
#KeyBoard-container {
display: flex;
flex-wrap: wrap;
gap: 10px;
justify-content: center;
margin-bottom: 1em;
}
.KeyBoard {
width: 1.8em;
height: 1.8em;
font-size: 1.5em;
-webkit-box-shadow: 0 3.5px 11.5px -1.5px #a4a4a4;
-moz-box-shadow: 0 3.5px 11.5px -1.5px #a4a4a4;
box-shadow: 0 3.5px 11.5px -1.5px #a4a4a4;
cursor: pointer;
}
.KeyBoard:hover{
background:#3da1ff;
color: #FFF;
}
.used {
-webkit-box-shadow: 0 3.5px 0 -32px #a4a4a4;
-moz-box-shadow: 0 3.5px 0 -32px #a4a4a4;
box-shadow: 0 3.5px 0 -32px #a4a4a4;
cursor: not-allowed;
}
.inputSpace {
font-weight: bold;
}
#userInputSection {
display: flex;
justify-content: center;
gap: 10px;
margin-bottom: 1em;
}
#result {
font-size: 1.2em;
margin: 1em 0;
color: darkgreen;
text-align: center;
}
#start{width:100%;padding:10px;font-size:1em;font-weight:bold;border:none;border-radius:10px;background:#007bff;color:#fff;cursor:pointer;display:none;}
#start:hover{background:#0056b3}
#waktu {
font-weight: bold;
}
#nilai {
font-weight: bold;
}
#usaha {
font-weight: bold;
}
</style>
</head>
<body>
<div class="bungkusnye">
<div class="bingkai">
<h2 class="judulnye">Tebak Hewan</h2>
<div class="status-bar">
<div id="nilai">Skor: 0</div>
<div id="usaha">Percobaan: 5</div>
<div id="waktu">Waktu: 30s</div>
</div>
<div class="Objek-container" id="ObjekNye"></div>
<div id="userInputSection"></div>
<div id="KeyBoard-container"></div>
<div id="result"></div>
<button id="start">Main Lagi</button>
</div>
</div>
<script>
// array dari gambar objek dan textnya
const soal = {
"ðĶ": "Jerapah",
"ðĶŽ": "Banteng",
"ðĶ": "Zebra",
"ðĶ": "Rusa",
"ðĶ": "Kanguru",
"ðĶĨ": "Kungkang",
"ðĶŦ": "Berang Berang",
"ðŋ️": "Bajing",
"ðĶ": "Anjing Laut",
"ðĒ": "Kura Kura",
"ðͧ": "Orang Utan",
"ð": "Ular",
"ðĶ": "Kadal",
"ð
": "Harimau",
"ð": "Macan Tutul",
"ðŠ": "Unta",
"ð": "Gajah",
"ðĶ": "Badak",
"ðĶ": "Kuda Nil",
"ð": "Kambing",
"ð": "Domba",
"ð": "Kuda",
"ð": "Kerbau",
"ð": "Sapi",
"ð": "Babi",
"ðĶ": "Kelelawar",
"ð": "Monyet",
"ðĶ": "Gorila",
"ð": "Lebah",
"ð": "Ulat",
"ðĶ": "Kupu Kupu",
"ð": "Siput",
"ð": "Kumbang",
"ð": "Semut",
"ðŠą": "Cacing",
"ðŠģ": "Kecoa",
"ðĶ": "Jangkrik",
"ðĶ": "Kalajengking",
"ðĶ": "Nyamuk",
"ð": "Buaya",
"ð": "Paus",
"ðĶ": "Hiu",
"ðŽ": "Lumba Lumba",
"ðĶ": "Udang",
"ðĶ": "Kepiting",
"ðĶ": "Cumi Cumi",
"ð": "Gurita",
"ð": "Ayam",
"ðĶ
": "Rajawali",
"ðĶĒ": "Angsa",
"ðĶ": "Bebek",
"ðĶĐ": "Flamingo",
"ðĶ": "Kakatua",
"ðĶ": "Burung Hantu",
"ðĶ": "Merak",
"ð": "Anjing",
"ð": "Kucing",
"ð": "Kelinci",
"ð": "Tikus",
"ðĶĻ": "Sigung",
"ðĶĄ": "Luwak",
"ðĶ": "Landak",
"ðŠž": "Ubur Ubur",
"ð·": "Laba Laba",
"ðа": "Lalat",
"ð§": "Pinguin",
"ðĶŠ": "Kerang",
};
const SetDetik = 30; // set berapa detik waktu untuk menjawab
const SetNyawa = 5; // set berapa banyak percobaan yang tersedia dalam 1 jawaban
const NamaObjek = Object.keys(soal);
let usedHints = [];
let nilai = 0, lossCount = SetNyawa, winCount = 0, waktu = SetDetik, timerInterval;
let randomHint = "", randomWord = "";
const nilaiDisplay = document.getElementById("nilai");
const usahaDisplay = document.getElementById("usaha");
const waktuDisplay = document.getElementById("waktu");
const TampilinObjek = document.getElementById("ObjekNye");
const userInput = document.getElementById("userInputSection");
const KeyBoardContainer = document.getElementById("KeyBoard-container");
const resultDisplay = document.getElementById("result");
const startButton = document.getElementById("start");
function updateDisplays() {
nilaiDisplay.textContent = "Skor: " + nilai;
usahaDisplay.textContent = "Percobaan: " + lossCount;
waktuDisplay.textContent = "Waktu: " + waktu + " Detik";
}
function startwaktu() {
clearInterval(timerInterval);
waktu = SetDetik;
waktuDisplay.textContent = "Waktu: " + waktu + " Detik";
timerInterval = setInterval(() => {
waktu--;
waktuDisplay.textContent = "Waktu: " + waktu + " Detik";
if (waktu === 0) {
clearInterval(timerInterval);
Berakhir("⏰ Waktu Habis Bro!"); // set pernyataan kalo waktu abis dan tidak bisa jawab.
}
}, 1000);
}
function RandomObjek() {
if (usedHints.length === NamaObjek.length) usedHints = [];
let availableHints = NamaObjek.filter(h => !usedHints.includes(h));
randomHint = availableHints[Math.floor(Math.random() * availableHints.length)];
usedHints.push(randomHint);
randomWord = soal[randomHint];
}
function NamaHewan() {
userInput.innerHTML = "";
winCount = 0;
randomWord.split("").forEach(char => {
let span = document.createElement("span");
span.className = "inputSpace";
if (char === " ") {
span.textContent = " ";
winCount++;
} else {
span.textContent = "_";
}
userInput.appendChild(span);
});
}
function BuatKey() {
KeyBoardContainer.innerHTML = "";
for (let i = 65; i <= 90; i++) {
let btn = document.createElement("button");
btn.className = "KeyBoard";
btn.textContent = String.fromCharCode(i);
btn.addEventListener("click", handleGuess);
KeyBoardContainer.appendChild(btn);
}
}
function handleGuess(e) {
const btn = e.target;
const char = btn.textContent;
btn.classList.add("used");
btn.disabled = true;
let charArray = randomWord.toUpperCase().split("");
let inputSpaces = document.getElementsByClassName("inputSpace");
if (charArray.includes(char)) {
charArray.forEach((c, i) => {
if (c === char) {
inputSpaces[i].textContent = c;
winCount++;
}
});
if (winCount === charArray.length) {
clearInterval(timerInterval);
nilai++;
resultDisplay.textContent = "✅ Benar!"; // set kalau jawaban benar.
updateDisplays();
setTimeout(Lanjutin, 1000);
}
} else {
lossCount--;
updateDisplays();
if (lossCount === 0) {
clearInterval(timerInterval);
Berakhir("❌ Kamu Gagal Jawab!"); // set kalau gagal menjawab untuk beberapa kali perobaan.
}
}
}
function Lanjutin() {
resultDisplay.textContent = "";
lossCount = SetNyawa;
updateDisplays();
RandomObjek();
TampilinObjek.textContent = randomHint;
NamaHewan();
BuatKey();
startwaktu();
}
function Berakhir(message) {
resultDisplay.textContent = message;
KeyBoardContainer.innerHTML = "";
startButton.style.display = "inline-block";
startButton.onclick = () => {
nilai = 0;
lossCount = SetNyawa;
updateDisplays();
startButton.style.display = "none";
resultDisplay.textContent = "";
Lanjutin();
};
}
window.onload = () => {
updateDisplays();
Lanjutin();
};
</script>
</body>
Komentar
Posting Komentar