djono66

script

Sep 6th, 2025 (edited)
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. document.addEventListener('DOMContentLoaded', () => {
  2.     let secretWord;
  3.     let selectedWordLength;
  4.     const words = [
  5.         "APPLE", "PEACE", "CANDY", "LIGHT", "HOUSE", "WATER", "PHONE", "TABLE", "CHAIR", "DREAM",
  6.         "HAPPY", "GREEN", "TIGER", "OCEAN", "MUSIC", "BRAIN", "CLOUD", "POWER", "FRESH", "GLOW",
  7.         "BEAUTY", "SILVER", "JOURNEY", "FANTASY", "WONDER", "EXPLORE", "MYSTERY", "ADVENTURE"
  8.     ];
  9.  
  10.     // Landing Page Elements
  11.     const landingPage = document.getElementById('landingPage');
  12.     const playerNameInput = document.getElementById('playerName');
  13.     const wordLengthSelect = document.getElementById('wordLength');
  14.     const startButton = document.getElementById('startButton');
  15.  
  16.     // Game Page Elements
  17.     const gamePage = document.getElementById('gamePage');
  18.     const welcomeMessage = document.getElementById('welcomeMessage');
  19.     const guessInput = document.getElementById('guessInput');
  20.     const guessButton = document.getElementById('guessButton');
  21.     const resetButton = document.getElementById('resetButton');
  22.     const messageDisplay = document.getElementById('message');
  23.     const correctPositionDisplay = document.getElementById('correctPosition');
  24.     const correctWrongPositionDisplay = document.getElementById('correctWrongPosition');
  25.     const wordLengthHint = document.getElementById('wordLengthHint');
  26.     const guessesList = document.getElementById('guessesList');
  27.  
  28.     function selectNewWord(length) {
  29.         const filteredWords = words.filter(word => word.length === length);
  30.         if (filteredWords.length === 0) {
  31.             alert('Maaf, tidak ada kata dengan jumlah huruf tersebut. Silakan pilih level lain.');
  32.             return;
  33.         }
  34.         secretWord = filteredWords[Math.floor(Math.random() * filteredWords.length)];
  35.         wordLengthHint.textContent = `Kata ini memiliki ${secretWord.length} huruf.`;
  36.         guessInput.setAttribute('maxlength', secretWord.length);
  37.         console.log("Kata rahasia:", secretWord);
  38.     }
  39.  
  40.     function addGuessToList(guess, correctInPlace, correctWrongPlace) {
  41.         const guessItem = document.createElement('div');
  42.         guessItem.classList.add('guess-item');
  43.        
  44.         const guessWord = document.createElement('span');
  45.         guessWord.classList.add('guess-word');
  46.         guessWord.textContent = guess;
  47.        
  48.         const guessFeedback = document.createElement('span');
  49.         guessFeedback.classList.add('guess-feedback');
  50.         guessFeedback.innerHTML = `✅ ${correctInPlace}   🟡 ${correctWrongPlace}`;
  51.        
  52.         guessItem.appendChild(guessWord);
  53.         guessItem.appendChild(guessFeedback);
  54.        
  55.         guessesList.prepend(guessItem);
  56.     }
  57.  
  58.     function checkGuess() {
  59.         const guess = guessInput.value.trim().toUpperCase();
  60.  
  61.         if (guess.length !== secretWord.length) {
  62.             messageDisplay.textContent = `Tebakan harus ${secretWord.length} huruf!`;
  63.             return;
  64.         }
  65.  
  66.         if (guess === secretWord) {
  67.             messageDisplay.textContent = '🥳 Selamat! Tebakanmu benar!';
  68.             addGuessToList(guess, secretWord.length, 0);
  69.             guessInput.value = '';
  70.             guessButton.disabled = true;
  71.             resetButton.style.display = 'block';
  72.             return;
  73.         }
  74.  
  75.         let correctInPlace = 0;
  76.         let correctWrongPlace = 0;
  77.         let tempSecretWord = secretWord.split('');
  78.         let tempGuess = guess.split('');
  79.  
  80.         for (let i = 0; i < secretWord.length; i++) {
  81.             if (i < guess.length && tempGuess[i] === tempSecretWord[i]) {
  82.                 correctInPlace++;
  83.                 tempSecretWord[i] = null;
  84.                 tempGuess[i] = null;
  85.             }
  86.         }
  87.  
  88.         for (let i = 0; i < guess.length; i++) {
  89.             if (tempGuess[i] !== null) {
  90.                 const secretIndex = tempSecretWord.indexOf(tempGuess[i]);
  91.                 if (secretIndex !== -1) {
  92.                     correctWrongPlace++;
  93.                     tempSecretWord[secretIndex] = null;
  94.                 }
  95.             }
  96.         }
  97.  
  98.         messageDisplay.textContent = 'Tebakanmu salah.';
  99.         correctPositionDisplay.textContent = `✅ Huruf benar di posisi yang tepat: ${correctInPlace}`;
  100.         correctWrongPositionDisplay.textContent = `🟡 Huruf benar di posisi yang salah: ${correctWrongPlace}`;
  101.        
  102.         addGuessToList(guess, correctInPlace, correctWrongPlace);
  103.         guessInput.value = '';
  104.     }
  105.  
  106.     function resetGame() {
  107.         messageDisplay.textContent = '';
  108.         correctPositionDisplay.textContent = '';
  109.         correctWrongPositionDisplay.textContent = '';
  110.         guessesList.innerHTML = '';
  111.         guessButton.disabled = false;
  112.         resetButton.style.display = 'none';
  113.        
  114.         selectNewWord(parseInt(selectedWordLength));
  115.     }
  116.  
  117.     startButton.addEventListener('click', () => {
  118.         const playerName = playerNameInput.value.trim();
  119.         if (playerName === '') {
  120.             alert('Silakan masukkan namamu untuk memulai!');
  121.             return;
  122.         }
  123.  
  124.         selectedWordLength = parseInt(wordLengthSelect.value);
  125.  
  126.         landingPage.classList.add('hidden');
  127.         gamePage.classList.remove('hidden');
  128.  
  129.         welcomeMessage.textContent = `Hai, ${playerName}! Selamat datang!`;
  130.         selectNewWord(selectedWordLength);
  131.     });
  132.  
  133.     guessButton.addEventListener('click', checkGuess);
  134.     guessInput.addEventListener('keypress', (e) => {
  135.         if (e.key === 'Enter') {
  136.             checkGuess();
  137.         }
  138.     });
  139.     resetButton.addEventListener('click', resetGame);
  140. });
Advertisement
Add Comment
Please, Sign In to add comment