🌐
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

22 - Word Scramble Game with Timer and Score

Description

Create a React application that presents a word scramble game with a timer and score. The game should present a scrambled word, allow users to guess the word by typing letters, provide a timer that counts down as users play, and display the current score based on correct guesses and remaining time.

Algorithm

  1. Create a state variable to store the scrambled word, user guesses, timer, and score.

  2. Define a function to handle user input (letter guesses).

  3. Define a function to check if the user's guess is correct.

  4. Define a function to update the timer and score.

  5. Render the scrambled word, user input field, timer, and score.

Classes

  • WordScramble: A component that represents the word scramble game.

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

Code

WordScramble.js

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

function WordScramble() {
  const [scrambledWord, setScrambledWord] = useState('tgienr');
  const [userGuesses, setUserGuesses] = useState('');
  const [timer, setTimer] = useState(60);
  const [score, setScore] = useState(0);

  const handleGuess = (letter) => {
    const updatedUserGuesses = userGuesses + letter;
    setUserGuesses(updatedUserGuesses);
    checkGuess(updatedUserGuesses);
  };

  const checkGuess = (guess) => {
    if (guess === unscramble(scrambledWord)) {
      setScore(score + 1);
      setTimer(timer + 10);
    } else {
      setTimer(timer - 10);
    }
  };

  const updateTimer = () => {
    setTimer(timer - 1);
  };

  return (
    <div>
      <h2>Word Scramble</h2>
      <p>Scrambled Word: {scrambledWord}</p>
      <LetterInput onGuess={handleGuess} />
      <p>Timer: {timer}</p>
      <p>Score: {score}</p>
    </div>
  );
}

export default WordScramble;

LetterInput.js

import React from 'react';

function LetterInput({ onGuess }) {
  const [letter, setLetter] = useState('');

  const handleInput = (event) => {
    const letter = event.target.value;
    setLetter(letter);
    onGuess(letter);
  };

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

export default LetterInput;

Explanation

The WordScramble component renders the scrambled word, user input field, timer, and score. The LetterInput component represents the user input field. The handleGuess function handles user input (letter guesses). The checkGuess function checks if the user's guess is correct. The updateTimer function updates the timer and score.

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.

Previous21 - Simple Calculator with Basic OperationsNext23 - Number Guessing Game

Last updated 10 months ago