<!-- CODE = #A071 --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>NETBYZZ A071</title> <link rel="stylesheet" href="style.css"> </head> <body> <section class="container"> <div class="result_field"> <div class="result_images"> <span class="user_result"> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9UMe2YpdMG2gYlnKnnsxL7Uq4Q1hvwSo_HtcPqECzPzHcEZ4pePcSSX8RBmMLsIPUX_VP2-n2aqfK-sfXbxG8PpUwrW9joCbzcr_1auirzZhNswaxgh-hmaXsixNO0R0F-d2Fo9LSEkFhI7BTgk2ky472S9YGbXrxXl94xEUw94ppth-n_DsD1O1f_p4/s1600/rock.png" alt="" /> </span> <span class="cpu_result"> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9UMe2YpdMG2gYlnKnnsxL7Uq4Q1hvwSo_HtcPqECzPzHcEZ4pePcSSX8RBmMLsIPUX_VP2-n2aqfK-sfXbxG8PpUwrW9joCbzcr_1auirzZhNswaxgh-hmaXsixNO0R0F-d2Fo9LSEkFhI7BTgk2ky472S9YGbXrxXl94xEUw94ppth-n_DsD1O1f_p4/s1600/rock.png" alt="" /> </span> </div> <div class="result">Let's Play!!</div> </div> <div class="option_images"> <span class="option_image"> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9UMe2YpdMG2gYlnKnnsxL7Uq4Q1hvwSo_HtcPqECzPzHcEZ4pePcSSX8RBmMLsIPUX_VP2-n2aqfK-sfXbxG8PpUwrW9joCbzcr_1auirzZhNswaxgh-hmaXsixNO0R0F-d2Fo9LSEkFhI7BTgk2ky472S9YGbXrxXl94xEUw94ppth-n_DsD1O1f_p4/s1600/rock.png" alt="" /> <p>Rock </p> </span> <span class="option_image"> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcWaNlDjL-xu5fSLyryG62CxGOterNYEL0YL-fi1c5zcusZRT1M9plmQ6KP2uV5mF3mBeCmvnvr1nPPznW9DoaOJLc73HgOhz0XagkmCoijvExTSo8rMlJmqWvPZX5Wpe_cTm0yK_MQfp22GoqADSht13fwlgiDU9Z18GVCYK5-IfNeZc9PCmTMZlxf6A/s1600/paper.png" alt="" /> <p>Paper </p> </span> <span class="option_image"> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirmnOWhbkicgijVeiBjkiUXylJkRS2QuN2fIz3UBNTTVpRAbxE9SCjeoBcLT0HAP0e0BLmeYhuGOrrPrPDkKbWEtAzTo2Ugc9alYoiLeNroQZvH-mrQ_xdvjUXyf7qJ4Cy6ws5H646YqKhHv6zF59QIJYutMuo7D0qRRVDShIjqxWh3dtL9F8-RquCT9A/s1600/scissors.png" alt="" /> <p>Scissors </p> </span> </div> </section> <script src="script.js"></script> </body> </html>
/* Import Google font - Poppins */ @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap"); * { margin: 0; padding: 0; box-sizing: border-box; font-family: "Poppins", sans-serif; } body { height: 100vh; display: flex; align-items: center; justify-content: center; background: #f6f7fb; } ::selection { color: #fff; background-color: #7d2ae8; } .container { padding: 2rem 7rem; border-radius: 14px; background: #fff; box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1); } .result_images { display: flex; column-gap: 7rem; } .container.start .user_result { transform-origin: left; animation: userShake 0.7s ease infinite; } @keyframes userShake { 50% { transform: rotate(10deg); } } .container.start .cpu_result { transform-origin: right; animation: cpuShake 0.7s ease infinite; } @keyframes cpuShake { 50% { transform: rotate(-10deg); } } .result_images img { width: 100px; } .user_result img { transform: rotate(90deg); } .cpu_result img { transform: rotate(-90deg) rotateY(180deg); } .result { text-align: center; font-size: 2rem; color: #7d2ae8; margin-top: 1.5rem; } .option_image img { width: 50px; } .option_images { display: flex; align-items: center; margin-top: 2.5rem; justify-content: space-between; } .container.start .option_images { pointer-events: none; } .option_image { display: flex; flex-direction: column; align-items: center; opacity: 0.5; cursor: pointer; transition: opacity 0.3s ease; } .option_image:hover { opacity: 1; } .option_image.active { opacity: 1; } .option_image img { pointer-events: none; } .option_image p { color: #7d2ae8; font-size: 1.235rem; margin-top: 1rem; pointer-events: none; }
// Get to DOM elements const gameContainer = document.querySelector(".container"), userResult = document.querySelector(".user_result img"), cpuResult = document.querySelector(".cpu_result img"), result = document.querySelector(".result"), optionImages = document.querySelectorAll(".option_image"); // Loop through each option image element optionImages.forEach((image, index) => { image.addEventListener("click", (e) => { image.classList.add("active"); userResult.src = cpuResult.src = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9UMe2YpdMG2gYlnKnnsxL7Uq4Q1hvwSo_HtcPqECzPzHcEZ4pePcSSX8RBmMLsIPUX_VP2-n2aqfK-sfXbxG8PpUwrW9joCbzcr_1auirzZhNswaxgh-hmaXsixNO0R0F-d2Fo9LSEkFhI7BTgk2ky472S9YGbXrxXl94xEUw94ppth-n_DsD1O1f_p4/s1600/rock.png"; result.textContent = "Wait..."; // Loop through each option image again optionImages.forEach((image2, index2) => { // If the current index doesn't match the clicked index // Remove the "active" class from the other option images index !== index2 && image2.classList.remove("active"); }); gameContainer.classList.add("start"); // Set a timeout to delay the result calculation let time = setTimeout(() => { gameContainer.classList.remove("start"); // Get the source of the clicked option image let imageSrc = e.target.querySelector("img").src; // Set the user image to the clicked option image userResult.src = imageSrc; // Generate a random number between 0 and 2 let randomNumber = Math.floor(Math.random() * 3); // Create an array of CPU image options let cpuImages = [ "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9UMe2YpdMG2gYlnKnnsxL7Uq4Q1hvwSo_HtcPqECzPzHcEZ4pePcSSX8RBmMLsIPUX_VP2-n2aqfK-sfXbxG8PpUwrW9joCbzcr_1auirzZhNswaxgh-hmaXsixNO0R0F-d2Fo9LSEkFhI7BTgk2ky472S9YGbXrxXl94xEUw94ppth-n_DsD1O1f_p4/s1600/rock.png", "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcWaNlDjL-xu5fSLyryG62CxGOterNYEL0YL-fi1c5zcusZRT1M9plmQ6KP2uV5mF3mBeCmvnvr1nPPznW9DoaOJLc73HgOhz0XagkmCoijvExTSo8rMlJmqWvPZX5Wpe_cTm0yK_MQfp22GoqADSht13fwlgiDU9Z18GVCYK5-IfNeZc9PCmTMZlxf6A/s1600/paper.png", "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirmnOWhbkicgijVeiBjkiUXylJkRS2QuN2fIz3UBNTTVpRAbxE9SCjeoBcLT0HAP0e0BLmeYhuGOrrPrPDkKbWEtAzTo2Ugc9alYoiLeNroQZvH-mrQ_xdvjUXyf7qJ4Cy6ws5H646YqKhHv6zF59QIJYutMuo7D0qRRVDShIjqxWh3dtL9F8-RquCT9A/s1600/scissors.png", ]; // Set the CPU image to a random option from the array cpuResult.src = cpuImages[randomNumber]; // Assign a letter value to the CPU option (R for rock, P for paper, S for scissors) let cpuValue = ["R", "P", "S"][randomNumber]; // Assign a letter value to the clicked option (based on index) let userValue = ["R", "P", "S"][index]; // Create an object with all possible outcomes let outcomes = { RR: "Draw", RP: "Cpu", RS: "User", PP: "Draw", PR: "User", PS: "Cpu", SS: "Draw", SR: "Cpu", SP: "User", }; // Look up the outcome value based on user and CPU options let outComeValue = outcomes[userValue + cpuValue]; // Display the result result.textContent = userValue === cpuValue ? "Match Draw" : `${outComeValue} Won!!`; }, 2500); }); });