[MUSIC nagpe-play] Tagapagsalita 1: Well, dito tayo, ang huling P hanay sa CS50. Bumati inyong sarili mula sa pagkakaroon ng dumating sa ngayon dahil ang iyong unang halo mga mundo at nagpi-print out pyramids para sa Mario. Nagsagawa ka ng isang website noong nakaraang linggo. At kami ay pagpunta sa ginagawang isa pa ngayong linggo, isa na nagbibigay-daan sa iyo upang magmaneho sa paligid ng Harvard campus, pagkuha up miyembro ng kawani CS50, at nagdadala sa mga iyon pabalik sa kanilang residential mga bahay. Ngayon noong nakaraang linggo kami ay nagtrabaho sa PHP, isang wika gilid server. Para sa mga ito P set, nagsisimula pa kami ipinakilala sa JavaScript, na isang wika panig ng client. Kaya ipaalam sa tumagal ng isang pagtingin sa ilan sa mga pamamahagi code na ibinigay sa ka para sa P set. Sa folder ng JavaScript, ay mayroong maging isang bungkos ng mga file sa JavaScript. Mayroong buildings.js, na naglalaman ng isang array ng mga gusali sa paligid ng Harvard campus, kasama ang kanilang impormasyon at posisyon. Houses.js ay isang array ng Harvard residential mga bahay, kasama ang kanilang mga latitude at longitudes. Passengers.js Naglalaman ng hanay ng mga pasahero - ang mga miyembro ng kawani CS50 - na ikaw ay nagdadala pabalik sa kanilang residential mga bahay. Math3D.js, na naglalaman ng maraming mga function na gawin sa kilusan. Kung ikaw ay mathematically isip, pagkatapos ay maligayang pagdating kong kumuha ka ng isang hitsura. Ngunit hindi mo kailangang maunawaan lahat ng bagay sa doon. Shuttle.js, na deal na may kilusan ang shuttle ni. At index.html ay ang home page kung saan ang lahat ng bagay ang mangyayari, talaga, kung saan ang user ay nakikipag-ugnayan sa site. Service.css ay ang estilo ng CSS sheet, na kung saan, bilang karagdagan sa Twitter Bootstrap library, mga kontrol paano index.html hitsura. At pagkatapos ay mayroon din namin service.js, na Naglalaman ang mga pag-andar ng serbisyo para sa ang shuttle. At dito ay kung saan ka magiging pagpuno ng mga ilan sa mga mag-dos. Ngayon ipaalam sa tumagal ng isang pagtingin sa mga bagay at nag-uugnay array sa JavaScript, na para sa lahat ng mga layunin at mga layunin ng ay mapaghahalinhinan. Kung Nais kong gumawa ng isang bagay sa isang variable na tinatawag na isang wand, ako ay Ipinahahayag ito. At sa loob ng mga kulot tirante gagawin ko tukuyin ang core ay kabayong may sungay. Wood ang cherry. At ang haba ay 13. Ngayon ay maaari ko rin ma-access ang mga halaga ng mga bagay gamit ang nag-uugnay array pagtatanda. Kaya wand index ng core, maaari ba akong magtakda na katumbas ng kabayong may sungay, o suriin na, kung kailangan ko. O maaari ko bang gamitin ang tuldok operator. Wand tuldok kahoy ay katumbas ng seresa, at iba pa, at balik sa gayon. Kaya nakikita mo na nag-uugnay array at bagay sa JavaScript ay pagpunta sa maging mapaghahalinhinan, at kalooban dumating sa lubos na madaling gamitin. Pagkatapos makita natin ang isang array ng mga gusali sa buildings.js. Muli, isang array ng mga bagay. Kung Nais kong gumawa ng isang array ng mga pinakamahusay na mga gusali sa Harvard campus, pagkatapos ay Gusto ko gawin itong tulad ng sumusunod. Gamit ang pagtatanda sa bagay, kung saan Mag-imbak ko root, pangalan, address, latitude, at longitude para sa bawat solong gusali sa bagay. Ng mabilis na makipag-usap tungkol sa mga variable ng Hayaan sa JavaScript. Tulad ng PHP, JavaScript variable ay mahina o maluwag na-type. Upang lumikha ng isang lokal na variable, prefix mo pangalan ng variable na may V-A-R, var. Ngayon sa JavaScript, mga pag-andar habilin limitahan ang saklaw ng variable. Kaya kung mayroon kang isang lokal na variable sa loob isang function, pagkatapos ay iba pang mga pag-andar Hindi maaaring ma-access ito. Ngunit hindi tulad ng C, loop at kundisyon ay hindi limitahan ang saklaw ng isang variable. Kaya kahit kung ipinahayag mo ito sa loob ng isang kalagayan, ang buong pag-andar habilin may access dito. Ngayon walang var, ang variable Magiging global. Kaya kung ipinahayag mo lang ang pangalan at magtalaga ng isang halaga, pagkatapos ay i-variable na ay magiging isang global variable sa JavaScript. Ngayon sa bahay, mayroon kaming isang nag-uugnay array ng mga bagay na uri ng bahay, kung saan bawat bahay ay isang latitude lamang at longitude. Pagkatapos ay mayroon kaming mga pasahero array, na kung saan ay isang array ng uri ng bagay na pasahero. Kaya bawat pasahero ay may username, isang pangalan, at ng bahay. Pansinin na akong nakikitang ng uri pasahero, na talagang lamang ay nangangahulugan na ang bawat bagay ay may parehong key halaga ng pareho. Kaya ang bawat uri ng object na pasahero ay may isang user name, isang pangalan, at ng bahay. Kaya kung ano ang kailangan namin upang gawin para sa P set? Well, kailangan namin upang payagan ang mga gumagamit na pumili up miyembro ng kawani, upang maipakita ang lahat ng ang mga miyembro ng kawani na kasalukuyang nasa ang aming shuttle, at sa drop ang mga ito off. At pagkatapos ay gagamitin din namin makipag-usap tungkol sa mga dagdag na tampok na maaaring ipinapatupad para sa ang shuttle hanay P. Ngunit-usapan natin ang tungkol sa pickup muna ipaalam. Ang mga mukha ng CS50 kawani ay inalisan nakatanim sa buong campus, kung saan ang bawat mukha ay ipinatupad bilang isang marka lugar sa 3D na lupa, at bilang isang marker sa 2D na mapa. Kaya kapag nag-click ang mga pickup button, gusto naming idagdag sa malapit pasahero sa shuttle. At gusto rin naming alisin ang kanilang mga lugar markahan mula sa mundo, at alisin ang kanilang marker mula sa mapa, na nagpapahiwatig na ang mga ito ay sa aming shuttle ngayon. Kaya paano ko nakita naming kung pasahero Nasa hanay ng aming mga shuttle? Well, ang function ng distansya - kaya shuttle tuldok distansya, ang pagpasa sa ang latitude at longitude, habilin kalkulahin ang distansya mula sa kasalukuyang posisyon ng shuttle papunta sa ituro na tinukoy mo sa na ibinigay ng latitude at longitude. Kaya maaari mong gamitin ito upang makalkula ang distansya mula sa shuttle papunta sa pasahero. Ngunit kung paano ang kilala mo kung saan ang mga pasahero ay? Well, na kung saan kakailanganin naming i-edit ang populate function. Panahanan ng mga tao lugar lahat ng mga miyembro ng kawani at pasahero sa mundo, at sa mga mapa, ngunit hindi maiimbak ang kanilang mga lokasyon. Kaya marahil maaari mong maiimbak ang kanilang mga ilagay ang mga marka at mga marker sa ilang mga pandaigdigang array. Ngayon ay mayroong na ay isang pandaigdigang array pag-iimbak ng impormasyon mula sa pasahero. Ang mga pasahero array na tindahan sa bawat pangalan ng pasahero at ang kanilang mga bahay. Kaya marahil maaari kang magdagdag ng ilang mga parameter doon sa mga pasahero bagay. Upang matulungan kaming nakakita ng lahat ng pasahero sa loob ng saklaw ng aming shuttle, sabihin loop sa pamamagitan ng lahat ng pasahero sa mga pasahero ng array. A para sa loop sa JavaScript maaaring tumingin isang bagay na tulad nito, na halos kapareho sa mga para sa loop sa C. O maaari naming gamitin ang isang alternatibo para sa loop istraktura. Para sa var i sa array, kung saan ako Magiging pa rin ang index. Ngunit hindi mo kailangang tukuyin ang haba ng array na tuldok kondisyon, at i plus plus. Ang bawat lokasyon ng pasahero ay ibinigay sa pamamagitan ng kanilang marka lugar. Ngunit ang marka lugar ay hindi ang latitude at longitude ang. Mayroon kaming upang ma-access ang mga parameter sa pamamagitan ng pagkuha ng geometry, gamit get geometry sa marka lugar. At pagkatapos ay sa sandaling mayroon kaming ang geometry, pagkuha ng alinman sa latitude o ang longitude, ang paggamit ng mga pag-andar. Kaya ngayon alam namin kung gaano upang makita kung pasahero ay nasa loob saklaw ng aming shuttle. Sa sandaling mayroon kaming mga pasahero, kami ay nais na magdagdag ng anumang mga pasahero na sa loob ng saklaw na iyon. Gusto naming payagan ang mga ito upang lumukso sa, at kumuha ng puwesto sa aming shuttle, ngunit lamang kung kami ay may sapat na puwang para sa kanila. Ang upuan shuttle tuldok array habilin ipahiwatig kung ang upuan ay walang laman, o kung sino ang nasa na upuan. Kaya kung ang isang upuan ay walang laman, pagkatapos ay na upuan ay magiging walang bisa. Kaya umulit sa ibabaw ng upuan array, pagsusuri para sa mga walang laman na upuan, pag-iimbak pasahero sa mga upuan hanggang sa iyo Walang anumang higit pang mga walang laman upuan. At sa kasamaang-palad, ang anumang iba pang mga pasahero na kailangang maghintay para sa susunod na oras ay sa paligid ng shuttle. Sa sandaling makakuha sila sa shuttle, magpapadala kami gusto alisin ang kanilang mga marka lugar, na ay kanilang larawan sa mundo ng 3D. Kung Nais kong alisin ang isang lugar mark p, pagkatapos Gusto ko makakuha ng lahat ng mga tampok mula sa aking lupa, mula sa Google Earth, at pagkatapos ay alisin na partikular na lugar markahan gamit ang removeChild function. Pagkatapos bilang wakas, alisin ni ang marker ipaalam, sa icon sa 2D na mapa para sa anumang pasahero na pagpili namin up. Upang alisin ang isang marker, m, pagkatapos ay idedetalye ko isakatuparan lamang m tuldok setMap null. Gawin ito para sa anumang mga pasahero sa loob ng range, at natapos mo na ang pickup.