Creame un componente funcional de ReactJs de un juego que cuenta las palabras por minuto que tipeo. El usuario al clickear en play, ve una palabra en pantalla y en el input tiene que introducirla mientras el tiempo corre. En el submit, se suma la longitud de palabras al puntaje inicial (0) y al terminar el tiempo se debe mostrar cuantos puntos obtuvo.
Puedo ayudarte a crear un componente funcional de ReactJs de un juego que cuenta las palabras por minuto que tipeas. Para hacerlo, necesitas usar el hook useState para manejar el estado del juego, como el tiempo, el puntaje y la palabra actual. También necesitas usar un input y un botón para recibir la entrada del usuario y validarla. Aquí hay un ejemplo de código que puedes usar como referencia:

```js
import React, { useState } from react;

// Un componente funcional que muestra una palabra aleatoria y cuenta las palabras por minuto que tipea el usuario
function WordCountGame() {
  // Un array de palabras posibles
  const words = [hola, adios, casa, perro, gato];

  // El estado del juego: tiempo restante, puntaje y palabra actual
  const [timeLeft, setTimeLeft] = useState(60); // 60 segundos
  const [score, setScore] = useState(0); // Puntaje inicial
  const [word, setWord] = useState(getRandomWord()); // Palabra inicial

  // Una función que devuelve una palabra aleatoria del array
  function getRandomWord() {
    return words[Math.floor(Math.random() * words.length)];
  }

  // Una función que se ejecuta cuando el usuario hace click en el botón de jugar
  function handlePlay() {
    // Reiniciar el estado del juego
    setTimeLeft(60);
    setScore(0);
    setWord(getRandomWord());

    // Iniciar un intervalo que disminuye el tiempo cada segundo
    let timer = setInterval(() => {
      setTimeLeft((time) => time - 1);
    }, 1000);

    // Detener el intervalo cuando el tiempo llegue a cero
    setTimeout(() => {
      clearInterval(timer);
      alert(`Tu puntaje es ${score}`);
    }, 60000);
  }

  // Una función que se ejecuta cuando el usuario escribe en el input
  function handleChange(e) {
    let input = e.target.value; // El valor del input

    // Si el input coincide con la palabra actual, aumentar el puntaje y mostrar una nueva palabra
    if (input === word) {
      setScore((score) => score + word.length); // Aumentar el puntaje por la longitud de la palabra
      setWord(getRandomWord()); // Mostrar una nueva palabra
      e.target.value = ; // Limpiar el input
    }
  }

  return (
    <div className=game>
      <h1>¿Cuántas palabras puedes escribir en un minuto?</h1>
      <p>Tiempo restante: {timeLeft} segundos</p>
      <p>Puntaje: {score}</p>
      <p>Palabra: {word}</p>
      <input type=text onChange={handleChange} />
      <button onClick={handlePlay}>Jugar</button>
    </div>
  );
}

export default WordCountGame;
```