ZAMYLA Chan: Well, aħna qegħdin hawn, l-aħħar p stabbiliti fl CS50. Nifraħ yourselves milli jkollhom wasal s'issa peress ewwel Hello tiegħek Dinjiet u Stampar Up Piramidi għall Mario. Inti għamilt websajt aħħar ġimgħa. U aħna qed tmur li jkun qed jagħmel xulxin din il-ġimgħa, wieħed li jippermetti li inti sewqan madwar il-kampus Harvard, picking up membri tal-persunal CS50 u jġibhom lura għall tagħhom djar residenzjali. Issa, l-aħħar ġimgħa ħdimna fil PHP, lingwa server sekondarji. Għal din p-sett, aħna qed jkollna introdotti li JavaScript, li huwa lingwa naħa tal-klijent. Mela ejja tagħti ħarsa lejn uħud mill- kodiċi ta 'distribuzzjoni li mogħtija lill inti għal din p-sett. Fil-folder JavaScript, se jkun hemm jkun mazz ta 'JavaScript fajls. Hemm buildings.js, li fih firxa tal-bini madwar Harvard kampus bl-informazzjoni tagħhom u l-pożizzjoni. Houses.js firxa ta 'Harvard djar residenzjali tagħhom latitudnijiet u lonġitudnijiet. Passengers.js fih firxa ta ' passiġġieri, il-membri tal-persunal CS50 li inti ser tkun li tressaq lura lejn djar residenzjali tagħhom. Math3D.js, li fih ħafna ta ' funzjonijiet li għandhom x'jaqsmu mal-moviment. Jekk int matematikament istess fehma, imbagħad I welcome inti tagħti ħarsa. Imma inti m'għandekx bżonn li wieħed jifhem kollox fil hemmhekk. Shuttle.js, li jittratta moviment tal-Shuttle tal. U index.html huwa l-home page fejn kollox jiġri, verament, fejn il- utent huwa interazzjoni mal-sit. Service.css hija l-karta tal-istil CSS, li minbarra l-Twitter Librerija bootstrap, kontrolli kif jistenna index.html. U allura aħna wkoll ikollhom service.js, li fih il-funzjonijiet ta 'servizz għall- il-Shuttle. U hawnhekk fejn int ser tkun timla xi wħud mill-do to-. Issa ejja tagħti ħarsa lejn oġġetti u arrays assoċjattiva fl JavaScript, li, għall-finijiet u effetti kollha, huma interkambjabbli. Jekk jien ridt li tagħmel oġġett varjabbli imsejħa wand, nixtieq jiddikjaraha. U ġewwa dawk braces kaboċċi, nixtieq tispeċifika, il-qalba hija Unicorn, l-injam huwa ċirasa, u t-tul huwa ta '13. Issa, I jistgħu wkoll aċċess valuri ta 'oġġetti li jużaw notazzjoni firxa assoċjattiva. Qalba indiċi So wand, I tista 'tistabbilixxi li ugwali għal Unicorn, jew jivverifikaw li jekk għandi bżonn. Jew I jistgħu jużaw l-operatur dot wand.wood ugwali ċirasa, u hekk u ibqa 'sejjer hekk. Allura inti tara li arrays assoċjattiva u oġġetti fl JavaScript ser ikunu interkambjabbli, u se jaqgħu fil pjuttost handy. Imbagħad naraw firxa ta 'bini fl buildings.js, għal darb'oħra, firxa ta 'oġġetti. Jekk jien ridt li jagħmlu firxa ta 'l-aħjar bini fuq Harvard kampus, allura I jagħmilha kif ġej. Bl-użu dan l-oġġett notazzjoni, fejn I jaħżnu l-għeruq, l-isem, l-indirizz, latitudni, lonġitudni u għal kull oġġett bini wieħed. Ejja malajr nitkellmu dwar varjabbli fl JavaScript. Bħal PHP, JavaScript varjabbli huma dgħajjef jew laxk ittajpjat. Biex jinħoloq varjabbli lokali, inti prefiss l-isem varjabbli V-A-R, var. Issa, fil-JavaScript, il-funzjonijiet se jillimita l-ambitu ta 'varjabbli. Mela jekk għandek varjabbli lokali fi ħdan , funzjoni funzjonijiet allura oħra ma jistgħux ikollhom aċċess għaliha. Iżda b'differenza C, loops u kundizzjonijiet ma jillimita l-ambitu ta 'varjabbli. Għalhekk anki jekk inti tiddikjaraha ġewwa ta ' kundizzjoni, il-funzjoni kollha se jkollhom aċċess għaliha. Issa, mingħajr var, il-varjabbli se jkun globali. Mela jekk inti biss tiddikjara l-isem u assenjat valur, allura dak il-varjabbli se jkun fattur varjabbli globali fl JavaScript. Issa, fid-djar, għandna assoċjattiva firxa ta 'oġġetti tat-tip ospitanti, fejn kull dar huwa biss latitudni u lonġitudni. Imbagħad għandna l-passiġġieri array, li hija array tat-tip oġġett passiġġieri. Allura kull passiġġier għandu utent isem, isem, u dar. Avviż li jien qal tat-tip passiġġieri, li verament ifisser biss li kull oġġett għandu l- istess pari valur ewlenin. Allura kull oġġett ta 'tip passiġġier għandu isem l-utent, l-isem, u dar. Allura dak li għandna bżonn li jagħmlu għall-p-sett? Well, għandna bżonn li jippermettu lill-utenti li pick up membri tal-persunal, li jintwerew kollha il-membri tal-persunal li bħalissa huma fil- shuttle tagħna, u biex qatra minnhom off. U allura aħna ser jitkellmu wkoll dwar extra karatteristiċi li jistgħu jiġu implimentati għal il-Shuttle p-set. Imma ejja nitkellmu dwar Pickup ewwel. L-uċuħ tal-persunal CS50 kienu mħawla kollha fuq il-kampus, fejn kull wiċċ hija implimentata bħala trade post fuq id-Dinja 3D, u bħala markatur fuq il-mappa 2D. Allura meta l-utent klikks l-Pickup buttuna, irridu żid qrib passiġġieri fil-shuttle. U aħna rridu wkoll biex jitneħħew il-post tagħhom jimmarkaw mid-dinja u neħħi tagħhom markatur minn mappa, li jindika li dawn qed fil-shuttle tagħna issa. Allura kif nistgħu jiskopru jekk il-passiġġieri huma fil-firxa ta 'shuttle tagħna? Ukoll, id-distanza funzjoni, sabiex shuttle.distance, li jgħaddi fil- latitudni u lonġitudni, se jikkalkula id-distanza mill-pożizzjoni attwali tal-shuttle sal-punt li inti tispeċifika ma 'dak mogħti latitudni u lonġitudni. Allura inti tista 'tuża dan biex tikkalkula l- distanza mill-shuttle għall- passiġġieri. Imma kif tkun taf fejn il-passiġġieri huma? Ukoll, li fejn aħna ser ikollhom jeditjaw il-funzjoni timla. Timla postijiet kollha tal-membri tal-persunal fil-passiġġieri fid-dinja u fil-mappa, iżda ma jaħżnu post tagħhom. Allura forsi inti jista 'jaħżen tagħhom poġġi marki u markers f'xi firxa globali. Issa, diāà hemm firxa globali ħażna ta 'informazzjoni mill-passiġġieri. Il-ħwienet passiġġieri array kull l-isem tal-passiġġier u d-dar tagħhom. Allura forsi inti tista 'żżid ftit parametri hemm biex l-oġġetti tal-passiġġieri. Biex tgħinna jiskopru kollha tal-passiġġieri fil-firxa ta 'tagħna shuttle, loop ejja kollha permezz tal- passiġġieri fil-firxa passiġġieri. A għall-loop fil JavaScript tista 'tidher xi ħaġa bħal din, simili ħafna għal dawk għal-linji fl C. Jew nistgħu jużaw alternattiva għall-istruttura loop, għal i var fil-firxa, fejn i xorta se tkun l-indiċi, imma inti m'għandekx bżonn li tispeċifika l-array.length kondizzjoni ui + +. Post ta 'kull passiġġier huwa mogħtija mill-marka post tagħhom. Iżda l-marka post ma jkunx l- latitudni u l-lonġitudni. Għandna li jaċċedu għal dawk il-parametri minn jkollna l-ġeometrija, bl-użu get ġeometrija dwar it-trade post, u mbagħad ladarba aħna għandna l-ġeometrija, jkollna jew il-latitudni jew il-lonġitudni jużaw dawk il-funzjonijiet. Allura issa nafu kif jiskopru jekk passiġġieri huma fi ħdan firxa ta 'shuttle tagħna. Ladarba għandna dawn il-passiġġieri, aħna ser tixtieq iżżid xi passiġġieri li huma f'dik il-medda. Aħna rridu li jippermettulhom li hops fuq u jieħdu siġġu fuq shuttle tagħna, iżda biss jekk ikollna spazju biżżejjed għalihom. Il-firxa shuttle.seats se jindikaw jekk sedili huma vojta, jew li s f'dak is-sedil. Mela jekk sedil ikun vojt, imbagħad dak is-sedil tkun nulla. Allura jtenni fuq il-firxa sedili, verifika għall postijiet vojta, il-ħażna passiġġieri fil dawk is-sedili sakemm inti m'għandhom l-ebda sedili aktar vojta. U sfortunatament, xi passiġġieri oħra se jkollhom għalfejn jistennew l- ħin li jmiss l-shuttle jaqa. Ladarba jaslu fuq il-shuttle, aħna ser rridu biex jitneħħew marka post tagħhom, li huwa ritratt tagħhom fid-dinja 3d. Jekk jien ridt li tneħħi marka post p, allura nixtieq nikseb kollha tal-karatteristiċi mill-Dinja tiegħi, mill-Dinja Google, u mbagħad neħħi dak il-post speċifiku marka billi tuża l-funzjoni removeChild. Imbagħad fl-aħħar, ejja tneħħi l-markatur, l-ikona fuq il-mappa 2D, għal kwalunkwe passiġġieri li aħna picking up. Biex tneħħi m marker, imbagħad I ser biss tesegwixxi null m.setMap. Agħmel dan għal kull passiġġier fil-firxa, u inti ħadthom lest Pickup. Il-funzjoni chart għandhom juru kollha tal-passiġġieri li huma fil tiegħek shuttle, u s-sede vojta jekk vojta. Allura chart għandu jtenni fuq shuttle.seats, juri l- informazzjoni tal-passiġġieri għal kull indiċi, u s-sede vojta jekk f'dak l-indiċi huwa null. Issa jekk test HTML jitqiegħed ġewwa ta ' , Imbagħad bil-JavaScript varjabbli użu document.getElementById, chart jista jeditjaw il-HTML ġewwa dak mogħti element billi jassenja l- Test HTML għall- document.getElementById varjabbli HTML ġewwa. Meta l-utenti ikklikkja l-buttuna Drop Off fil index.html, dan ser sejħa- funzjoni dropoff. U huwa xogħol tagħna sabiex jimplimentaw dik. Fl dropoff, aħna ser tixtieq li tneħħi kwalunkwe passiġġieri minn l-shuttle biss jekk aħna qed fil-firxa tad-destinazzjoni tagħhom, dar residenzjali tagħhom. Allura dropoff ser ikollhom jiċċekkjaw jekk l-shuttle huwa fil-firxa ta 'kwalunkwe mill- djar, u tneħħi kull bżonn passiġġieri mill-shuttle. Allura kif nistgħu jiċċekkja jekk aħna qed fil-firxa ta 'kwalunkwe djar? Well, għal darb'oħra, aħna ser jagħmlu użu mill- shuttle.distance funzjoni, li jgħaddi fil- il-latitudni u lonġitudni tal-punt li aħna qed iċċekkjar kontra. Imma liema huma dawk il-punti? Ukoll, il-firxa houses, jekk tiftakar fil houses.js, taħżen l- latitudni u lonġitudni ta 'kull dar fil firxa assoċjattiva, fejn kull indiċi huwa l-isem ta 'dik id-dar. Imbagħad biex jitneħħew passiġġieri - ukoll, biss jekk aħna qed fil-firxa tagħhom dar li jkunu jridu jmorru biex. Għalhekk għal darb'oħra, ftakar li l-passiġġieri taħżen l-dar li kull passiġġier trid tmur. Jekk huma fil-firxa tagħhom house, allura aħna ser jitneħħa dak passiġġieri minn shuttle.seats u sett pożizzjoni tagħhom fil-array li null. Issa ejja nitkellmu dwar xi karatteristiċi extra li jistgħu jiġu implimentati l-CS50 Shuttle p-set. Hemm sistema ta 'punti li biha inti żżomm rekord ta 'kemm jindika l-utent ikollu. Għall twaqqa off-passiġġieri b'suċċess, jistgħu jiksbu punti. Iżda għall jippruvaw li tinżel off passiġġieri fejn ma jkunx hemm xi dar fil-qrib, ukoll, huma jistgħu jiksbu penalizzati għal dan. Allura forsi inti tixtieq li żżomm rekord ta ' il-punti fil-varjabbli globali. Inti tista 'timplimenta forsi timer, fejn l-utent għandu ċertu ammont ta ' ħin biex jittellgħu u qatra off a Ċertu numru ta 'passiġġieri. Forsi anke tintegra dan mas-sistema ta 'punti. Jew inti tista Edit Chart tali li passiġġieri huma magħżula mill-house. Allura li probabbilment tkun ta 'tip funzjoni li shuttle.seats. Inti tista 'timplimenta karatteristika li jtajru, fejn jekk l-utent idaħħal id Konami kodiċi, allura l-shuttle liftijiet off l- art u l-shuttle jistgħu jtiru. Iżda għal tnaqqis sigur off, aħjar biex tagħmel il-mekkuk art roti tagħha fuq il- art l-ewwel. Tista 'wkoll timplimenta teleportation, fejn inti tagħmel drop down lista ta ' bini fil index.html. U tagħżel waħda minn dawn, l- utent se jiġu ttrasportati lejn li l-bini fuq il-kampus. OK, għalkemm, li jivvjaġġaw permezz il-ħitan ta 'xi bini fuq tiegħek mod hemmhekk. Tista 'wkoll jibdlu l-veloċità tal- shuttle, li tippermetti lill-utent biex tiżdied jew inaqqsu l-veloċità. Forsi inti tixtieq varjabbli globali biex jżommu rekord ta 'kemm fjuwil il- shuttle għandha, jonqos huwa kif tmur flimkien. Ladarba inti hit żero, għalkemm, l-shuttle mhux se jkunu jistgħu jiċċaqalqu sakemm inti ħadthom fjuwil, forsi permezz ta 'buttuna, jew anke jagħmlu istazzjon tal-gass tiegħek. Iżda dan ċertament mhuwiex lista eżawrjenti. Iċċekkja l-spec għall-full lista, jew forsi tipproponi tiegħek stess li TF tiegħek. Il-sema hija l-limitu. Dan huwa tiegħek aħħar CS50 p-set, hekk jieħdu pjaċir miegħu. Dan kien CS50 Shuttle. Stajt ltqajna ngħid, huwa kien ta 'pjaċir tagħmel dawn għalik mal- tim tal-produzzjoni. U nispera li inti stajt igawdu minnhom, kif ukoll. Jisimni Zamyla. U dan kien CS50.