lenguaje: C++
S.O: UBUNTU 10.04
IDE: NETBEANS
decir que soy totalmente novato. acabo de empezar hace unos dias.
los errores los explico en el siguiente mensaje junto con lo que me devuelve el programa. (no me cabe en uno solo)
OBJETOS:
Código C++:
Ver original
#include <iostream> using namespace std; #include <cstdlib> #include <stdlib.h> class elfo { public: string nombre; int vida; int ataque; int defensa; int dec; // variable decision del arma elfo(); ~elfo(); int atacar(); int defender(); int abandonar(); int muerto(); friend class espada; friend class mandoble; }; class espada { public: espada(); ~espada(); int dano; //bonificacion daño int def; friend class elfo; }; class mandoble{ public: mandoble(); ~mandoble(); int danoo; //bonificaciones de daño y (abajo) defensa. int deff; friend class elfo; }; class trasgo1 { public: int vida_t; int ataque_t; int defensa_t; trasgo1(); ~trasgo1(); int atacar_t(); int defender_t(); int muerto_t(); };
Código C++:
Ver original
// ###################################################################################### elfo::elfo(){ espada esp; mandoble man; vida = 25; defensa = 2; ataque = 5; dec = 0; cout << "creando Elfo... ¿¿como lo quieres llamar?? "; cin >> nombre; cout << endl; cout << nombre << " tiene las siguientes estadisticas: " << endl; cout << endl; cout << "vida: " << vida << endl; cout << "ataque: " << ataque << endl; cout << "defensa: " << defensa << endl; cout << endl; cout << "ahora escoge un arma. Armas disponibles: " << endl; cout << endl; cout << "1.- ESPADA Y ESCUDO. +1 def +1 atq" << endl; cout << "2.- MANDOBLE. -1 def +3 atq" << endl; cout << endl; for (;;){ cout << "==> "; cin >> dec; // aqui se elige el arma if (dec = 1){ cout << "las armas seleccionadas son: espada y escudo." << endl; cout << "actualizando estadisticas..." << endl; ataque = ataque + esp.dano; defensa = defensa + esp.def; cout << endl; cout << "vida: " << vida << endl; cout << "ataque: " << ataque << endl; cout << "defensa: " << defensa << endl; break; } if (dec = 2){ cout << "el arma seleccionada es: mandoble." << endl; cout << "actualizando estadisticas..." << endl; ataque = ataque + man.danoo; defensa = defensa + man.deff; cout << endl; cout << "vida: " << vida << endl; cout << "ataque: " << ataque << endl; cout << "defensa: " << defensa << endl; break; } else{ cout << "ERROR!" << endl; } } cout << "se ha terminado de crear el personaje." << endl; cout << endl; } elfo::~elfo(){ cout << "(elfo destruido.)"; } int elfo::atacar(){ cout << "aaaarrrrggg..." << endl; } int elfo::atacar_t2(){ cout << "aaaarrrrggg..." << endl; } int elfo::defender(){ cout << nombre << " se puso en posicion defensiva..." << endl; } int elfo::abandonar(){ cout << nombre << " es un cagao y ha abandonado." << endl; cout << "la partida ha terminado." << endl; } int elfo::muerto(){ cout << nombre << " ha muerto. La partida ha terminado." << endl; } // ESPADA Y ESCUDO ################################################################# espada::espada(){ cout << "(espada creada.)" << endl; dano = 1; def = 1; } espada::~espada(){ cout << "(espada destruida.)" << endl; } // MANDOBLE ############################################################### mandoble::mandoble(){ cout << "(mandoble creado.)." << endl; danoo = 4; // arriba he puesto que daba +3 pero da igual deff = -2; } mandoble::~mandoble(){ cout << "(mandoble destruido)." << endl; } // CREAR TRASGO 1 ######################################################### trasgo1::trasgo1(){ vida_t = 15; ataque_t = 4; defensa_t = 2; cout << "trasgo apareció. El combate va a empezar..." << endl; cout << endl; } trasgo1::~trasgo1(){ cout << "(trasgo1 destruido.)"; cout << endl; } int trasgo1::atacar_t(){ cout << "AAAAAAAARRRRRGGGGG........."; } int trasgo1::defender_t(){ cout << "la defensa y la vida del trasgo aumentó." << endl; vida_t = vida_t + 1; defensa_t = defensa_t + 1; } int trasgo1::muerto_t(){ cout << "el trasgo ha muerto."; }
PRINCIPAL:
Código C++:
Ver original
int main(){ elfo f; trasgo1 tr1; espada es; mandoble man; cout << "Comandos: " << endl; cout << "atacar" << endl; cout << "defender" << endl; cout << "abandonar" << endl; cout << endl; for (;;){ cout << "el valor der dec es: " << f.dec << endl; // para hacer el seguimiento del valor de dec (decision) cout << "tu turno: "; string opc1; cin >> opc1; if (opc1 == "atacar"){ f.atacar(); switch(f.dec){ //originalmente estaba con un if (igual que abajo), pero case 1 : { // lo cambie para probar. (da el mismo error) tr1.vida_t = tr1.vida_t - f.ataque + tr1.defensa_t - es.dano; cout << f.nombre << " hizo " << f.ataque - tr1.defensa_t - es.dano << " puntos de daño con la espada." << endl; cout << endl; } case 2 : { tr1.vida_t = tr1.vida_t - f.ataque + tr1.defensa_t - man.danoo; cout << f.nombre << " hizo " << f.ataque - tr1.defensa_t - man.danoo << " puntos de daño con el mandoble." << endl; cout << endl; } } } if (tr1.vida_t <= 0){ tr1.muerto_t(); break; } cout << endl; cout << "el valor der dec es: " << f.dec << endl; cout << endl; if (opc1 == "defender"){ f.defender(); if (f.dec = 1){ cout << "la defensa y la vida de " << f.nombre << "aumentó." << endl; f.vida = f.vida + 1; f.defensa = f.defensa + 2 + es.def; cout << "vida: " << f.vida << " defensa: " << f.defensa << endl; } if (f.dec = 2){ cout << "la defensa y la vida de " << f.nombre << "aumentó." << endl; f.vida = f.vida + 1; f.defensa = f.defensa + 2 + man.deff; cout << "vida: " << f.vida << " defensa: " << f.defensa << endl; } } if (opc1 == "abandonar"){ f.abandonar(); return 0; } //reseteo de estadisticas del trasgo. //al final del turno reseteo las estadisticas tr1.ataque_t = 4; tr1.defensa_t = 2; cout << endl; cout << "turno del trasgo..." << endl; cout << endl; cout << "el valor der dec es: " << f.dec << endl; cout << endl; // GENERADOR DE NUMERO ALEATORIO PARA LAS DECISIONES DE LOS TRASGOS######## if (opc2 = 1){ tr1.atacar_t(); if (f.dec = 1){ f.vida = f.vida - tr1.ataque_t + f.defensa + es.def; cout << "el trasgo hizo " << tr1.ataque_t - f.defensa + es.def << "puntos de daño."; cout << endl; } if (f.dec = 2){ f.vida = f.vida - tr1.ataque_t + f.defensa + man.deff; cout << "el trasgo hizo " << tr1.ataque_t - f.defensa + man.deff << "puntos de daño."; cout << endl; } } if (f.vida <= 0){ f.muerto(); return 0; } if (opc2 = 2){ tr1.defender_t(); } // reseteo de estadisticas del elfo. depende que arma lleve se resetean unas u otras if (f.dec = 1){ f.defensa = 2 + es.def; f.ataque = 5 + es.dano; } if (f.dec = 2){ f.defensa = 2 + man.deff; f.ataque = 5 + man.danoo; } cout << "FIN TURNO." << endl; cout << endl; cout << "el valor der dec es: " << f.dec << endl; cout << endl; } //FIN 1º BUCLE FOR }