Solucio joc Rol
De wikiserver
//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();
*/