🌐
50 React Coding Puzzles
  • 50 React Coding Puzzles
  • Contact
  • Reviews
  • Table of Contents
  • Introduction
  • 1 - Simple Counter App
  • 2 - Dynamic List of Items with Strikethrough
  • 3 - Color Picker with Hex Code Display
  • 4 - Password Strength Checker
  • 5 - Countdown Timer with Audio
  • 6 - Dynamic Movie List with Filtering and Sorting
  • 7 - Text Animation Component (Fade/Scroll)
  • 8 - Dynamically Generated Text Art
  • 9 - Meme Generator with Custom Text
  • 10 - "What Should I Eat?" Random Recipe Generator
  • 11 - Simple Quiz App with Multiple Choice
  • 12 - Unit Converter
  • 13 - Dynamic Image Gallery with Lightbox
  • 14 - Weather Widget with Temperature and Description
  • 15 - Contact Form with Email and Message Validation
  • 16 - Color Palette Generator
  • 17 - Drag-and-Drop Feature for Rearranging Items
  • 18 - Interactive Quiz with Dynamic Results and Feedback
  • 19 - To-Do List with Task Categorization
  • 20 - Note-Taking App with Markdown Support
  • 21 - Simple Calculator with Basic Operations
  • 22 - Word Scramble Game with Timer and Score
  • 23 - Number Guessing Game
  • 24 - Digital Clock with Time Zone Support
  • 25 - Interactive Time Zone Converter
  • 26 - Weather Forecast App with Location Detection
  • 27 - Real-Time Stock Ticker with Updates
  • 28 - Virtual Dice Roller with Multiple Dice
  • 29 - Responsive Navigation Menu with Dropdowns
  • 30 - Progress Bar for Loading or Task Completion
  • 31 - Modal Window for Alerts and Confirmations
  • 32 - Infinite Scroll for Loading More Content
  • 33 - Form Validation with Error Messages
  • 34 - Search Bar with Filtering and Suggestions
  • 35 - Drag-and-Drop File Upload
  • 36 - Interactive Color Picker with Sliders
  • 37 - Image Carousel with Autoplay
  • 38 - Rating System with Stars or Thumbs Up/Down
  • 39 - Comment Section with Nested Replies
  • 40 - Pagination for Long Lists of Data
  • 41 - Stopwatch app that tracks elapsed time
  • 42 - Responsive E-commerce Product Grid
  • 43 - Random Movie/Book Recommender
  • 44 - Kanban board for managing tasks with drag-and-drop
  • 45 - Chat application with real-time messaging using WebSockets
  • 46 - Calendar that displays events and allows scheduling
  • 47 - Tic-Tac-Toe Game
  • 48 - Hangman Game
  • 49 - Notes App
  • 50 - Expense Tracker
  • Afterword
  • Appendix
Powered by GitBook
On this page
  • Description
  • Algorithm
  • Classes
  • Code
  • Explanation
  • Possible Future Enhancements

23 - Number Guessing Game

Description

Create a React application that generates a random number between a user-defined minimum and maximum, provides an input field for user guesses, offers feedback based on the guess (higher, lower, correct), and tracks the number of attempts and displays it for further engagement.

Algorithm

  1. Create a state variable to store the random number, user guesses, and number of attempts.

  2. Define a function to generate a random number between the user-defined minimum and maximum.

  3. Define a function to handle user input (guesses).

  4. Define a function to provide feedback based on the guess (higher, lower, correct).

  5. Define a function to update the number of attempts.

  6. Render the input field, feedback message, and number of attempts.

Classes

  • NumberGuessingGame: A component that represents the number guessing game.

  • GuessInput: A component that represents the user input field.

Code

NumberGuessingGame.js

import React, { useState } from 'react';
import GuessInput from './GuessInput';

function NumberGuessingGame() {
  const [randomNumber, setRandomNumber] = useState(generateRandomNumber(min, max));
  const [userGuess, setUserGuess] = useState('');
  const [attempts, setAttempts] = useState(0);
  const [feedback, setFeedback] = useState('');

  const handleGuess = (guess) => {
    const userGuess = parseInt(guess);
    const feedback = getFeedback(userGuess, randomNumber);
    setUserGuess(userGuess);
    setFeedback(feedback);
    updateAttempts();
  };

  const updateAttempts = () => {
    setAttempts(attempts + 1);
  };

  const getFeedback = (guess, randomNumber) => {
    if (guess === randomNumber) {
      return 'Correct!';
    } else if (guess > randomNumber) {
      return 'Higher!';
    } else {
      return 'Lower!';
    }
  };

  const generateRandomNumber = (min, max) => {
    return Math.floor(Math.random() * (max - min + 1)) + min;
  };

  return (
    <div>
      <h2>Number Guessing Game</h2>
      <GuessInput onGuess={handleGuess} />
      <p>Feedback: {feedback}</p>
      <p>Attempts: {attempts}</p>
    </div>
  );
}

export default NumberGuessingGame;

GuessInput.js

import React from 'react';

function GuessInput({ onGuess }) {
  const [guess, setGuess] = useState('');

  const handleInput = (event) => {
    const guess = event.target.value;
    setGuess(guess);
    onGuess(guess);
  };

  return (
    <input
      type="number"
      value={guess}
      onChange={handleInput}
    />
  );
}

export default GuessInput;

Explanation

The NumberGuessingGame component renders the input field, feedback message, and number of attempts. The GuessInput component represents the user input field. The handleGuess function handles user input (guesses). The getFeedback function provides feedback based on the guess (higher, lower, correct). The updateAttempts function updates the number of attempts. The generateRandomNumber function generates a random number between the user-defined minimum and maximum.

Possible Future Enhancements

  • Add more features to the game (e.g., multiple levels, bonus rounds).

  • Improve the user interface and user experience.

  • Add support for multiple players.

  • Display the correct answer after the game is over.

  • Allow users to save and load their progress.

Previous22 - Word Scramble Game with Timer and ScoreNext24 - Digital Clock with Time Zone Support

Last updated 10 months ago