En este tutorial, vamos a construir una aplicación divertida de adivinanzas donde los usuarios pueden intentar adivinar objetos, animales o cualquier cosa que quieran.
La gracia es que la app usará la API de ChatGPT para dar pistas creativas y a veces desafiantes.
Paso 1: Configura tu Proyecto de React
- Crea un nuevo proyecto de React:
npx create-react-app adivinanzas-react cd adivinanzas-react
- Instala Axios para realizar peticiones HTTP:
npm install axios
- Prepara el entorno de la API de OpenAI:
Crea un archivo.env
para guardar tus claves API:
REACT_APP_OPENAI_API_KEY=tu_clave_de_api_aqui
Paso 2: Diseña el Componente Principal
Crea el componente principal App.js
para manejar la lógica básica de la aplicación:
import React, { useState } from 'react'; import axios from 'axios'; function App() { const [adivinanza, setAdivinanza] = useState(''); const [respuesta, setRespuesta] = useState(''); const [pistas, setPistas] = useState([]); const obtenerPistas = async () => { const prompt = `Dame tres pistas para que alguien adivine la siguiente palabra: ${adivinanza}`; try { const response = await axios.post( 'https://api.openai.com/v1/completions', { model: "text-davinci-003", prompt, max_tokens: 60 }, { headers: { Authorization: `Bearer ${process.env.REACT_APP_OPENAI_API_KEY}`, }, } ); const pistasGeneradas = response.data.choices[0].text.trim().split('\n'); setPistas(pistasGeneradas); } catch (error) { console.error("Error al obtener pistas:", error); } }; return ( <div className="App"> <h1>Adivina la Palabra</h1> <input type="text" value={adivinanza} onChange={(e) => setAdivinanza(e.target.value)} placeholder="Escribe una palabra..." /> <button onClick={obtenerPistas}>Obtener Pistas</button> <div> <h2>Pistas</h2> {pistas.map((pista, index) => ( <p key={index}>{pista}</p> ))} </div> <input type="text" value={respuesta} onChange={(e) => setRespuesta(e.target.value)} placeholder="¿Cuál es tu respuesta?" /> <button onClick={() => alert(respuesta === adivinanza ? '¡Correcto!' : 'Sigue intentando')}> Adivinar </button> </div> ); } export default App;
Paso 3: Conecta con la API de OpenAI
- Asegúrate de tener tu clave API de OpenAI lista. Si no la tienes, crea una cuenta en OpenAI.
- Agrega la clave API en tu archivo
.env
como se mencionó anteriormente.
Paso 4: Estiliza la Aplicación
Agrega algo de estilo para que la aplicación sea visualmente atractiva. En el archivo App.css
:
.App { text-align: center; background-color: #f5f5f5; padding: 50px; border-radius: 10px; width: 400px; margin: 50px auto; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); } input { padding: 10px; margin: 10px 0; width: 100%; border-radius: 5px; border: 1px solid #ddd; } button { padding: 10px 20px; background-color: #007BFF; color: white; border: none; border-radius: 5px; cursor: pointer; } button:hover { background-color: #0056b3; } h2 { margin-top: 20px; }
Paso 5: Hazlo Viral
Para darle ese toque viral, puedes agregar algunas características extra:
- Pistas interactivas: Cada pista puede tener un botón de «Revelar» que el usuario puede usar para obtener una nueva pista.
- Comparte los resultados: Permite a los usuarios compartir el juego en redes sociales con un botón de «Desafía a tus amigos».
- Leaderboards: Implementa un sistema de puntos para ver quién adivina más rápido las palabras.
- Modo de duelo: Permite que dos personas jueguen al mismo tiempo con una palabra oculta y compitan por quién adivina primero.
Paso 6: Despliega la App
Despliega la app en plataformas como Netlify o Vercel. Puedes hacerlo en minutos con un simple comando:
npm run build
Sigue las instrucciones en la plataforma elegida para subir tu proyecto y ¡compártelo con el mundo!
Ingeniero en Informática, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.