From fc216af1b65f1c70fd01531d4733ecbbcf7c3c92 Mon Sep 17 00:00:00 2001 From: Hanna Mazzoni Date: Wed, 31 Jan 2018 11:32:36 +0100 Subject: [PATCH] done --- .DS_Store | Bin 0 -> 8196 bytes starter_code/elevator.js | 99 +++++++++++++++++++++++++++++++++------ starter_code/index.js | 45 +++++++++++++++++- starter_code/person.js | 5 +- 4 files changed, 132 insertions(+), 17 deletions(-) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..0322a34fa8ddb945634abf7ba1f23089a9b287b7 GIT binary patch literal 8196 zcmeI1T}&KR6oAiJXqoF28L)+|rF97{0;QIvf6zY{7D`F2RF=Qe>N2}C!o=Abx-+|5 zKy+jEP1{7HMoo+{CMIIy6E8lfZ)#$q#wJ!Dd@<^SFTVO<^xV0#NTCp))TVQjx#!M3 z=ghtL%r|rQ%mM)RsIB?}rE-T*iD^6w-TjQ01inBzX$p z6>3u+;Q2&+8S`aPNY9n7DY6IjUC~c5P`Hym!p%v>d|4DyxC07zK!0TPGZgejC%=ei z4j2xNW(rVd>cw<`>5dOS20- zcFxiq?>gsHcba^?fs#siem;7ry)6>$SZIsPM?1Qx-PzH(upmiwd!i=>CNr~h^G_~3 z^_o~C`tJ#-TD9iaH(Idi%FS0J4vO= zp*RerZR=cC&wHz^POD}*M@D+LX(o(0-5E>UW-ennyf3NL zaR0#>*RU;TRL?pj8Iu+(Yj;F;w>)s5^F+_}yQ`GyntK?Vpio<`@wlO9M+%1KPM=qu zv~FpJH8qwu93y4w!L+ zOOmi}*eS~wxF(*}sn&dlJxwwjc4)ea>KnH1Wo-Bfx`&G654FFY$s?wk(oIEUVw{7A zm^_vjYf{emon1$nJf5~Q8Cr@{jctDS$p>ZmF+TD`s^bpM=oZcDGk^Fv&FVbYb!!@* zQ)8@I+~&quyJ#qUL)i{(a1w@Kf<8!DP=M#*1-J^=;0<^OK7b|o7(RtB;7j-lzJ~AN zNB9YThF{<}_yhh#K*YPS7V9vK4cLUu*n+Ki06Xz09>e3TGW|y}Go&{6~ekfZj=ZYMeT@B3Icgv~kwQ_`{{ZS_C%$@NHOx4+*|+;0F9a;QdO_{Z7DDV6_L_ z4y?yrct1hcihFS%9>ycsMc{GlPGLU|;1DKo1V;%zmEhA*$0?k_OX#3W5I&7Xd + setInterval(() => { + this.update(); + }, 1000); + } + + stop() { + clearInterval( + setInterval(() => { + this.update(); + }, 1000) + ); + } + + _passengersEnter() { + if (this.waitingList.length !== 0) { + let personsEntering = this.waitingList.filter( + passenger => passenger.originFloor === this.floor + ); + for (let i = 0; i < personsEntering.length; i++) { + console.log(`${personsEntering[i].name} has just entered the elevator`); + this.passengers.push(personsEntering[i]); + this.requests.push(personsEntering[i].destinationFloor); + this.requests = this.requests.filter(floor => floor !== this.floor); + } + this.waitingList = this.waitingList.filter( + passenger => passenger.originFloor !== this.floor + ); + } + } + + _passengersLeave() { + let personsLeaving = this.passengers.filter( + passenger => passenger.destinationFloor === this.floor + ); + for (let i = 0; i < personsLeaving.length; i++) { + console.log(`${personsLeaving[i].name} has left the elevator`); + this.requests = this.requests.filter(floor => floor !== this.floor); + } + this.passengers = this.passengers.filter( + passenger => passenger.destinationFloor !== this.floor + ); + } + + floorUp() { + if (this.floor < this.MAXFLOOR) { + this.floor += 1; + this.direction = "up"; + } else { + console.log("you already reached the last floor"); + } + } + + floorDown() { + if (this.floor > 0) { + this.floor -= 1; + this.direction = "down"; + } else { + console.log("you already reached the ground floor"); + } + } + + call(person) { + this.waitingList.push(person); + this.requests.push(person.originFloor); + } + + update() { + this.log(this.direction, this.floor); + } + + log() { + console.log(`Direction:${this.direction} | Floor:${this.floor}`); + } } module.exports = Elevator; diff --git a/starter_code/index.js b/starter_code/index.js index 5e480eb..274c45d 100644 --- a/starter_code/index.js +++ b/starter_code/index.js @@ -1 +1,44 @@ -const Elevator = require('./elevator.js'); +console.log("I'm executed"); +const Elevator = require("./elevator.js"); +const Person = require("./person.js"); + +let elevator = new Elevator(); +elevator.floorUp(); +elevator.floorUp(); + +let person1 = new Person("john", 2, 3); +let person2 = new Person("janny", 2, 4); +let person3 = new Person("jany", 0, 6); +elevator.call(person1); +elevator.call(person2); +elevator.call(person3); +console.log(elevator.floor); //2 +console.log(elevator.requests); +console.log(elevator.waitingList); + +elevator._passengersEnter(); +console.log(elevator.passengers); +console.log(elevator.requests); +console.log(elevator.waitingList); + +elevator.floorUp(); +elevator._passengersLeave(); +console.log(elevator.floor); //3 +console.log(elevator.passengers); +console.log(elevator.requests); + +elevator.floorUp(); +elevator._passengersLeave(); +console.log(elevator.floor); //4 +console.log(elevator.passengers); +console.log(elevator.requests); +console.log(elevator.waitingList); + +elevator.floorDown(); +elevator.floorDown(); +elevator.floorDown(); +elevator.floorDown(); +elevator._passengersEnter(); +console.log(elevator.floor); //0 +console.log(elevator.passengers); +console.log(elevator.requests); diff --git a/starter_code/person.js b/starter_code/person.js index fddcc22..0dbcccf 100644 --- a/starter_code/person.js +++ b/starter_code/person.js @@ -1,5 +1,8 @@ class Person { - constructor(name, originFloor, destinationFloor){ + constructor(name, originFloor, destinationFloor) { + this.name = name; + this.originFloor = originFloor; + this.destinationFloor = destinationFloor; } }