From d5609c93be8e1b55398811cea1632b3c1d1fe9d9 Mon Sep 17 00:00:00 2001 From: Dane Middleton Date: Wed, 16 May 2018 16:04:10 -0500 Subject: [PATCH 1/3] initial commit, passing 3/4 tests. created CrewMember & Ship classes. added enterShip method to CrewMember class --- 05week/spaceTravelToMars.js | 80 +++++++++++++++++++++++++++++++++---- 1 file changed, 73 insertions(+), 7 deletions(-) diff --git a/05week/spaceTravelToMars.js b/05week/spaceTravelToMars.js index ce258a382..4c25acb10 100644 --- a/05week/spaceTravelToMars.js +++ b/05week/spaceTravelToMars.js @@ -9,12 +9,78 @@ let jobTypes = { programmer: 'Any Ship!' }; +class CrewMember { + constructor(name, job, specialSkill) { + this.name = name; + this.job = job; + this.specialSkill = specialSkill; + this.ship = null; + } + printOutName () { + console.log(this.name) + } + + enterShip (ship) { + this.ship = ship + ship.crew.push(this) +// console.log(this) + +// ship.crew.push(this) +// console.log(ship) +// ship.crew.push(this.name) +// console.log(ship) +// this.ship = ship; +// ship.crew.push(this) +// console.log(ship) +// console.log(ship.crew.push()) +// ship.crew.push(this) +// console.log(this) + } + } + +class Ship { + constructor(name, type, ability) { + this.name = name; + this.type = type; + this.ability = ability; + this.crew = [] + } +} + +const crewMember1 = new CrewMember('Rick Martinez', 'pilot', 'chemistry'); +const crewMember2 = new CrewMember('Commander Lewis', 'commander', 'geology'); +const mav = new Ship('Mars Ascent Vehicle', 'MAV', 'Ascend into low orbit'); +console.log(crewMember1.ship) +console.log(mav.crew.length) + console.log(mav.crew[0]) +crewMember1.enterShip(mav) +console.log(crewMember1.ship) +console.log(mav.crew.length) + console.log(mav.crew[0]) +// console.log(crewMember1.ship) +// console.log(crewMember1) +// console.log(crewMember2.printOutName(),crewMember1.name) +// console.log(mav.type) +// console.log(mav.ability) +// console.log(mav.crew.length) + + // Your code here +// console.log(crewMember1) +// console.log(crewMember1.name); +// console.log(crewMember1.job); +// console.log(crewMember1.specialSkill); +// console.log(crewMember1.ship); +// crewMember1.enterShip('mav'); +// console.log(ship.crew) +// console.log(crewMember1.ship) + + // console.log(mav); //tests -if (typeof describe === 'function'){ - describe('CrewMember', function(){ - it('should have a name, a job, a specialSkill and ship upon instantiation', function(){ +if (typeof describe === 'function') { + describe('CrewMember', function() { + it('should have a name, a job, a specialSkill and ship upon instantiation', function() { var crewMember1 = new CrewMember('Rick Martinez', 'pilot', 'chemistry'); assert.equal(crewMember1.name, 'Rick Martinez'); assert.equal(crewMember1.job, 'pilot'); @@ -22,7 +88,7 @@ if (typeof describe === 'function'){ assert.equal(crewMember1.ship, null); }); - it('can enter a ship', function(){ + it('can enter a ship', function() { let mav = new Ship('Mars Ascent Vehicle', 'MAV', 'Ascend into low orbit'); let crewMember1 = new CrewMember('Rick Martinez', 'pilot', 'chemistry'); crewMember1.enterShip(mav); @@ -32,8 +98,8 @@ if (typeof describe === 'function'){ }); }); - describe('Ship', function(){ - it('should have a name, a type, an ability and an empty crew upon instantiation', function(){ + describe('Ship', function() { + it('should have a name, a type, an ability and an empty crew upon instantiation', function() { let mav = new Ship('Mars Ascent Vehicle', 'MAV', 'Ascend into low orbit'); assert.equal(mav.name, 'Mars Ascent Vehicle'); assert.equal(mav.type, 'MAV'); @@ -41,7 +107,7 @@ if (typeof describe === 'function'){ assert.equal(mav.crew.length, 0); }); - it('can return a mission statement correctly', function(){ + it('can return a mission statement correctly', function() { let mav = new Ship('Mars Ascent Vehicle', 'MAV', 'Ascend into low orbit'); let crewMember1 = new CrewMember('Rick Martinez', 'pilot', 'chemistry'); let hermes = new Ship('Hermes', 'Main Ship', 'Interplanetary Space Travel'); From f0bb5ed201078c518ffdf87da5d7f35d7ae58532 Mon Sep 17 00:00:00 2001 From: Dane Middleton Date: Wed, 16 May 2018 22:39:26 -0500 Subject: [PATCH 2/3] passing all tests --- 05week/spaceTravelToMars.js | 78 ++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 41 deletions(-) diff --git a/05week/spaceTravelToMars.js b/05week/spaceTravelToMars.js index 4c25acb10..5e9725f5d 100644 --- a/05week/spaceTravelToMars.js +++ b/05week/spaceTravelToMars.js @@ -16,27 +16,31 @@ class CrewMember { this.specialSkill = specialSkill; this.ship = null; } - printOutName () { + + printOutName() { console.log(this.name) } - enterShip (ship) { + // assignShip() { + // if (this.job == 'pilot') { + // this.ship = 'MAV' + // } + // if (this.job == 'mechanic') { + // this.ship = 'Repair Ship' + // } + // if (this.job == 'commander') { + // this.ship = 'Main Ship' + // } + // if (this.job == 'programmer') { + // this.ship = 'Any Ship!' + // } + // } + + enterShip(ship) { this.ship = ship ship.crew.push(this) -// console.log(this) - -// ship.crew.push(this) -// console.log(ship) -// ship.crew.push(this.name) -// console.log(ship) -// this.ship = ship; -// ship.crew.push(this) -// console.log(ship) -// console.log(ship.crew.push()) -// ship.crew.push(this) -// console.log(this) } - } +} class Ship { constructor(name, type, ability) { @@ -45,38 +49,30 @@ class Ship { this.ability = ability; this.crew = [] } + missionStatement() { + if (this.crew.length < 1) { + return ("Can't perform a mission yet.") + } else { + return (this.ability) + } + + } } const crewMember1 = new CrewMember('Rick Martinez', 'pilot', 'chemistry'); const crewMember2 = new CrewMember('Commander Lewis', 'commander', 'geology'); const mav = new Ship('Mars Ascent Vehicle', 'MAV', 'Ascend into low orbit'); -console.log(crewMember1.ship) -console.log(mav.crew.length) - console.log(mav.crew[0]) -crewMember1.enterShip(mav) -console.log(crewMember1.ship) -console.log(mav.crew.length) - console.log(mav.crew[0]) +const hermes = new Ship('Hermes', 'Main Ship', 'Interplanetary Space Travel'); +// crewMember1.assignShip() // console.log(crewMember1.ship) -// console.log(crewMember1) -// console.log(crewMember2.printOutName(),crewMember1.name) -// console.log(mav.type) -// console.log(mav.ability) -// console.log(mav.crew.length) - - -// Your code here -// console.log(crewMember1) -// console.log(crewMember1.name); -// console.log(crewMember1.job); -// console.log(crewMember1.specialSkill); -// console.log(crewMember1.ship); -// crewMember1.enterShip('mav'); -// console.log(ship.crew) -// console.log(crewMember1.ship) - - - // console.log(mav); +// crewMember2.assignShip() +// console.log(crewMember2.ship) +// mav.missionStatement(); +// hermes.missionStatement(); +// crewMember1.enterShip() +// crewMember2.enterShip(hermes) +// mav.missionStatement(); +// hermes.missionStatement(); //tests if (typeof describe === 'function') { describe('CrewMember', function() { From 97e574f561f1fa246e02dad76be1836b21fcf266 Mon Sep 17 00:00:00 2001 From: Dane Middleton Date: Thu, 17 May 2018 18:29:03 -0500 Subject: [PATCH 3/3] tests passing working assignShip() --- 05week/spaceTravelToMars.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/05week/spaceTravelToMars.js b/05week/spaceTravelToMars.js index 5e9725f5d..1ff68566e 100644 --- a/05week/spaceTravelToMars.js +++ b/05week/spaceTravelToMars.js @@ -63,7 +63,7 @@ const crewMember1 = new CrewMember('Rick Martinez', 'pilot', 'chemistry'); const crewMember2 = new CrewMember('Commander Lewis', 'commander', 'geology'); const mav = new Ship('Mars Ascent Vehicle', 'MAV', 'Ascend into low orbit'); const hermes = new Ship('Hermes', 'Main Ship', 'Interplanetary Space Travel'); -// crewMember1.assignShip() +// crewMember1.assignShip() // console.log(crewMember1.ship) // crewMember2.assignShip() // console.log(crewMember2.ship)