ErickRV19 /
GameJS
Creacion de pagina con pequeños juegos en JS, creada solo con html, JavaScript y css
34/100 healthLoading repository data…
rogerio14698 / repository
Juego de HTML, CSS y JS | Entrega 6 DWEC
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Juego de rol basado en texto para el navegador, construido con JavaScript Vanilla ES Modules sin ningún framework. El jugador explora salas de una mazmorra, combate monstruos, compra equipo y busca ítems, hasta derrotar al jefe final.
El juego usa módulos ES nativos (type="module"), por lo que requiere un servidor HTTP local. No funciona abriendo los archivos directamente desde el explorador de archivos.
Con XAMPP (recomendado en Windows):
C:\xampp\htdocs\DWEC-JuegoROL-Tarea6\.http://localhost/DWEC-JuegoROL-Tarea6/ en el navegador.Con cualquier servidor estático (Node.js, Live Server de VS Code, etc.) también funciona.
index.html ← Portada del juego (SPA)
renderizarTemplatesExternos.js ← Lógica de la SPA de la portada
salas/entrada.html ← Página principal del juego
app.js ← Orquestador del juego
js/
mapa.js ← Definición del mapa y sus salas
personajes.js ← Datos del jugador, vendedor y monstruos
equipamentos.js ← Catálogo de armas y escudos
cargarTemplates.js ← Sistema de templates HTML
animacionesCombate.js ← Animaciones con Anime.js
acciones.js ← Punto de entrada de todos los módulos de acción
acciones/
shared.js ← Estado global y utilidades compartidas
sala.js ← Renderizar sala actual
movimiento.js ← Comandos de movimiento entre salas
combate.js ← Lógica del sistema de combate
tienda.js ← Comandos de tienda (comprar/vender)
busqueda.js ← Comando de búsqueda de ítems
pociones.js ← Comando de usar poción
equipamiento.js ← Comandos de equipar/desequipar
drop.js ← Comando de tirar ítems
salida.js ← Comando de salida/victoria final
mapaPanel.js ← Panel de mapa lateral
menu.js ← Menú de inventario/stats
uiHeroe.js ← Actualización de la UI del héroe
template/ ← Archivos HTML de plantillas
css/ ← Hojas de estilo modularizadas
img/ ← Imágenes del juego
El movimiento entre salas se resuelve siempre mediante el parámetro ?id=<número> en la URL. Cuando el jugador se mueve, app.js ejecuta:
window.location.href = `${pathname}?id=${destinoId}`;
Esto provoca una recarga completa de la página de juego con el nuevo id. No se usan rutas físicas de archivos HTML.
La portada es una SPA basada en hash: #home, #guia, #historial, #cargarPartida. Los enlaces usan data-vista="nombre" y se interceptan con delegación de eventos. No hay recarga de página al cambiar de sección.
app.js
└─ cargarTemplates.js → Inyecta templateMain y templateConsola en el DOM
└─ acciones.js → Registra el manejador de comandos en el input
└─ shared.js → Estado global (jugador, combate, mapa...)
└─ sala.js → Renderiza la sala actual
└─ movimiento.js → Norte/Sur/Este/Oeste
└─ combate.js → Atacar/Victoria de combate
└─ tienda.js → Comprar/Vender en la tienda
└─ busqueda.js → Buscar ítems ocultos
└─ pociones.js → Usar poción
└─ equipamiento.js → Equipar/Desequipar armas y escudos
└─ drop.js → Tirar ítem del inventario
└─ salida.js → Victoria final
└─ mapaPanel.js → Panel de mapa lateral
└─ menu.js → Panel de inventario y estadísticas
└─ uiHeroe.js → Barra de vida, oro, atributos, inventario visual
salas/entrada.html carga app.js como módulo.app.js llama a cargarTemplates() que descarga template/templateMain.html y template/templateConsola.html, los parsea y los inyecta en el DOM.localStorage (si existe) o inicializa el jugador desde cero.mostrarSala() para renderizar la sala actual según el ?id= de la URL.El mapa está definido en js/mapa.js con dos exportaciones:
idSalas: diccionario de nombres → números de sala (entrada: 1, salaJefe: 10, etc.). Se usa en todo el código en lugar de números mágicos.mapa: objeto con la información de cada sala. Cada sala tiene:
nombre y descripcion: textos que se muestran en pantalla.imagenSala: imagen de fondo del área de juego.ubicacion: objeto con cuatro direcciones (norte, sur, este, oeste). El valor es el id de la sala destino o -1 si hay una pared.probEnemigos: probabilidad (0–1) de que aparezca un monstruo al entrar.enemigos: array de ids de monstruos posibles en esa sala.oro: cantidad de oro que puede encontrarse en la sala.Definido en js/personajes.js mediante la función crearJugadorInicial(). Sus propiedades son:
| Propiedad | Valor inicial | Descripción |
|---|---|---|
salud | 300 + vida del escudo inicial | Puntos de vida |
ataque | 40 | Daño base |
defensa | 10 | Reducción de daño recibido |
fuerza | 15 | Bonus extra de daño |
oro | 50 | Moneda del juego |
nivel | 1 | Nivel actual (sube al acumular suficiente experiencia) |
experiencia | 0 | XP acumulada; al llegar a nivel × 100 se sube de nivel |
inventario | [] | Ítems recogidos |
equipado | { arma, escudo } | Equipo activo que modifica stats |
NPC especial que no combate. Su inventario incluye automáticamente todas las armas y escudos del catálogo (equipamentos.js) más pociones.
Array de objetos en personajes.monstruos. Cada monstruo tiene id, nombre, salud, ataque, defensa, experiencia (XP que otorga al morir), dialogoIntro, equipo (sus stats de combate), inventario (lo que suelta al morir) e imagen.
| Monstruo | XP |
|---|---|
| Perro Guardián | 30 |
| Elfo Mágico | 40 |
| Demogorgon | 50 |
| Warlock | 60 |
| Bestia Warlock | 80 |
| Lilih (jefe final) | 150 |
js/equipamentos.js exporta el objeto equipamientos con dos arrays:
armas: Espada de Madera, Espada de Hierro, Espada de Acero, Espada Mágica.escudos: Escudo de Madera, Escudo de Cuero, Escudo de Hierro, Escudo Mágico.El jugador escribe texto en una consola. El flujo de procesado es:
normalizarComando() en shared.js.Implementado en js/acciones/combate.js. Cuando el jugador entra en una sala con enemigos:
probEnemigos) y se elige un monstruo al azar.statsCombate con los stats del monstruo más los bonuses de su equipo.dialogoIntro del monstruo y se activa estadoCombate.activo = true.atacar → se calcula el daño: (ataque_jugador + tirarDado(1,fuerza) - defensa_monstruo).RETARDO_TURNO_MONSTRUO_TRAS_ATAQUE_HEROE_MS): (ataque_monstruo + tirarDado(1,10) - defensa_jugador).nivel × 100, sube de nivel: gana +5 de fuerza, +5 de ataque y la vida se restaura al 100%.Gestionado en js/acciones/equipamiento.js y js/acciones/uiHeroe.js.
equipar <nombre>: busca el ítem en el inventario y lo pone en el slot de arma o escudo. Si ya había algo equipado, lo devuelve al inventario.desequipar <nombre>: mueve el ítem equipado de vuelta al inventario.recalcularAtributosPorEquipo() recalcula el ataque, defensa y salud máxima del jugador. Si el escudo cambia, ajustarSaludPorCambioDeEscudo() ajusta la salud actual de forma proporcional.js/acciones/tienda.js gestiona la interacción con el vendedor.
comprar <nombre>: busca el ítem en el inventario del vendedor y, si el jugador tiene suficiente oro, se lo añade al inventario y descuenta el oro.vender <nombre>: busca el ítem en el inventario del jugador y lo vende al vendedor por la mitad del precio.js/acciones/busqueda.js implementa el comando buscar. Cada sala tiene una propiedad oro y puede tener ítems ocultos. Al buscar, se genera un número aleatorio y se decide si el jugador encuentra algo.
js/acciones/pociones.js gestiona usar pocion. Busca en el inventario una poción y restaura puntos de vida al jugador, sin superar su salud máxima.
Implementado en js/acciones/shared.js.
beforeunload del navegador llama a guardarEstadoJugador(), que serializa personajes.jugador a JSON y lo guarda en localStorage con la clave estadoJugador.app.js, se llama a cargarEstadoJugador(). Si hay datos en localStorage, se restaura el jugador. Las referencias de objetos equipados se resuelven comparando propiedades con itemCoincideConReferencia() para evitar problemas de referencias rotas tras la deserialización.reiniciarEstadoJugador() borra el localStorage y recrea el jugador desde cero. Se usa al morir y al iniciar nueva partida.Cada acción relevante (moverse, atacar, comprar, etc.) llama a actualizarHistorial(texto) en shared.js, que guarda un array
Selected from shared topics, language and repository description—not editorial ratings.
ErickRV19 /
Creacion de pagina con pequeños juegos en JS, creada solo con html, JavaScript y css
34/100 healthcristianm25 /
juego de dinosaurio con html,css y javascript
30/100 healthsam324sam /
Este proyecto es un juego de Memoria desarrollado en JavaScript, HTML y CSS. El objetivo del juego es encontrar pares de cartas que coincidan.
40/100 healthDannaPatricia /
🎮 Este repositorio contiene un proyecto del clásico juego Conecta 4, desarrollado con HTML, CSS y JavaScript. Incluye un tablero interactivo, detección de jugadas ganadoras y toda la lógica para disfrutar de este divertido juego en línea. ¡Conecta 4 fichas antes que tu oponente! 🔴🟡
40/100 healthJeanOviedo /
Proyecto realizado para el challeger de oracle y alura latam, que nos permite jugar el famoso juego del ahorcado, donde tienes que adivinar una palabra colocando letras, realizado con JAVASCRIPT, HTML Y CSS Puro.
35/100 healthDannaPatricia /
🃏 Este repositorio contiene el juego Encuentra Parejas, desarrollado como práctica utilizando HTML, CSS y JavaScript. Incluye mecánicas interactivas para voltear cartas, detección automática de parejas encontradas. ¡Pon a prueba tu memoria! 🃏✨
40/100 health