ZAMYLA Chan: Wel, dyma ni, yn CS50 y gosod p-diwethaf. Llongyfarch eich hunain o gael dod mor bell ers eich Helo cyntaf Worlds ac Argraffu Up Pyramidiau i Mario. Gwnaethoch wefan yr wythnos diwethaf. Ac rydym yn mynd i fod yn gwneud un arall yr wythnos hon, un sy'n eich galluogi i gyrru o gwmpas y campws Harvard, casglu i fyny aelodau o staff CS50 a dod â nhw yn ôl i'w tai preswyl. Yn awr, yr wythnos diwethaf buom yn gweithio mewn PHP, iaith ochr y gweinydd. Ar gyfer y p-set, rydym yn cael eu cyflwyno i JavaScript, sydd yn iaith ochr y cleient. Felly, gadewch i ni edrych ar rai o'r cod dosbarthu sy'n cael ei darparu i i chi am y p-set. Yn y ffolder JavaScript, bydd yna fod yn griw o ffeiliau JavaScript. Mae buildings.js, sy'n cynnwys amrywiaeth o adeiladau o gwmpas Harvard campws gyda'u gwybodaeth a sefyllfa. Houses.js yn amrywiaeth o Harvard tai preswyl gyda'u lledredau a hydredau. Passengers.js yn cynnwys amrywiaeth o teithwyr, aelodau o staff CS50 y byddwch yn dod yn ôl i eu tai preswyl. Math3D.js, sy'n cynnwys llawer o swyddogaethau sy'n ymwneud â mudiad. Os ydych yn meddwl yn fathemategol, yna Yr wyf yn croesawu chi i edrych. Ond nid oes angen i chi ddeall popeth i mewn 'na. Shuttle.js, sy'n delio â symudiad y Shuttle yn. Ac index.html yw'r dudalen cartref lle popeth yn digwydd, mewn gwirionedd, lle mae'r defnyddiwr yn rhyngweithio â'r safle. Service.css yw'r daflen arddull CSS, sydd, yn ychwanegol at y Twitter Llyfrgell bootstrap, rheolaethau sut yn edrych index.html. Ac yna mae gennym hefyd service.js, a oedd yn yn cynnwys swyddogaethau gwasanaeth ar gyfer Shuttle. A dyma ei ble rydych yn mynd i fod lenwi yn rhai o'r do i-yn. Nawr, gadewch i ni edrych ar wrthrychau a araeau cysylltiadol yn JavaScript, sydd, ar gyfer bob pwrpas, yn ymgyfnewidiol. Os wyf yn awyddus i wneud gwrthrych newidyn a elwir yn ffon, byddwn ddatgan ei. Ac y tu mewn braces cyrliog hynny, buaswn ei bennu, y craidd yn unicorn, y coed yn ceirios, ac hyd yn 13. Yn awr, gallaf hefyd gael mynediad gwerthoedd o wrthrychau gan ddefnyddio nodiant amrywiaeth cysylltiadol. Craidd mynegai Felly ffon, gallaf osod sy'n gyfartal i unicorn, neu gwirio bod os oes angen. Neu gallaf ddefnyddio'r gweithredwr dot wand.wood hafal ceirios, a y blaen ac yn y blaen. Felly, byddwch yn gweld bod araeau cysylltiadol a gwrthrychau mewn JavaScript yn mynd i fod gyfnewidiol, a bydd yn dod i mewn yn eithaf 'n hylaw. Yna, rydym yn gweld amrywiaeth o adeiladau mewn buildings.js, eto, mae amrywiaeth o wrthrychau. Os wyf yn awyddus i wneud amrywiaeth o'r gorau adeiladau ar y campws Harvard, ac yna Byddwn yn ei gwneud yn fel a ganlyn. Gan ddefnyddio hyn nodiant gwrthrych, lle I storio y gwreiddyn, enw, cyfeiriad, lledred, hydred a ar gyfer pob gwrthrych un adeilad. Gadewch i ni yn gyflym siarad am newidynnau yn JavaScript. Fel PHP, newidynnau JavaScript yn cael eu teipio wan neu'n llac. I greu newidyn lleol, rydych rhagddodiad yr enw newidyn gyda V-A-R, var. Yn awr, yn JavaScript, bydd swyddogaethau cyfyngu ar gwmpas newidynnau. Felly os oes gennych newidyn lleol o fewn swyddogaeth, yna swyddogaethau eraill Ni all gael gafael arno. Ond yn wahanol i C, ni dolenni ac amodau yn ei wneud cyfyngu ar gwmpas newidyn. Felly, hyd yn oed os ydych yn ei ddatgan tu mewn i cyflwr, y swyddogaeth gyfan yn cael mynediad iddo. Yn awr, heb var, y newidyn yn fyd-eang. Felly, os ydych yn unig yn datgan enw a briodoli gwerth, yna newidyn Bydd yn newidyn byd-eang yn JavaScript. Yn awr, mewn tai, mae gennym cysylltiadol amrywiaeth o wrthrychau math cynnal, lle pob tŷ yn unig yw lledred a hydred. Yna, mae gennym y teithwyr array, sydd yn arae o'r math gwrthrych teithwyr. Felly mae pob teithiwr oes gan ddefnyddiwr enw, enw, a thŷ. Sylwch fod fy mod yn dweud o'r math teithwyr, sydd mewn gwirionedd yn unig yn golygu bod pob gwrthrych gan y un barau gwerth allweddol. Felly, pob gwrthrych o fath teithwyr wedi enw defnyddiwr, enw, a thŷ. Felly, beth sydd angen i ni wneud ar gyfer y p-set? Wel, mae angen i alluogi defnyddwyr i ddewis i fyny o aelodau staff, i arddangos pob un o'r yr aelodau o staff sydd ar hyn o bryd yn ein gwennol, ac i ollwng i ffwrdd. Ac yna byddwn hefyd yn siarad am ychwanegol nodweddion y gellir eu rhoi ar waith ar gyfer Shuttle p-set. Ond gadewch i ni siarad am pickup yn gyntaf. Wynebau staff CS50 wedi bod yn plannu ar hyd a lled y campws, lle mae pob wyneb yn cael ei weithredu fel marc lle ar y Ddaear 3D, ac fel marcio ar y map 2D. Felly, pan fydd y defnyddiwr yn clicio y Pickup botwm, rydym am ychwanegu gerllaw teithwyr i'r gwennol. Ac rydym hefyd yn awyddus i dynnu eu lle marcio o'r byd ac yn symud eu marciwr o'r map, sy'n dangos bod eu bod yn ein gwennol nawr. Felly, sut ydym yn canfod os deithwyr o fewn ystod o o'n gwennol? Wel, y pellter ffwythiant, felly shuttle.distance, gan fynd heibio yn y lledred a hydred, bydd yn cyfrifo y pellter oddi wrth y sefyllfa bresennol y gwennol i'r pwynt eich bod yn nodi i'r hyn a roddwyd lledred a hydred. Felly, gallwch ddefnyddio hwn i gyfrifo pellter oddi wrth y gwennol i'r teithwyr. Ond sut ydych chi'n gwybod ble y teithwyr yn? Wel, dyna lle bydd rhaid i ni olygu'r swyddogaeth boblogi. Boblogi lleoedd holl aelodau'r staff yn deithwyr i mewn i'r byd ac i mewn i'r map, ond nid yw'n storio eu lleoliad. Felly, efallai y gallwch storio eu rhoi marciau a marcwyr mewn rhai amrywiaeth byd-eang. Yn awr, eisoes mae amrywiaeth byd-eang storio gwybodaeth o deithwyr. Mae'r siopau teithwyr amrywiaeth pob enw teithwyr a'u tŷ. Felly, efallai y gallwch ychwanegu ychydig o baramedrau yno i'r gwrthrychau teithwyr. Er mwyn ein helpu i ganfod yr holl deithwyr o fewn yr ystod o ein gwennol, dolen osod drwy bob un o'r teithwyr yn yr arae teithwyr. Gallai A am ddolen yn JavaScript edrych rhywbeth fel hyn, yn debyg iawn i rhai ar gyfer dolenni ym C. Neu gallwn ddefnyddio amgen ar gyfer strwythur dolen, er i var mewn amrywiaeth, lle y bydd i yn dal i fod y mynegai, ond nid oes angen i chi wneud nodi'r array.length cyflwr ac i + +. Leoliad pob teithiwr yn a roddir gan eu marc lle. Ond nid y marc lle yn y lledred a hydred y. Mae'n rhaid i ni gael mynediad paramedrau hynny drwy cael y geometreg, gan ddefnyddio get geometreg ar y marc lle, ac yna unwaith y byddwn yn cael y geometreg, yn cael naill ai'r lledred neu'r hydred ddefnyddio swyddogaethau hynny. Felly nawr rydym yn gwybod sut i ganfod a yw teithwyr o fewn ystod ein gwennol. Unwaith y byddwn wedi teithwyr hynny, rydym yn annhymerus ' eisiau ychwanegu unrhyw deithwyr sy'n o fewn yr ystod. Rydym yn awyddus i ganiatáu iddynt neidio ar a chymryd sedd ar ein gwennol, ond dim ond os oes gennym ddigon o le iddynt. Bydd yr amrywiaeth shuttle.seats dangos a yw seddi yn wag, neu pwy sydd yn y sedd honno. Felly, os yw sedd yn wag, yna Bydd y sedd honno yn null. Felly ailadrodd dros y rhesi o seddi, gwirio am seddi gwag, storio teithwyr i seddi hynny hyd nes y byddwch Nid oes rhaid i unrhyw seddi mwy wag. Ac yn anffodus, unrhyw deithwyr eraill Bydd yn rhaid i aros am y tro nesaf y wennol yn dod i lawr. Unwaith y maent yn ei gael ar y gwennol, byddwn yn eisiau i gael gwared ar eu marc ar waith, sy'n yw eu llun yn y byd 3D. Os wyf yn awyddus i ddileu marc lle p, yna byddwn yn cael yr holl o'r nodweddion gan fy Ddaear, o Google Earth, ac yna tynnwch y lle penodol nodi ddefnyddio'r swyddogaeth removeChild. Yna yn olaf, gadewch i ni gael gwared ar y marciwr, yr eicon ar y map 2D, ar gyfer unrhyw teithwyr ein bod yn codi i fyny. I ddileu m marciwr, yna 'n annhymerus' dim ond gweithredu m.setMap null. Gwnewch hyn ar gyfer unrhyw deithwyr o fewn yr ystod, a ydych wedi gorffen pickup. Dylai'r swyddogaeth siart yn dangos pob o'r teithwyr sydd yn eich gwennol, a sedd yn wag os wag. Felly, dylai siart ailadrodd dros shuttle.seats, gan ddangos y gwybodaeth i deithwyr ar gyfer pob mynegai, a sedd wag os yw'r mynegai yn null. Nawr, os HTML testun yn cael ei rhoi tu mewn i JavaScript amrywiol, ac yna trwy ddefnyddio document.getElementByID, gall siart olygu'r HTML mewnol a roddwyd elfen erbyn neilltuo'r HTML testun i'r document.getElementByID amrywiol HTML mewnol. Pan fydd y defnyddwyr glicio ar y botwm Drop Off yn index.html, bydd yn ffoniwch y swyddogaeth dropoff. Ac mae'n ein gwaith i weithredu hynny. Yn dropoff, byddwn yn awyddus i gael gwared ar unrhyw teithwyr o'r gwennol dim ond os rydym mewn ystod eu cyrchfan, eu tŷ preswyl. Felly bydd yn rhaid i dropoff i weld a y wennol yn ystod unrhyw un o'r tai, ac yn cael gwared ar unrhyw angen teithwyr o'r gwennol. Felly sut rydym yn gwirio os ydym yn mewn ystod o unrhyw dai? Wel, unwaith eto, byddwn yn gwneud defnydd o'r shuttle.distance swyddogaeth, gan fynd yn y lledred a hydred y pwynt ein bod yn gwirio yn erbyn. Ond beth yw'r pwyntiau hynny? Wel, y tai array, os ydych yn cofio mewn houses.js, storio'r lledred a hydred pob tŷ yn amrywiaeth cysylltiadol, lle mae pob mynegai yw enw'r tŷ hwnnw. Yna i dynnu teithwyr - yn dda, dim ond os ein bod mewn ystod eu tŷ y maent eisiau mynd i. Felly eto, cofiwch y teithwyr storio'r tŷ bod pob teithiwr eisiau mynd i'r. Os ydynt o fewn ystod eu ty, yna byddwn yn cael gwared ar y teithwyr o shuttle.seats a gosod eu safle yn yr arae i null. Nawr, gadewch i ni siarad am rai nodweddion ychwanegol y gellir eu rhoi ar waith yn y CS50 Gwennol p-set. Mae yna system bwynt lle eich bod yn cadw golwg ar faint o pwyntiau defnyddiwr wedi. Ar gyfer gollwng teithwyr yn llwyddiannus, gallant gael pwyntiau. Ond am geisio ollwng teithwyr lle nad oes unrhyw dŷ gerllaw, yn dda, gallant gael eu cosbi am hynny. Felly efallai y byddwch am gadw golwg ar y pwyntiau mewn newidyn byd-eang. Gallwch weithredu efallai timer, lle y defnyddiwr yn cael rhywfaint o amser i godi a gollwng oddi ar nifer penodol o deithwyr. Efallai hyd yn oed yn integreiddio hyn â'r system pwynt. Neu gallwch Golygu Siart fel bod teithwyr yn cael eu datrys gan y tŷ. Felly, byddai hynny'n debygol o fod yn fath gweithredu i shuttle.seats. Gallwch weithredu nodwedd hedfan, lle os yw'r defnyddiwr mewnbynnau y Konami cod, yna bydd y gwennol lifftiau oddi ar y Gall ddaear ac y gwennol hedfan. Ond ar gyfer gostyngiad yn ddiogel i ffwrdd, orau i wneud y wennol tir ei olwynion ar y ddaear yn gyntaf. Gallwch hefyd yn gweithredu teleportation, lle rydych yn gwneud gostyngiad restr o lawr adeiladau mewn index.html. A dewis un o'r rheini, y Bydd y defnyddiwr yn cael ei gludo i adeilad hwnnw ar y campws. OK, fodd bynnag, i deithio drwy muriau rhai adeiladau ar eich ffordd yno. Gallwch hefyd newid y cyflymder y gwennol, gan ganiatáu i'r defnyddiwr i gynyddu neu ostwng y cyflymder. Efallai eich bod eisiau newidyn byd-eang i cadw golwg ar faint o danwydd y gwennol wedi, lleihau wrth i chi fynd ymlaen. Unwaith y byddwch yn taro sero, fodd bynnag, y wennol Ni fydd yn gallu symud oni bai eich bod wedi lenwi â thanwydd, efallai drwy ddefnyddio botwm, neu hyd yn oed wneud eich gorsaf nwy ei hun. Ond nad sicr yn rhestr gynhwysfawr. Edrychwch ar y fanyleb am y cyfnod llawn rhestru, neu efallai gynnig eich pen eich hun at eich TF. Mae'r awyr yn y cyfyngiad. Mae hyn yn eich CS50 olaf p-set, felly cael hwyl ag ef. Roedd hyn yn CS50 Shuttle. Mae'n rhaid i mi ddweud, mae wedi bod yn bleser gwneud hyn ar gyfer chi gyda'r tîm cynhyrchu. Ac yr wyf yn gobeithio yr ydych wedi mwynhau nhw, yn ogystal. Fy enw i yw Zamyla. Ac roedd hyn yn CS50.