Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Hacker Terminal: The Idiot Test</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
| <style> | |
| @keyframes blink { | |
| 0%, 100% { opacity: 1; } | |
| 50% { opacity: 0; } | |
| } | |
| .blink { | |
| animation: blink 1s step-end infinite; | |
| } | |
| .typewriter { | |
| overflow: hidden; | |
| white-space: nowrap; | |
| margin: 0 auto; | |
| letter-spacing: 1px; | |
| animation: typing 3.5s steps(40, end); | |
| } | |
| @keyframes typing { | |
| from { width: 0 } | |
| to { width: 100% } | |
| } | |
| .scanline { | |
| position: absolute; | |
| width: 100%; | |
| height: 100px; | |
| background: linear-gradient( | |
| 0deg, | |
| rgba(0, 255, 0, 0) 0%, | |
| rgba(0, 255, 51, 0.1) 50%, | |
| rgba(0, 255, 0, 0) 100% | |
| ); | |
| animation: scan 8s linear infinite; | |
| pointer-events: none; | |
| } | |
| @keyframes scan { | |
| 0% { | |
| top: -100px; | |
| } | |
| 100% { | |
| top: 100%; | |
| } | |
| } | |
| .glitch { | |
| position: relative; | |
| } | |
| .glitch::before, .glitch::after { | |
| content: attr(data-text); | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| } | |
| .glitch::before { | |
| color: #0ff; | |
| z-index: -1; | |
| animation: glitch-effect 3s infinite; | |
| } | |
| .glitch::after { | |
| color: #f0f; | |
| z-index: -2; | |
| animation: glitch-effect 2s infinite reverse; | |
| } | |
| @keyframes glitch-effect { | |
| 0% { transform: translate(0); } | |
| 20% { transform: translate(-2px, 2px); } | |
| 40% { transform: translate(-2px, -2px); } | |
| 60% { transform: translate(2px, 2px); } | |
| 80% { transform: translate(2px, -2px); } | |
| 100% { transform: translate(0); } | |
| } | |
| .console-text { | |
| font-family: 'Courier New', monospace; | |
| text-shadow: 0 0 5px rgba(0, 255, 0, 0.7); | |
| } | |
| </style> | |
| </head> | |
| <body class="bg-black text-green-500 min-h-screen" onload="startTerminal()"> | |
| <div class="scanline"></div> | |
| <div class="container mx-auto px-4 py-8 max-w-4xl"> | |
| <div class="border-2 border-green-500 rounded-lg p-4 bg-black bg-opacity-80 shadow-lg shadow-green-500/20"> | |
| <!-- Terminal Header --> | |
| <div class="flex items-center mb-4 border-b border-green-800 pb-2"> | |
| <div class="flex space-x-1 mr-4"> | |
| <div class="w-3 h-3 rounded-full bg-red-500"></div> | |
| <div class="w-3 h-3 rounded-full bg-yellow-500"></div> | |
| <div class="w-3 h-3 rounded-full bg-green-500"></div> | |
| </div> | |
| <div class="flex-1 text-center"> | |
| <h1 class="glitch font-bold text-xl console-text" data-text="IDIOT_TEST.EXE">IDIOT_TEST.EXE</h1> | |
| </div> | |
| <div class="text-xs opacity-70"> | |
| <span id="time"></span> | |
| </div> | |
| </div> | |
| <!-- Terminal Content --> | |
| <div id="terminal" class="console-text overflow-y-auto max-h-96 mb-4 text-sm leading-relaxed"> | |
| <!-- Content will be dynamically generated by JavaScript --> | |
| </div> | |
| <!-- Input Area --> | |
| <div class="flex items-center border-t border-green-800 pt-3"> | |
| <span class="mr-2">><span class="blink">_</span></span> | |
| <input type="text" id="commandInput" class="flex-1 bg-black text-green-500 outline-none console-text px-2" | |
| autocomplete="off" spellcheck="false" onkeypress="handleCommand(event)"> | |
| <button onclick="submitCommand()" class="ml-2 bg-green-900 hover:bg-green-800 text-green-300 px-3 py-1 rounded"> | |
| <i class="fas fa-arrow-right"></i> | |
| </button> | |
| </div> | |
| </div> | |
| <div class="mt-4 text-xs text-green-700 text-center"> | |
| <p>WARNING: This system is protected. Unauthorized access is prohibited.</p> | |
| </div> | |
| </div> | |
| <script> | |
| // Questions database | |
| const questions = [ | |
| "What color is a red apple? (red/blue/green/yellow)", | |
| "If you have 2 apples and eat 1, how many apples do you have left?", | |
| "Which is heavier: a pound of feathers or a pound of bricks?", | |
| "Does a dog meow? (yes/no)", | |
| "How many legs does a typical chair have?", | |
| "What do you call the white part of an egg?", | |
| "Is the sky below the ground? (yes/no)", | |
| "What is 1+1? (be careful!)", | |
| "Which month comes after April?", | |
| "Do fish live in water? (yes/no)", | |
| "How many sides does a triangle have?", | |
| "What is the opposite of 'up'?", | |
| "Is fire hot or cold?", | |
| "What sound does a cow make?", | |
| "What do you wear on your feet?", | |
| "How many hours are in a day?", | |
| "What do you call the person who drives a bus?", | |
| "Which is bigger: an elephant or a mouse?", | |
| "What is the name of the planet we live on?", | |
| "Do plants need sunlight to grow? (yes/no)" | |
| ]; | |
| // Answers database | |
| const answers = [ | |
| "red", "1", "they weigh the same", "no", "4", "egg white", "no", "2", "May", "yes", | |
| "3", "down", "hot", "moo", "shoes", "24", "bus driver", "elephant", "Earth", "yes" | |
| ]; | |
| let currentQuestion = {}; | |
| let score = 0; | |
| let questionsAnswered = 0; | |
| let username = ""; | |
| let terminalState = "initial"; // initial, asking_name, test_in_progress, test_complete | |
| function updateClock() { | |
| const now = new Date(); | |
| document.getElementById('time').textContent = now.toLocaleTimeString(); | |
| } | |
| setInterval(updateClock, 1000); | |
| updateClock(); | |
| function startTerminal() { | |
| const terminal = document.getElementById('terminal'); | |
| terminal.innerHTML = ` | |
| <div class="typewriter mb-4"> | |
| > INITIALIZING SYSTEM...<br> | |
| > LOADING IDIOT TEST PROTOCOL...<br> | |
| > CONNECTING TO MATRIX...<br> | |
| > SYSTEM READY<br><br> | |
| </div> | |
| <div class="mb-2"> | |
| <span class="text-yellow-400">WELCOME TO THE ULTIMATE IDIOT TEST</span><br> | |
| This test will determine your intellectual capacity.<br> | |
| Answer carefully - your IQ rating depends on it. | |
| </div> | |
| <div class="mt-4 text-green-300"> | |
| Type <span class="text-yellow-400">'start'</span> to begin the test. | |
| </div> | |
| `; | |
| terminal.scrollTop = terminal.scrollHeight; | |
| } | |
| function handleCommand(e) { | |
| if (e.key === 'Enter') { | |
| submitCommand(); | |
| } | |
| } | |
| function submitCommand() { | |
| const input = document.getElementById('commandInput'); | |
| const command = input.value.trim(); | |
| input.value = ''; | |
| // Add command to terminal | |
| addToTerminal(`> ${command}`); | |
| // Process command | |
| switch(terminalState) { | |
| case "initial": | |
| if (command.toLowerCase() === 'start') { | |
| askForUsername(); | |
| } else if (command.toLowerCase() === 'help') { | |
| showHelp(); | |
| } else { | |
| addToTerminal('<span class="text-red-400">Invalid command. Type \'start\' to begin or \'help\' for assistance.</span>'); | |
| } | |
| break; | |
| case "asking_name": | |
| if (command.length > 0) { | |
| username = command; | |
| startTest(); | |
| } else { | |
| addToTerminal('<span class="text-red-400">Please enter a valid name.</span>'); | |
| } | |
| break; | |
| case "test_in_progress": | |
| processAnswer(command); | |
| break; | |
| case "test_complete": | |
| if (command.toLowerCase() === 'restart') { | |
| resetTest(); | |
| } else if (command.toLowerCase() === 'exit') { | |
| addToTerminal('> TERMINATING SESSION...'); | |
| setTimeout(() => { | |
| document.getElementById('terminal').innerHTML = '<div class="text-center py-4">TERMINAL SESSION ENDED</div>'; | |
| }, 1000); | |
| } else { | |
| addToTerminal('<span class="text-red-400">Type \'restart\' to take the test again or \'exit\' to quit.</span>'); | |
| } | |
| break; | |
| } | |
| } | |
| function addToTerminal(text) { | |
| const terminal = document.getElementById('terminal'); | |
| const newLine = document.createElement('div'); | |
| newLine.innerHTML = text; | |
| terminal.appendChild(newLine); | |
| terminal.scrollTop = terminal.scrollHeight; | |
| } | |
| function askForUsername() { | |
| terminalState = "asking_name"; | |
| addToTerminal('<br><span class="text-yellow-400">Please enter your name to begin the test:</span>'); | |
| } | |
| function showHelp() { | |
| addToTerminal(` | |
| <br><span class="text-yellow-400">HELP MENU:</span><br> | |
| <span class="text-green-300">Commands available:</span><br> | |
| - start: Begin the idiot test<br> | |
| - help: Show this help menu<br><br> | |
| <span class="text-green-300">Test instructions:</span><br> | |
| - Answer each question when prompted<br> | |
| - Your score will be calculated at the end<br> | |
| - Good luck... you'll need it | |
| `); | |
| } | |
| function startTest() { | |
| terminalState = "test_in_progress"; | |
| addToTerminal(`<br><span class="text-green-300">Welcome, ${username}.</span>`); | |
| addToTerminal('<span class="text-yellow-400">Starting test... prepare yourself.</span><br>'); | |
| askRandomQuestion(); | |
| } | |
| function askRandomQuestion() { | |
| const randomIndex = Math.floor(Math.random() * questions.length); | |
| currentQuestion = { | |
| index: randomIndex, | |
| text: questions[randomIndex] | |
| }; | |
| // Typewriter effect for question | |
| addToTerminal('<br>'); | |
| const questionLine = document.createElement('div'); | |
| questionLine.innerHTML = `<span class="text-cyan-300">${currentQuestion.text}</span>`; | |
| document.getElementById('terminal').appendChild(questionLine); | |
| terminal.scrollTop = terminal.scrollHeight; | |
| } | |
| function processAnswer(answer) { | |
| const correctAnswer = answers[currentQuestion.index].toString().toLowerCase(); | |
| const userAnswer = answer.toString().toLowerCase(); | |
| if (userAnswer === correctAnswer) { | |
| score++; | |
| addToTerminal('<span class="text-green-400">β Correct answer. You may not be a complete idiot.</span>'); | |
| } else { | |
| addToTerminal(`<span class="text-red-400">β Incorrect. The right answer was: ${correctAnswer}</span>`); | |
| } | |
| questionsAnswered++; | |
| // Remove asked question from pool | |
| questions.splice(currentQuestion.index, 1); | |
| answers.splice(currentQuestion.index, 1); | |
| if (questionsAnswered < 5 && questions.length > 0) { | |
| setTimeout(() => askRandomQuestion(), 1000); | |
| } else { | |
| finishTest(); | |
| } | |
| } | |
| function finishTest() { | |
| terminalState = "test_complete"; | |
| const percentage = Math.floor((score / questionsAnswered) * 100); | |
| let rating, ratingColor; | |
| if (percentage === 100) { | |
| rating = "GENIUS"; | |
| ratingColor = "text-blue-400"; | |
| } else if (percentage >= 80) { | |
| rating = "SMART"; | |
| ratingColor = "text-green-400"; | |
| } else if (percentage >= 50) { | |
| rating = "AVERAGE"; | |
| ratingColor = "text-yellow-400"; | |
| } else if (percentage >= 20) { | |
| rating = "BELOW AVERAGE"; | |
| ratingColor = "text-orange-400"; | |
| } else { | |
| rating = "IDIOT"; | |
| ratingColor = "text-red-400"; | |
| } | |
| addToTerminal(` | |
| <br><span class="text-yellow-400">TEST COMPLETE</span><br> | |
| <span class="text-green-300">Final score for ${username}:</span><br> | |
| - Correct answers: <span class="text-green-400">${score} out of ${questionsAnswered}</span><br> | |
| - Success rate: <span class="text-green-400">${percentage}%</span><br> | |
| - IQ rating: <span class="${ratingColor} font-bold">${rating}</span><br><br> | |
| <span class="text-yellow-400">Type 'restart' to try again or 'exit' to quit.</span> | |
| `); | |
| } | |
| function resetTest() { | |
| // Reset variables | |
| score = 0; | |
| questionsAnswered = 0; | |
| username = ""; | |
| // Reset questions (since we removed them during testing) | |
| questions = [ | |
| "What color is a red apple? (red/blue/green/yellow)", | |
| "If you have 2 apples and eat 1, how many apples do you have left?", | |
| "Which is heavier: a pound of feathers or a pound of bricks?", | |
| "Does a dog meow? (yes/no)", | |
| "How many legs does a typical chair have?", | |
| "What do you call the white part of an egg?", | |
| "Is the sky below the ground? (yes/no)", | |
| "What is 1+1? (be careful!)", | |
| "Which month comes after April?", | |
| "Do fish live in water? (yes/no)", | |
| "How many sides does a triangle have?", | |
| "What is the opposite of 'up'?", | |
| "Is fire hot or cold?", | |
| "What sound does a cow make?", | |
| "What do you wear on your feet?", | |
| "How many hours are in a day?", | |
| "What do you call the person who drives a bus?", | |
| "Which is bigger: an elephant or a mouse?", | |
| "What is the name of the planet we live on?", | |
| "Do plants need sunlight to grow? (yes/no)" | |
| ]; | |
| answers = [ | |
| "red", "1", "they weigh the same", "no", "4", "egg white", "no", "2", "May", "yes", | |
| "3", "down", "hot", "moo", "shoes", "24", "bus driver", "elephant", "Earth", "yes" | |
| ]; | |
| terminalState = "initial"; | |
| document.getElementById('terminal').innerHTML = ''; | |
| startTerminal(); | |
| } | |
| </script> | |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 𧬠<a href="https://enzostvs-deepsite.hf.space?remix=LULDev/idiot-test-web" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |