Una aplicación web educativa interactiva para aprender punteros en C++ con visualizaciones 3D y motor de animaciones WebAssembly.
- Diseño moderno con gradientes y efectos visuales
- Completamente responsive para desktop y móvil
- Modo oscuro con tema educativo
- Animaciones suaves y transiciones
- Three.js + React Three Fiber para renderizado 3D
- Visualización de memoria en tiempo real (Stack, Heap, Global)
- Punteros animados con efectos visuales
- Vista isométrica 3D para mejor comprensión espacial
- Controles de cámara para explorar la memoria
- Motor de animaciones de alto rendimiento en Rust/WebAssembly
- Procesamiento de memoria optimizado para miles de elementos
- Renderizado canvas acelerado para visualizaciones complejas
- API JavaScript binding para integración perfecta
- 120 lecciones organizadas por dificultad
- Código interactivo con syntax highlighting
- Ejemplos prácticos con explicaciones detalladas
- Sistema de progreso y logros
- Código C++ real con ejemplos ejecutables
- Punteros básicos (
T*,&,*) - Puntero nulo (
nullptr) y seguridad - Punteros colgantes (dangling pointers)
- Gestión de memoria (
new/delete,new[]/delete[]) - Smart pointers (
unique_ptr,shared_ptr,weak_ptr) - RAII y manejo de recursos
- Patrones de diseño con punteros
- Debugging y detección de errores
- Node.js 16+
- npm o yarn
- Rust 1.70+ (para compilar WebAssembly)
- wasm-pack (para build de WebAssembly)
- Clonar el repositorio
git clone https://github.com/yourusername/pointer-quest-web.git
cd pointer-quest-web- Instalar dependencias
npm install- Compilar motor WebAssembly (opcional)
cd pointer-quest-wasm
wasm-pack build --target web
cd ..- Iniciar servidor de desarrollo
npm start- Abrir navegador
http://localhost:3000
src/
├── components/ # Componentes React
│ ├── Navbar.tsx # Barra de navegación
│ ├── LessonList.tsx # Lista de lecciones
│ ├── LessonView.tsx # Vista individual de lección
│ ├── CodeEditor.tsx # Editor de código con highlighting
│ ├── MemoryVisualizer.tsx # Visualizador de memoria
│ ├── ErrorModal.tsx # Modal de errores
│ └── LoadingSpinner.tsx
├── 3d/ # Componentes 3D
│ └── MemoryVisualizer3D.tsx
├── context/ # Context API
│ └── AppContext.tsx # Estado global
├── types/ # Definiciones TypeScript
│ └── index.ts
├── pages/ # Páginas principales
└── hooks/ # Custom hooks
pointer-quest-wasm/
├── src/
│ └── lib.rs # Motor de animaciones
├── Cargo.toml # Dependencias Rust
└── pkg/ # Output compilado
- React 18 - UI framework
- TypeScript - Type safety
- Three.js - 3D graphics
- React Three Fiber - React renderer for Three.js
- @react-three/drei - Useful helpers for React Three Fiber
- styled-components - CSS-in-JS
- React Router - Client-side routing
- Rust 1.72 - Systems programming language
- wasm-bindgen - Rust/WebAssembly bindings
- web-sys - Web APIs bindings
- js-sys - JavaScript types in Rust
- Create React App - React app generator
- wasm-pack - Rust to WebAssembly compiler
- TypeScript Compiler - Type checking
- Mouse izquierdo + drag: Rotar vista
- Mouse wheel: Zoom in/out
- Mouse derecho + drag: Pan
- Click en elementos: Información detallada
- Hover: Highlight de elementos
- Teclas WASD: Navegación alternativa
La aplicación está diseñada para funcionar en:
- Desktop (1920x1080+)
- Laptop (1366x768+)
- Tablet (768x1024)
- Mobile (360x640+)
- Setup React + TypeScript
- Sistema básico de lecciones
- Visualización 3D con Three.js
- Motor WebAssembly en Rust
- UI moderna y responsive
- Más lecciones (21-120)
- Sistema de progreso persistente
- Tests unitarios
- PWA (Progressive Web App)
- Multiplayer educativo
- VR/AR support
- Integración con editores online
- Gamification avanzada
- Fork el proyecto
- Crear feature branch (
git checkout -b feature/AmazingFeature) - Commit cambios (
git commit -m 'Add some AmazingFeature') - Push al branch (
git push origin feature/AmazingFeature) - Abrir Pull Request
Este proyecto está bajo la Licencia MIT - ver archivo LICENSE para detalles.
- Three.js por la librería de gráficos 3D
- React por el framework de UI
- Rust por el lenguaje de sistemas
- WebAssembly por la portabilidad
⭐ ¡Si te gusta este proyecto, dale una estrella!
📚 Aprende punteros de forma divertida y visual
Hecho con ❤️ por el equipo de Pointer Quest