Created
November 10, 2016 15:25
-
-
Save nikibobi/a5e9c248142250f14e90a4f94e2f825d to your computer and use it in GitHub Desktop.
JS Advanced Homework
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Turtle } from './turtle.js'; | |
import { WaterTurtle } from './water.js'; | |
import { GalapagosTurtle } from './galapagus.js'; | |
import { EvkodianTurtle } from './evkodian.js'; | |
import { NinjaTurtle } from './ninja.js'; | |
result.Turtle = Turtle; | |
result.WaterTurtle = WaterTurtle; | |
result.GalapagosTurtle = GalapagosTurtle; | |
result.EvkodianTurtle = EvkodianTurtle; | |
result.NinjaTurtle = NinjaTurtle; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Turtle } from './turtle.js'; | |
export class EvkodianTurtle extends Turtle { | |
constructor(name, age, gender, evkodiumValue) { | |
super(name, age, gender); | |
this._evkodiumValue = evkodiumValue; | |
} | |
get evkodium() { | |
return { | |
value: this._evkodiumValue, | |
density: this.age * (this.gender == "male" ? 3 : 2) | |
}; | |
} | |
toString() { | |
return super.toString() + `\nEvkodium: ${this.evkodium.value * this.evkodium.density}`; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Turtle } from './turtle.js'; | |
export class GalapagosTurtle extends Turtle { | |
constructor(name, age, gender) { | |
super(name, age, gender); | |
this._thingsEaten = []; | |
} | |
get thingsEaten() { | |
return this._thingsEaten; | |
} | |
eat(food) { | |
this._thingsEaten.push(food); | |
} | |
grow(age) { | |
super.grow(age); | |
this._thingsEaten = []; | |
} | |
toString() { | |
return super.toString() + `\nThings, eaten this year: ${this.thingsEaten.join(', ')}`; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Turtle } from './turtle.js'; | |
export class NinjaTurtle extends Turtle { | |
constructor(name, age, gender, maskColor, weapon) { | |
super(name, age, gender); | |
this._maskColor = maskColor; | |
this._weapon = weapon; | |
this._level = 0; | |
} | |
grow(age) { | |
super.grow(age); | |
this._level += age; | |
} | |
toString() { | |
let status = 'BEYOND GODLIKE'; | |
if (this.level < 25) { | |
status = 'an apprentice'; | |
} else if (this.level < 100) { | |
status = 'smokin strong'; | |
} | |
return super.toString() + `\n${this.name.substr(0, 3)} wears a ${this._maskColor} mask, and is ${status} with the ${this._weapon}.`; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export class Turtle { | |
constructor(name, age, gender) { | |
if (new.target === Turtle) { | |
throw new Error("Abstract"); | |
} | |
this._name = name; | |
this._age = age; | |
this._gender = gender; | |
} | |
get name() { | |
return this._name; | |
} | |
get age() { | |
return this._age; | |
} | |
get gender() { | |
return this._gender; | |
} | |
grow(age) { | |
this._age += age; | |
} | |
toString() { | |
return `Turtle: ${this.name}\nAged – ${this.age}; Gender – ${thus.gender}`; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Turtle } from './turtle.js'; | |
export class WaterTurtle extends Turtle { | |
constructor(name, age, gender, waterPool) { | |
super(name, age, gender); | |
this._waterPool = waterPool; | |
} | |
get currentWaterPool() { | |
return this._waterPool; | |
} | |
travel(waterPool) { | |
this._waterPool = waterPool; | |
this.grow(5); | |
} | |
toString() { | |
return super.toString() + `\nCurrently inhabiting ${this.currentWaterPool}`; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment