Solucio joc Rol

De wikiserver
Dreceres ràpides: navegació, cerca
//ECMA 6

  (function () {

            var raza = ["mag", "elfo", "topo", "orco"];
            var encantos = [];
            class Personatge {
                constructor(nom, raza, forza, intel, vida_max, vida_act) {

                    this.nom = nom;
                    this.raza = raza;
                    this.forza = forza;
                    this.intel = intel;
                    this.vida_max = vida_max;
                    this.vida_act = vida_act;
                }

                set afegir_nom(nom) {
                    this.nom = nom;
                }

                get obtindre_nom() {
                    return this.nom;
                }

                set afegir_raza(raza) {
                    this.raza = raza;
                }

                get obtindre_raza() {
                    return this.raza;
                }

                set afegir_forza(forza) {
                    this.forza = forza;
                }

                get obtindre_forza() {
                    return this.forza;
                }

                set afegir_intel(intel) {
                    this.intel = intel;
                }

                get obtindre_intel() {
                    return this.intel;
                }

                set afegir_vida_max(vida_max) {
                    this.vida_max = vida_max;
                }

                get obtindre_vida_max() {
                    return this.vida_max;
                }

                set afegir_vida_act(vida_act) {
                    this.vida_act = vida_act;
                }

                get obtindre_vida_act() {
                    return this.vida_act;
                }

                mostrar() {
                    document.write("<br>intel·ligència: " + this.obtindre_intel);
                    document.write("<br>Nom: " + this.obtindre_nom);
                    document.write("<br>raza: " + this.obtindre_raza);
                    document.write("<br>vida_actual: " + this.obtindre_vida_act);
                    document.write("<br>vida_max: " + this.obtindre_vida_max);
                }

            }

            class Mag extends Personatge {

                constructor(nom, raza, forza, intel, vida_max, vida_act, encanteri) {
                    super(nom, raza, forza, intel, vida_max, vida_act);
                    this.encateri = encanteri;
                }

                set afegir_forza(forza) {

                    if (forza > 15) {            //Es pot utilitzar un Try {}Catch per a controlar els valors
                        console.log("No es possible ser tan fort");
                    } else {
                        this.forza = forza;
                    }

                }  //tanca afegir forza

                set afegir_intel(intel) {

                    if (intel < 17) {               //Es pot utilitzar un Try {}Catch per a controlar els valors
                        console.log("No es possible ser tan mediano");
                    } else {
                        this.intel = intel;
                    }
                }  //tanca afegir intel·ligència

                set aprenEncanteri(encanteri) {
                    if (encantos.length == 4) {         //Es pot utilitzar un Try {}Catch per a controlar els valors
                        document.write("El numero de encantos supera a 4");
                    } else {
                        encantos[encantos.length] = encanteri;
                    }
                }//cierra aprenEncateri

                set llenzaEncanteri(Personatge) {


                    Personatge.vida_act -= 10;
                    encantos[encantos.length - 1] = "";
                }//tanca llença encateri
                
               
                mostrar_mag() {

                    this.mostrar();
                    document.write("<br>encanteri: " + this.encanteri);
                    document.write("<br>");
                }

            }


            class Monjo extends Personatge {

                constructor(nom, raza, forza, intel, vida_max, vida_act, deu) {
                    super(nom, raza, forza, intel, vida_max, vida_act);
                    this.deu = deu;
                }

                set Sanar(Personatge) {
                    Personatge.vida_act += 10;
                }

                mostrar_monjo() {

                    this.mostrar();
                    document.write("deu: " + this.deu);
                    document.write("<br>");
                }

            }



            var magoA = new Mag("julio", raza[0], 1, 1, 1, 13, "Encanto1");
            var magoB = new Mag("irene", raza[1], 2, 2, 2, 14, "Encanto2");
            var monje = new Monjo("rafa", raza[2], 3, 3, 3, 15, "DiosFuego");
            magoA.aprenEncanteri = "NuevoEncanto";
            magoA.aprenEncanteri = "NuevoEncanto2";
            magoA.obtenerRazaMago;
            magoA.mostrar_mag();
            magoB.mostrar_mag();
            magoA.llenzaEncanteri=magoB;
            magoB.llenzaEncanteri=magoA;
            monje.sanar=magoB;
            magoA.llenzaEncanteri=magoB;
            magoA.mostrar_mag();
            magoB.mostrar_mag();
            monje.mostrar_monjo();
             })();



//'''nota''': inteligencia y fuerza lo ideal sería poner un if antes de introducir los datos dentro del objeto.
// if(intel>17) new Mago("Nombre",17....)

PROTOTYPE

var raza = ["mag","elfo","topo","orco"];
var encantos =[];

function Personatge(nom,raza,forza,intel,vida_max,vida_act){
    
    //inicializa los atributos del constructor
    this.nom=nom;
    this.raza=raza;
    this.forza=forza;
    this.intel=intel;
    this.vida_max=vida_max;
    this.vida_act=vida_act;
    
 }   
    Personatge.prototype.afegir_nom=function(nom){
        this.nom=nom;
    }
    
    Personatge.prototype.obtindre_nom=function(){
    return this.nom;
    }
    
     Personatge.prototype.afegir_raza=function(raza){
        this.raza=raza;
    }
    
    Personatge.prototype.obtindre_raza=function(){
    return this.raza;
    }
    
     Personatge.prototype.afegir_forza=function(forza){
        this.forza=forza;
    }
    
    Personatge.prototype.obtindre_forza=function(){
    return this.forza;
    }
    
     Personatge.prototype.afegir_intel=function(intel){
        this.intel=intel;
    }
    
    Personatge.prototype.obtindre_intel=function(){
    return this.intel;
    }
    
     Personatge.prototype.afegir_vida_max=function(vida_max){
        this.vida_max=vida_max;
    }
    
    Personatge.prototype.obtindre_vida_max=function(){
    return this.vida_max;
    }
    
    
     Personatge.prototype.afegir_vida_act=function(vida_act){
        this.vida_act=vida_act;
    }
    
    Personatge.prototype.obtindre_vida_act=function(){
    return this.vida_act;
    }
    
    Personatge.prototype.mostrar=function(){
        document.write("<br>intel·ligència: "+this.obtindre_intel());
        document.write("<br>Nom: "+this.obtindre_nom());
        document.write("<br>raza: "+this.obtindre_raza());
        document.write("<br>vida_actual: "+this.obtindre_vida_act());
        document.write("<br>vida_max: "+this.obtindre_vida_max());
    }



function Mag(nom,raza,forza,intel,vida_max,vida_act,encanteri){

Personatge.call(this,nom,raza,forza,intel,vida_max,vida_act);
///inicializa los parametros del contructor hijo
this.encanteri=encanteri;
}

//hereda de Personatge
Mag.prototype= new Personatge();
//Apunta al constructor Mag
Mag.prototype.constructor=Mag;


Mag.prototype.afegir_forza=function(forza){

if (forza>15) {                                          //Es pot utilitzar un Try {}Catch per a controlar els valors
console.log("No es possible ser tan fort");

}else{

this.forza=forza;
}

}  //tanca afegir forza


Mag.prototype.afegir_intel=function(intel){

if (intel<17) {                                            //Es pot utilitzar un Try {}Catch per a controlar els valors
console.log("No es possible ser tan mediano");

}else{

this.intel=intel;
}
}  //tanca afegir intel·ligència


Mag.prototype.aprenEncanteri=function(encanteri){
    if (encantos.length==4) {                               //Es pot utilitzar un Try {}Catch per a controlar els valors
       document.write("El numero de encantos supera a 4");
    }else{ 
        encantos[encantos.length]=encanteri;
    }
}//cierra aprenEncateri

Mag.prototype.llenzaEncanteri= function(Personatge){
 
 
Personatge.vida_act-=10;
encantos[encantos.length-1]="";

}//tanca llença encateri


Mag.prototype.mostrar_mag=function(){

this.mostrar();
document.write("<br>encanteri: "+this.encanteri);
document.write("<br>");
}


function Monjo(nom,raza,forza,intel,vida_max,vida_act,deu){

Personatge.call(this,nom,raza,forza,intel,vida_max,vida_act);
this.deu=deu;
}

Monjo.prototype= new Personatge();
Monjo.prototype.constructor=Monjo;

Monjo.prototype.sanar=function(Personatge){
Personatge.vida_act+=10;
}


Monjo.prototype.mostrar_monjo=function(){

this.mostrar();
document.write("deu: "+this.deu);
document.write("<br>");
}





var magoA= new Mag("julio",raza[0],1,1,1,13,"Encanto1");
var magoB= new Mag("irene",raza[1],2,2,2,14,"Encanto2");
var monje= new Monjo("rafa",raza[2],3,3,3,15,"DiosFuego");


magoA.aprenEncanteri("NuevoEncanto1");
magoA.aprenEncanteri("NuevoEncanto2");
magoA.mostrar_mag();
magoB.mostrar_mag();
magoA.llenzaEncanteri(magoB);
magoB.llenzaEncanteri(magoA);
monje.sanar(magoB);
magoA.llenzaEncanteri(magoB);
magoA.mostrar_mag();
magoB.mostrar_mag();
monje.mostrar_monjo();

Otra forma de hacerlo pero que consume más memoria

var raza = ["mag","elfo","topo","orco"];
var encantos =[];

function Personatge(nom,raza,forza,intel,vida_max,vida_act){
    
    //inicializa los atributos del constructor
    this.nom=nom;
    this.raza=raza;
    this.forza=forza;
    this.intel=intel;
    this.vida_max=vida_max;
    this.vida_act=vida_act;
    
    
    this.afegir_nom=function(nom){
        this.nom=nom;
    }
    
    this.obtindre_nom=function(){
    return this.nom;
    }
    
     this.afegir_raza=function(raza){
        this.raza=raza;
    }
    
    this.obtindre_raza=function(){
    return this.raza;
    }
    
     this.afegir_forza=function(forza){
        this.forza=forza;
    }
    
    this.obtindre_forza=function(){
    return this.forza;
    }
    
     this.afegir_intel=function(intel){
        this.intel=intel;
    }
    
    this.obtindre_intel=function(){
    return this.intel;
    }
    
     this.afegir_vida_max=function(vida_max){
        this.vida_max=vida_max;
    }
    
    this.obtindre_vida_max=function(){
    return this.vida_max;
    }
    
    
     this.afegir_vida_act=function(vida_act){
        this.vida_act=vida_act;
    }
    
    this.obtindre_vida_act=function(){
    return this.vida_act;
    }
    
    this.mostrar=function(){
        document.write("<br>intel·ligència: "+this.obtindre_intel());
        document.write("<br>Nom: "+this.obtindre_nom());
        document.write("<br>raza: "+this.obtindre_raza());
        document.write("<br>vida_actual: "+this.obtindre_vida_act());
        document.write("<br>vida_max: "+this.obtindre_vida_max());
    }

}


function Mag(nom,raza,forza,intel,vida_max,vida_act,encanteri){

Personatge.call(this,nom,raza,forza,intel,vida_max,vida_act);
///inicializa los parametros del contructor hijo
this.encanteri=encanteri;

this.afegir_forza=function(forza){

if (forza>15) {
console.log("No es possible ser tan fort");

}else{

this.forza=forza;
}

}  //tanca afegir forza


this.afegir_intel=function(intel){

if (intel<17) {
console.log("No es possible ser tan mediano");

}else{

this.intel=intel;
}
}  //tanca afegir intel·ligència


this.aprenEncanteri=function(encanteri){
    if (encantos.length==4) {
       document.write("El numero de encantos supera a 4");
    }else{ 
        encantos[encantos.length]=encanteri;
    }
}//cierra aprenEncateri

this.llenzaEncanteri= function(Personatge){
 
 
Personatge.vida_act-=10;
encantos[encantos.length-1]="";

}//tanca llença encateri


this.mostrar_mag=function(){

this.mostrar();
document.write("<br>encanteri: "+this.encanteri);
document.write("<br>");
}


}//cierra Mag

Mag.prototype= Personatge;


function Monjo(nom,raza,forza,intel,vida_max,vida_act,deu){

Personatge.call(this,nom,raza,forza,intel,vida_max,vida_act);
this.deu=deu;


this.sanar=function(Personatge){
Personatge.vida_act+=10;
}


this.mostrar_monjo=function(){

this.mostrar();
document.write("deu: "+this.deu);
document.write("<br>");
}

}
Monjo.prototype=Personatge;


var magoA= new Mag("julio",raza[0],1,1,1,13,"Encanto1");
var magoB= new Mag("irene",raza[1],2,2,2,14,"Encanto2");
var monje= new Monjo("rafa",raza[2],3,3,3,15,"DiosFuego");


magoA.aprenEncanteri("NuevoEncanto1");
magoA.aprenEncanteri("NuevoEncanto2");
magoA.mostrar_mag();
magoB.mostrar_mag();
magoA.llenzaEncanteri(magoB);
magoB.llenzaEncanteri(magoA);
monje.sanar(magoB);
magoA.llenzaEncanteri(magoB);
magoA.mostrar_mag();
magoB.mostrar_mag();
monje.mostrar_monjo();

/*var Persona= new Personatge("julio",raza[0],1,15,5,15);
var mago= new Mag("Pepe",raza[1],2,3,4,14,"Encanto1");
monj.mostrar();
var mago= new Mag("Pepe",raza[1],2,3,4,14,"Encanto2");
mago.afegir_intel(21);
mago.mostrar_mag();
*/