Skip to content
geeksforgeeks
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Tutorials
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
  • Practice
    • Build your AI Agent
    • GfG 160
    • Problem of the Day
    • Practice Coding Problems
    • GfG SDE Sheet
  • Contests
    • Accenture Hackathon (Ending Soon!)
    • GfG Weekly [Rated Contest]
    • Job-A-Thon Hiring Challenge
    • All Contests and Events
  • JS Tutorial
  • JS Exercise
  • JS Interview Questions
  • JS Array
  • JS String
  • JS Object
  • JS Operator
  • JS Date
  • JS Error
  • JS Projects
  • JS Set
  • JS Map
  • JS RegExp
  • JS Math
  • JS Number
  • JS Boolean
  • JS Examples
  • JS Free JS Course
  • JS A to Z Guide
  • JS Formatter
Open In App
Next Article:
Design Hit the Mouse Game using HTML, CSS and Vanilla Javascript
Next article icon

Simple HTML CSS and JavaScript Game

Last Updated : 31 Jul, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

Tap-the-Geek is a simple game, in which the player has to tap the moving GeeksForGeeks logo as many times as possible to increase their score. It has three levels easy, medium, and hard. The speed of the circle will be increased from level easy to hard. I bet, it is very difficult for the players to get a single score in the Hard level.

Why the game is simple?

The game is simple because, it is made up of  HTML, CSS, and Javascript only with very less lines of code. It uses simple CSS animation property to make the logo move and HTML DOM to do some actions like counting the number of taps made by the player to calculate the score and display it.

How to play the game?

One must simply tap the moving logo as much as one can. If you are using a laptop, it is best to use a mouse instead of the laptop’s touchpad to get a good experience. Try the different difficulties by changing the levels, refresh the page before switching between levels.

Implementation:

  • Divide the webpage into two sections, one is for the playing area and the other for the level selection and to display the score.
  • Create the logo as a div element and set a reasonable height and width for the div which makes the player comfortable to tap.
  • Set animation to move the logo to random directions using @keyframes. We will specify the left and top properties so that the logo moves to that location as the animation progresses.
  • The animation part is over, let’s add functionality to count the number of times the logo has clicked.
  • Finally, we can display the count as a score on the Score side. That’s it, our game is ready!

Example:

HTML
<!DOCTYPE html> <html lang="en">  <head>     <style>         body {             margin: 0px;             background: #000;         }          .crcl {             width: 80px;             height: 80px;             border-radius: 100%;             position: relative;             background-image: url( "https://media.geeksforgeeks.org/wp-content/cdn-uploads/gfg_200x200-min.png"                 );             background-size: cover;             animation: movement;         }          /* To set the positions for the logo         for the whole animation */         @keyframes movement {             0% {                 left: 0px;                 top: 0px             }              5% {                 left: 300px;                 top: 200px             }              10% {                 left: 600px;                 top: 100px             }              15% {                 left: 600px;                 top: 600px             }              20% {                 left: 300px;                 top: 600px             }              25% {                 left: 600px;                 top: 400px             }              30% {                 left: 100px;                 top: 0px             }              35% {                 left: 600px;                 top: 200px             }              40% {                 left: 100px;                 top: 500px             }              45% {                 left: 0px;                 top: 600px             }              50% {                 left: 600px;                 top: 600px             }              55% {                 left: 300px;                 top: 200px             }              60% {                 left: 600px;                 top: 100px             }              65% {                 left: 800px;                 top: 600px             }              70% {                 left: 300px;                 top: 600px             }              75% {                 left: 600px;                 top: 400px             }              80% {                 left: 100px;                 top: 0px             }              85% {                 left: 600px;                 top: 200px             }              90% {                 left: 100px;                 top: 500px             }              95% {                 left: 0px;                 top: 600px             }              100% {                 left: 600px;                 top: 200px;             }         }          .details {             float: right;             width: 400px;             height: 100vh;             position: relative;             background-color: rgb(6, 148, 25);             color: white;             display: block;             text-align: center;         }          .ground {             float: left;         }          .level {             display: flex;             margin: 10px;             margin-top: 25px;         }          .display_score {             margin-top: 25px;         }          button {             border-radius: 25px;             width: 8em;             height: 3em;             font-size: 20px;             border: 2px solid white;             background: transparent;             color: white;             margin: 10px;             cursor: pointer;         }          button:hover {             background-color: white;             color: rgb(6, 148, 25);             box-shadow: 0px 10px 20px 10px white;             transition-duration: 1s;         }     </style> </head>  <body>     <div class="ground">         <div id="circle" onclick="count()"></div>     </div>     <div class="details">         <h1>Tap The Geek</h1>         <h3>Click on a difficulty to start the game</h3>         <div class="level">             <button onclick="easy()">EASY</button>             <button onclick="medium()">MEDIUM</button>             <button onclick="hard()">HARD</button>         </div>         <div class="display_score">             <h2>Score</h2>             <h2 id="score">0</h2>         </div>         <button onclick="restart()">RESTART</button>     </div>      <script>          // Setting the level to Easy by having the         // duration of the whole animation to the maximum          function easy() {             document.getElementById('circle')                 .style.animationDuration = '20s';             document.getElementById('circle')                 .className = 'crcl';         }          // Setting the level to Medium by having the         // duration of the whole animation to the maximum          function medium() {             document.getElementById('circle')                 .style.animationDuration = '15s';             document.getElementById('circle')                 .className = 'crcl';         }          // Setting the level to Hard by having the         // duration of the whole animation to the maximum         function hard() {             document.getElementById('circle')                 .style.animationDuration = '12s';             document.getElementById('circle')                 .className = 'crcl';         }          let cnt = 0;          // Function to count the number of taps         // and display the score         function count() {             cnt = parseInt(1) + parseInt(cnt);             var scr = document.getElementById('score');             scr.innerHTML = cnt;         }          // Restart the game by refreshing the page         function restart() {             window.location.reload();         }     </script> </body>    </html> 

Output:

You can see the output of the project below:

https://media.geeksforgeeks.org/wp-content/uploads/20240726000704/111.mp4


Next Article
Design Hit the Mouse Game using HTML, CSS and Vanilla Javascript
author
ashwin13602
Improve
Article Tags :
  • Geeks Premier League
  • JavaScript
  • Web Technologies
  • Geeks-Premier-League-2022
  • JavaScript-Projects

Similar Reads

  • Create a snake game using HTML, CSS and JavaScript
    Snake Game is a single-player game where the snake gets bigger by eating the food and tries to save itself from the boundary of the rectangle and if the snake eats their own body the game will be over. Game Rules:If the snake goes out of the boundary or eats its own body the game will be over.Prereq
    4 min read
  • Design Dragon's World Game using HTML CSS and JavaScript
    Project Introduction: "Dragon's World" is a game in which one dragon tries to save itself from the other dragon by jumping over the dragon which comes in its way. The score is updated when one dragon saves himself from the other dragon. The project will contain HTML, CSS and JavaScript files. The HT
    6 min read
  • Word Guessing Game using HTML CSS and JavaScript
    In this article, we will see how can we implement a word-guessing game with the help of HTML, CSS, and JavaScript.  Here, we have provided a hint key & corresponding total number of gaps/spaces depending upon the length of the word and accept only a single letter as an input for each time. If it
    4 min read
  • Build a Memory Card Game Using HTML CSS and JavaScript
    A memory game is a type of game that can be used to test or check the memory of a human being. It is a very famous game. In this game, the player has some cards in front of him and all of them facing down initially. The player has to choose a pair of cards at one time and check whether the faces of
    6 min read
  • Create a Simon Game using HTML CSS & JavaScript
    In this article, we will see how to create a Simon Game using HTML, CSS, and JavaScript. In a Simon game, if the player succeeds, the series becomes progressively longer and more complex. Once the user is unable to repeat the designated order of the series at any point, the game is over. Prerequisit
    5 min read
  • Create a Minesweeper Game using HTML CSS & JavaScript
    Minesweeper is a classic puzzle game that challenges your logical thinking and deduction skills. It's a great project for developers looking to improve their front-end web development skills. In this article, we'll walk through the steps to create a Minesweeper game using HTML, CSS, and JavaScript.
    4 min read
  • Whack-a-Mole Game using HTML CSS and JavaScript
    Whack-A-Mole is a classic arcade-style game that combines speed and precision. The game is set in a grid of holes, and the objective is to "whack" or hit the moles that randomly pop up from these holes. In this article, we are going to create Whack-a-Mole using HTML, CSS and JavaScript. Preview Imag
    3 min read
  • Simple HTML CSS and JavaScript Game
    Tap-the-Geek is a simple game, in which the player has to tap the moving GeeksForGeeks logo as many times as possible to increase their score. It has three levels easy, medium, and hard. The speed of the circle will be increased from level easy to hard. I bet, it is very difficult for the players to
    4 min read
  • Design Hit the Mouse Game using HTML, CSS and Vanilla Javascript
    In this article, we are going to create a game in which a mouse comes out from the holes, and we hit the mouse with a hammer to gain points. It is designed using HTML, CSS & Vanilla JavaScript. HTML Code: First, we create an HTML file (index.html).Now, after creating the HTML file, we are going
    5 min read
  • Create a 2D Brick Breaker Game using HTML CSS and JavaScript
    In this article, we will see how to create a 2D Brick Breaker Game using HTML CSS & JavaScript. Most of you already played this game on your Mobile Phones where you control a paddle to bounce a ball, aiming to demolish a wall of bricks arranged at the top of the screen. 2D Brick Breaker Game is
    8 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences