DISEÑO DE BASE DE DATOS PARA UN JUEGO DE ROL ONLINE
Una empresa de desarrollo de juegos online nos ha pedido que diseñemos una base de datos para guardar los datos de un juego de rol. Nos han dado los siguientes requisitos:
Requisitos:
-
Para poder jugar, es necesario registrarse como usuario, donde será necesario elegir un nick (que no esté siendo usado por otro) y una contraseña. Opcionalmente, pueden poner su nombre también y la ciudad desde donde juegan.
-
En el juego existen especies o tipos de personajes (Alien, Guerrero, Elfo...), los cuales se identifican con un código y tienen, obligatoriamente, un nombre y unos puntos de vida iniciales.
-
También existen una serie de poderes (Fuego, Rayo paralizador, Láser...) identificados con un código y con un nombre obligatorio.
-
Cada poder puede anular a otro (o a ninguno), pero un poder puede ser anulado por muchos poderes.
-
Cada especie puede tener unos poderes determinados (y varias especies pueden tener el mismo poder). En cada poder, esa especie puede tener una potencia de ataque entre un mínimo y un máximo establecidos. También tendrá una potencia de defensa entre un mínimo y un máximo. Por ejemplo, la especie Alien puede tener el poder de Fuego con una potencia de ataque entre 10 y 20 y una potencia de defensa entre 15 y 30. Los Alien pueden tener el poder de Láser con una potencia de ataque entre 5 y 15...
-
El terreno de juego está formado por varias rutas (Ruta de la Plata, Ruta del Fuego, Ruta del Misterio...). De cada ruta se debe guardar el número (que la identifica), el nombre (campo obligatorio) y a qué otras rutas se puede ir desde ella. Para pasar de una ruta a otra se debe sacar en el dado el número guardado entre esas dos rutas.
-
Cada ruta tiene varios escenarios. Cada uno de ellos debe tener un nombre obligatorio (Laberinto, Cementerio, Bosque encantado...) pero como se pueden repetir, están identificados por un número (1, 2, 3...) dentro de cada ruta. Un escenario pertenece solo a una ruta.
-
En cada escenario hay varias salas, de las cuales se debe guardar el color y están identificadas por un número secuencial dentro de cada escenario. Es decir, cada escenario numera sus salas con: 1, 2, 3...
-
Cuando un usuario quiere empezar a jugar, después de entrar con su nick, debe crear un personaje, del cual se guardarán sus datos (introducidos por el usuario o asignados de forma automática o aleatoria):
-
Datos introducidos manualmente: - Un nombre para el personaje que no esté ya elegido. - Especie del personaje (Alien, Guerrero...). No se podrá crear un personaje si no se le asigna la especie.
-
Datos asignados automáticamente: - Los puntos de vida asignados a su especie (aunque los puntos de vida del personaje cambiarán conforme avance la partida).
-
Datos asignados de forma aleatoria: - El lugar donde está el personaje, que será una sala concreta de un escenario de alguna de las rutas (también cambiará de sala con los dados, conforme avance la partida). Se le podrá asignar una sala aunque ya haya otro personaje allí. - Qué poder puede usar en cada uno de los escenarios (el algoritmo lo elegirá entre los posibles establecidos para su especie). En un escenario, el personaje solo podrá tener un poder, pero el mismo poder podrá ser usado en distintos escenarios. Además, hay que tener en cuenta que en un escenario, varios personajes pueden tener el mismo poder. - La potencia de ataque y la potencia de defensa que tiene en cada poder en cada escenario (se calculará un valor aleatorio entre el máximo y el mínimo que tenga establecido su especie en cada poder).
-
Se requiere:
Diseñar un esquema E/R que recoja toda la información que debe almacenarse. Si hay requisitos del enunciado que no se han podido captar en el esquema, anótalos en un apartado de "otras restricciones de integridad". Y si has tenido que tomar alguna decisión para hacer el esquema porque no lo indicaba el enunciado, anótalo en un apartado de "suposiciones".
plantilla
Para la solución del ejercicio puedes usar la siguiente plantilla:

Solución propuesta
Pendiente de publicar.