ZAMYLA Chan: E pra, ja ku jemi, fundit p-vendosur në CS50. Përgëzoj veten nga detyrimi ardhur deri më tani që prej Përshëndetje tuaj të parë Botërore dhe Printime Up Piramidat për Mario. Ju bërë një faqe interneti javën e kaluar. Dhe ne jemi duke shkuar për të bërë një tjetër këtë javë, e që ju lejon për të përzënë rreth kampus Harvardit, picking up anëtarët e stafit CS50 dhe sjelljen e tyre përsëri në e tyre shtëpi banimi. Tani, javën e kaluar kemi punuar në PHP, një server side gjuhë. Për këtë p-grup, ne jemi duke u prezantuar në JavaScript, që është një klienti Gjuha anë. Pra, le të marrin një vështrim në disa nga Kodi shpërndarjes që është dhënë për të ju për këtë p-grup. Në dosje JavaScript, nuk do të të jetë një bandë e dosjeve JavaScript. Ka buildings.js, e cila përmban një grup i ndërtesave rreth Harvard kampus me informacionin e tyre dhe pozita. Houses.js është një koleksion i Harvardit shtëpi banimi me tyre latitudes dhe longitudes. Passengers.js përmban një rrjet të pasagjerë, anëtarët e stafit CS50 që ju do të sjellë përsëri në shtëpitë e tyre të banimit. Math3D.js, që përmban shumë funksionet për të bërë me lëvizjen. Nëse ju jeni matematikisht me mendje, atëherë Unë përshëndes ju për të marrë një sy. Por ju nuk keni nevojë për të kuptuar çdo gjë në atje. Shuttle.js, që merret me Lëvizja e anijes së. Dhe index.html është faqja ku çdo gjë ndodh, me të vërtetë, ku përdorues është bashkëveprojmë me këtë faqe interneti. Service.css është fletë stil CSS, e cila përveç Twitter Biblioteka bootstrap, kontrollet se si index.html duket. Dhe atëherë ne gjithashtu kemi service.js, të cilat përmban funksionet e shërbimit për Shuttle. Dhe këtu është ku ju jeni do të jetë plotësuar disa nga për-do-së. Tani le të marrin një vështrim në objekte dhe vargjeve asociative në JavaScript, të cilat, për të gjitha qëllimet dhe synimet, janë të këmbyeshëm. Në qoftë se kam kërkuar për të bërë një objekt një ndryshore quajtur një shkop magjik, unë do të deklarojnë atë. Dhe brenda këtyre formatimin e teksteve kaçurrel, unë do të specifikojë, thelbi është njëbrirësh, dru është qershi, dhe gjatësia është 13. Tani, unë gjithashtu mund të hyni në vlerat e objekteve duke përdorur simbol shoqerues array. Pra shkop magjik Indeksi core, unë mund të vënë që barabartë tek unicorn, ose kontrolloni se në qoftë se kam nevojë. Ose unë mund të përdorni dot operatorin wand.wood barabartë qershi, dhe kështu me radhë e kështu me radhë. Kështu që ju shihni se vargjeve asociative dhe objekte në JavaScript do të jetë këmbyeshëm, dhe vullneti vijnë në mjaft i dobishëm. Pastaj ne shohim një grup të ndërtesave në buildings.js, përsëri, një koleksion të objekteve. Në qoftë se kam kërkuar për të bërë një rrjet të mirë ndërtesave në kampus Harvard, pastaj Unë do të bëjë atë si më poshtë. Duke përdorur këtë simbol objekt, ku I ruajtur rrënjë, emrin, adresën, gjerësi, gjatësi dhe për çdo objekt të vetëm ndërtimin. Le të shpejt të flasim për variablat në JavaScript. Ashtu si PHP, variablat JavaScript janë të shtypur dobët ose lirshëm. Për të krijuar një ndryshore lokale, ju prefiksit Emri i ndryshueshëm me V-A-R, var. Tani, në JavaScript, funksionet do kufizojnë fushëveprimin e variablave. Pra, nëse ju keni një variabël lokale brenda një funksion, atëherë funksionet e tjera nuk mund të përdorni atë. Por ndryshe nga C, sythe dhe kushtet nuk kufizojnë qëllimin e një variable. Pra, edhe në qoftë se ju të deklarojë atë në brendësi të një kusht, i gjithë funksioni do të kenë qasje në të. Tani, pa var, e ndryshueshme do të jetë globale. Pra, nëse ju vetëm të shpallin emrin dhe të caktojë një vlerë, atëherë kjo e ndryshueshme do të jetë një ndryshore globale në JavaScript. Tani, në shtëpi, ne kemi një shoqerues koleksion të objekteve të tipit të presë, ku çdo shtëpi është vetëm një gjerësi dhe një gjatësi. Pastaj ne kemi pasagjerët array, e cila është një koleksion të tipit objekt pasagjerëve. Kështu që çdo pasagjer ka një përdorues emër, një emër dhe një shtëpi. Vini re se unë jam duke thënë të tipit pasagjerëve, i cili me të vërtetë vetëm do të thotë se çdo objekt ka njëjtat palë vlerë kryesore. Pra, çdo objekt i tipit pasagjerit ka një emër përdoruesi, një emër dhe një shtëpi. Pra, çfarë nuk kemi nevojë të të bëjë për p-vendosur të? E pra, ne kemi nevojë për të lejuar përdoruesit të marr up anëtarë të stafit, për të shfaqur të gjithë anëtarët e stafit që janë aktualisht në anijes tonë, dhe për rënie të tyre. Dhe pastaj ne do të flasim për ekstra karakteristika që mund të zbatohen për Shuttle p-set. Por le të flasim për marrje të parë. Fytyrat e stafit CS50 kanë qenë mbillen në të gjithë kampus, ku çdo Fytyra është zbatuar si një shenjë vend në Tokë 3D, si dhe një shënues në hartë 2D. Pra, kur përdoruesi klikimeve kamionçinë button, ne duam të shtoni aty pranë pasagjerë të anijes. Dhe ne gjithashtu duam të hequr vendin e tyre të shënuar nga bota dhe për të hequr të tyre shënues nga harta, duke treguar se ata janë në anije tonë tani. Deri sa nuk kemi zbuluar nëse udhëtarët janë brenda rrezes së anijes tonë? E pra, distanca funksion, kështu që shuttle.distance, duke kaluar në gjerësi dhe gjatësi, do të llogarisë distance nga pozicioni aktual e anijes deri në pikën që ju specifikoni me atë të dhënë gjerësi dhe gjatësi. Kështu që ju mund të përdorni këtë për të llogaritur Distanca nga anije të pasagjerë. Por si nuk e dini se ku pasagjerët janë? E pra, kjo është ajo ku ne do të duhet të modifikojnë funksionin populloj. Populloj Places të gjithë anëtarëve të stafit në pasagjerëve, në botë dhe në hartë, por nuk dyqan vendndodhjen e tyre. Pra, ndoshta ju mund të ruajë tyre të vendos shenjat dhe shënuesit në një rrjet global. Tani, ka tashmë një koleksion globale ruajtjen e informacionit nga udhëtarët. Pasagjerët array dyqane secili Emri i pasagjerit dhe shtëpia e tyre. Pra, ndoshta ju mund të shtoni një parametrat pak atje për objektet e pasagjerëve. Për të na ndihmuar të zbuluar të gjitha të udhëtarëve brenda rrezes së tonë anijes, loop le nëpër të gjitha pasagjerët në array udhëtarëve. Një për lak në JavaScript mund të duket diçka e tillë, shumë të ngjashme me ato për sythe në C. Ose ne mund të përdorim një alternative për strukturën loop, për i var në grup, ku unë ende do të jenë të indeksi, por ju nuk keni nevojë për të specifikojë array.length kusht dhe i + +. Vendndodhja Çdo udhëtar është jepet me shenjat e tyre vend. Por marka vendi nuk është gjerësi dhe gjatësi. Ne kemi për të hyrë në këto parametra nga marrjen e gjeometri, duke përdorur get gjeometri për të shënuar vendin, dhe pastaj një herë ne kemi gjeometri, duke marrë ose gjerësi ose gjatësi duke përdorur këto funksione. Deri tani ne e dimë se si për të zbuluar nëse pasagjerët janë brenda Gama e anijes sonë. Pasi ne kemi këto pasagjerë, ne do të dëshironi të shtoni ndonjë pasagjerët që janë brenda që shkojnë. Ne duam të lejuar ata që të hip në dhe për të marrë një vend në anije tonë, por vetëm nëse keni vend të mjaftueshëm për ta. Shuttle.seats array do të tregojë nëse vende janë bosh, ose i cili është në atë vend. Pra, nëse një vend është i zbrazët, atëherë se vendi do të jetë e pavlefshme. Pra iterate mbi array vende, kontrolluar për vende bosh, ruajtjen pasagjerët Në ato vende deri në ju nuk kanë ndonjë vend më shumë bosh. Dhe për fat të keq, çdo pasagjerët e tjerë do të duhet të presin për herën tjetër anijes vjen poshtë. Pasi ata të marrë në anije, ne do të duam për të hequr shenjën e tyre vend, e cila është foto e tyre në botë 3d. Nëse unë të kërkuar për të hequr një p shenjë vend, atëherë unë do të merrni të gjitha tiparet nga Toka tim, nga Google Earth, dhe pastaj hiqni atë vend të veçantë të shënuar duke përdorur funksionin removeChild. Pastaj në fund, le të hiqni shënues, ikona në hartë 2D, për çdo pasagjerëve që ne po ringjallet. Për të hequr një m shënues, atëherë unë do të vetëm ekzekutuar m.setMap null. A në këtë mënyrë për çdo udhëtarëve brenda rrezes, dhe ju keni përfunduar përmirësim. Grafiku Funksioni duhet të shfaqin të gjitha prej pasagjerëve që janë në tuaj anijes, dhe vend bosh nëse është bosh. Pra tabelë duhet të iterate mbi shuttle.seats, duke shfaqur Informacioni pasagjerëve për çdo indeks, dhe vend bosh në qoftë se indeksi është i pavlefshëm. Tani në qoftë se teksti HTML është vënë në brendësi të një JavaScript ndryshueshme, pastaj duke përdorur document.getElementByID, tabelë Can të redaktuar HTML brendshme të cilat e dhënë element duke caktuar Tekstit HTML të document.getElementByID brendshme ndryshueshme HTML. Kur përdoruesit klikoni butonin Drop Off në index.html, ai do të thërrasë funksion dropoff. Dhe kjo është puna jonë për të zbatuar atë. Në dropoff, ne do të duan për të hequr çdo pasagjerët nga të anijes vetëm nëse ne jemi në rangun e destinacionit të tyre, shtëpinë e tyre të banimit. Pra dropoff do të duhet për të kontrolluar nëse anijes është në rangun e ndonjë nga shtëpi, dhe për të hequr çdo të nevojshme pasagjerët nga anije. Deri sa nuk kemi të kontrolloni nëse ne jemi në varg e çdo shtëpi? E pra, përsëri, ne do të përdorim të shuttle.distance funksion, duke kaluar në gjerësi dhe gjatësi të pikës se ne jemi duke kontrolluar kundër. Por çfarë janë këto pika? E pra, array shtëpi, në qoftë se ju mbani mend në houses.js, ruan gjerësi dhe gjatësi e çdo shtëpi në një grup associative, ku çdo indeksi është emri i saj qe. Pastaj për të hequr pasagjerë - mirë, vetëm nëse ne jemi në rangun e tyre shtëpia që ata duan të shkojnë për të. Pra, përsëri, mos harroni që pasagjerët ruan shtëpinë që çdo pasagjer dëshiron të shkojë në. Nëse ata janë brenda rrezes së tyre shtëpi, atëherë ne do të hiqni se pasagjerëve nga shuttle.seats dhe vendosur pozicioni i tyre në rrjet të null. Tani le të flasim për disa tipare shtesë që mund të realizohet në CS50 Shuttle p-set. Ka një sistem pikë ku ju mbajnë gjurmët e sa vë një përdorues ka. Për pakësohet pasagjerë sukses, ata mund të marrë pikë. Por për duke u përpjekur për të zbres pasagjerë ku nuk ka ndonjë shtëpi aty pranë, mirë, ata mund të ndëshkohen për këtë. Pra, ndoshta ju doni të mbajnë gjurmët e pikat në një ndryshore globale. Ju mund të zbatojë ndoshta një sahat, ku përdoruesi ka një sasi të caktuar të koha për të marr dhe ndalem a numër i caktuar i udhëtarëve. Ndoshta edhe të integruar këtë me sistemin pika. Ose ju mund të Edit Grafik tillë që Pasagjerët janë të renditura nga shtëpia. Kështu që ndoshta do të jetë një lloj funksionojnë në shuttle.seats. Ju mund të zbatojë një tipar fluturues, ku në qoftë se përdoruesi inputet e Konami Kodi, atëherë anijes heq off terren dhe anijes mund të fluturojnë. Por, për një rënie të sigurt jashtë, më e mirë për të bërë anijes tokës rrota e saj në terren i parë. Ju gjithashtu mund të zbatojë teleportation, ku ju bëni një drop down listë ndërtesa në index.html. Dhe zgjedhur një nga ata, përdoruesi do të transportohen në se ndërtimi në kampus. OK, edhe pse, për të udhëtuar nëpër muret e disa ndërtesave në rrugën tuaj atje. Ju gjithashtu mund të ndryshojë shpejtësinë e anijes, duke i lejuar përdoruesit për të rritur ose ulur shpejtësinë. Ndoshta ju doni një ndryshore globale në mbajnë gjurmët e sa karburantit anijes ka, në rënie kjo si ju shkojnë së bashku. Pasi që ju goditi zero, edhe pse, anijes nuk do të mund të lëvizin në qoftë se ju keni refueled, ndoshta duke përdorur një buton, ose madje edhe të bëjnë stacioni tuaj gazit. Por kjo sigurisht nuk është e një listë e plotë. Kontrollo të spekulim për të plotë lista, ose ndoshta të propozojë tuaj për të TF tuaj. Qielli është i kufizuar. Kjo është CS50 fundit p-vendosur tuaj, kështu që të argëtohen me të. Kjo ishte CS50 anijes. Unë kam marrë për të thënë, kjo është një kënaqësi e duke e bërë këto për ju me ekipi i prodhimit. Dhe unë shpresoj se ju keni gëzojnë ato, po ashtu. Emri im është Zamyla. Dhe kjo ishte CS50.