Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: marchiali en 24 Septiembre 2015, 23:49 pm



Título: juego de rol en c++
Publicado por: marchiali en 24 Septiembre 2015, 23:49 pm
hola a todos.

resulta que tengo un ejercicio que resolver de la universad cuyo enunciado plantea la idea de un juego de rol. el enunciado es el siguiente:

en un videojuego existen tres tipos de personaje: caballero, mago y arquero. cada uno debe guardar sus cantidades de vida y mana. todos tienen un metodo atacar que recibe a otro personaje como referencia al cual va a atacar, sin embargo el ataque de cada personaje es diferente en cuanto a los atributos que consumen:
-el ataque del caballero quita 3 unidades de vida y 1 de mana al personaje que ataca.
-el ataque del arquero quita 2 unidades de vida y 2 de mana.
-el ataque del mago quita 1 unidad de vida y 3 de mana.
cada personaje tiene un metodo esta vivo, para saber si tiene vida restante y un metodo tipo que devuelve una cadena de texto con el tipo del personaje

con estas especificaciones codificar una clase juego para representar un juego simple que contenga 30 personaje de distinto tipo en un unico arreglo. en cada turno del juego se elige un personaje al azar que debe atacar a otro, elegido tambien al azar, esto debe repetirse hasta que quede solo un personaje vivo. mostrando en cada turno el tipo y la cantidad de vida de cada personaje.

quisiera un poco de ayuda sobre el planteamiento del programa, las clases y los atributos.

les agradecere cualquier tipo de ayuda.

Mod: Titulo modificado, no escribas en mayúsculas


Título: Re: juego de rol en c++
Publicado por: engel lex en 24 Septiembre 2015, 23:52 pm
que llevas? que has hecho/planeado? que no sabes?



Título: Re: juego de rol en c++
Publicado por: marchiali en 25 Septiembre 2015, 00:00 am
tengo planteadas las clases de los personajes de esta forma

Código
  1. class personaje{
  2. protected:
  3. int vida, mana;
  4. public:
  5. personaje(): vida(25), mana(25){}
  6. virtual void atacar(personaje *P)=0;
  7. bool estavivo(){
  8. if (vida>0){
  9. return true;
  10. }
  11. return false;
  12. }
  13. virtual void modifvida(int damage){
  14. vida -= damage;
  15. }
  16. };
  17.  
  18. class caballero: public personaje{
  19. public:
  20. virtual void atacar(personaje *P){
  21. P->modifvida(3);
  22. }
  23. virtual string gettipo(){
  24. return "caballero";
  25. }
  26. };
  27.  
  28. class mago: public personaje{
  29. public:
  30. virtual void atacar(personaje *P){
  31. P->modifvida(1);
  32. }
  33. virtual string gettipo(){
  34. return "mago";
  35. }
  36. };
  37.  
  38. class arquero: public personaje{
  39. public:
  40. virtual void atacar(personaje *P){
  41. P->modifvida(2);
  42. }
  43. virtual string gettipo(){
  44. return "arquero";
  45. }
  46. };

el problema que tengo es que no se como manejar los objetos de las clases para que funcionen dentro de un mismo arreglo y asi poder restar las vidas