UNPKG

acu-logic

Version:

diagnostico mtc segun baGang, 5 elementos, etc.

53 lines (49 loc) 1.89 kB
const listaElementos=['fuego','tierra','metal','agua','madera']; function Elemento(nombre){ this.nombre=nombre; this.padre= () => { //return(listaElementos[Math.abs(listaElementos.indexOf(this.nombre)-1 + 5) % 5]); let nombre=listaElementos[Math.abs(listaElementos.indexOf(this.nombre)-1 + 5) % 5]; return elementoPorNombre(nombre); }; this.hijo= () => { //return(listaElementos[Math.abs(listaElementos.indexOf(this.nombre)+1) % 5]); let nombre=listaElementos[Math.abs(listaElementos.indexOf(this.nombre)+1) % 5]; return elementoPorNombre(nombre); }; this.abuelo= () => { //return(listaElementos[Math.abs(listaElementos.indexOf(this.nombre)-2 + 5 ) % 5]); let nombre=listaElementos[Math.abs(listaElementos.indexOf(this.nombre)-2 + 5 ) % 5]; return elementoPorNombre(nombre); }; this.nieto= () => { //return(listaElementos[Math.abs(listaElementos.indexOf(this.nombre)+2) % 5]); let nombre=listaElementos[Math.abs(listaElementos.indexOf(this.nombre)+2) % 5]; return elementoPorNombre(nombre); } this.getNombre= () => { return(this.nombre); } } function elementoPorNombre(nombre) { // helper function que devuelve el objeto elemento correspondiende a nombre switch(nombre) { case('fuego') : return (FUEGO); break; case('tierra'): return (TIERRA); break; case('metal'): return (METAL); break; case ('agua'): return(AGUA); break; case('madera'): return(MADERA); break; default: return('impossible'); } } const FUEGO = new Elemento('fuego'); const TIERRA = new Elemento('tierra'); const METAL = new Elemento('metal'); const AGUA = new Elemento('agua'); const MADERA = new Elemento('madera'); module.exports.Elemento = Elemento; module.exports.FUEGO = FUEGO; module.exports.TIERRA = TIERRA; module.exports.METAL = METAL; module.exports.AGUA = AGUA; module.exports.MADERA = MADERA;