[Predvaja glasba] SPEAKER 1: No, tukaj smo, Zadnji sklop P v CS50. Sami čestitam iz ob prišli tako daleč, ker vaš prvi pozdravi svetove in tiskanje piramide za Mario. Ste naredili spletno stran, prejšnji teden. In gremo se, da bi še enega ta teden, tisti, ki vam omogoča, da voziti okoli Harvard kampusu, nabiranje up uslužbenci CS50 in jih prinaša nazaj v njihovo stanovanjske hiše. Zdaj prejšnji teden smo delali v PHP, side jezik strežnika. Za ta P set, se bova uvedli za JavaScript, ki je Stranka side jezik. Tako da je lahko pogled na nekatere distribucija kodo, ki je predvideno za ste za to P set. V mapi JavaScript, da bo je kup JavaScript datotek. Tam je buildings.js, ki vsebuje Niz stavb okoli Harvardu kampus, s svojimi podatki in položaj. Houses.js je niz Harvardu stanovanjske hiše, z njihovimi zemljepisne širine in dolžine. Passengers.js vsebuje Niz potnikov - Člani osebja CS50 - da boste prinaša nazaj njihove stanovanjske hiše. Math3D.js, ki vsebuje veliko funkcije, da ima opravka z gibanjem. Če ste matematično misleče, potem Pozdravljam ste vzeli pogled. Vendar vam ni treba razumeti vse, kar je tam notri. Shuttle.js, ki se ukvarja z Gibanje raketoplana je. In index.html je domača stran, kjer vse, kar se dogaja, res, kjer Uporabnik je v interakciji s pomočjo spletne strani. Service.css je CSS slogi, ki poleg Twitter Bootstrap knjižnica, nadzor index.html kako izgleda. In potem imamo tudi service.js, ki vsebuje funkcije za storitve shuttle. In tukaj je, kam greš, da se izpolnite nekaj za dos. Zdaj pa si oglejte na objektih in asociativne nize v JavaScriptu, ki je za vse namene sta medsebojno zamenljiva. Če bi želel, da bi nek predmet spremenljivko imenovana palica, bi ga razglasi. In znotraj teh zavitih oklepajih želim opredeliti jedro je samorog. Les je češnja. In dolžina je 13. Zdaj lahko dostopate tudi vrednote objektov z asociativno paleto zapis. Torej palica indeks jedro, lahko nastavite , ki je enaka Samorog, ali preveri, če moram. Ali lahko uporabite operator pika. Wand dot les enaka češnja, in tako naprej, in tako naprej. Torej vidite, da asociativne nize in predmeti v JavaScriptu se bodo zamenljivi, in volja pride v zelo priročno. Potem bomo videli niz stavb V buildings.js. Spet paleto predmetov. Če bi želel, da bi paleto najboljših zgradbe na harvardski univerzi, nato I bi ga takole. Z uporabo tega objekta zapis, kjer Shranjujem root, ime, naslov, zemljepisne širine in dolžine za vsak stavbi objekt. Pojdimo hitro govoriti o spremenljivkah v JavaScript. Kot so PHP, JavaScript spremenljivke so slabo ali ohlapno vnesli. Če želite ustvariti lokalno spremenljivko, boste predpono Ime spremenljivke z V-A-R, var. Zdaj v JavaScript, bo funkcije omejiti obseg spremenljivk. Torej, če imate lokalno spremenljivko v funkcijo, potem druge funkcije ni dostopen. Toda za razliko od C, zank in pogoji ne omejiti obseg spremenljivke. Torej, tudi če ste ga razglasi notranjost bolezni, bo celotna funkcija imajo dostop do njega. Sedaj brez var, spremenljivka bo globalno. Torej, če ste le razglasi ime in dodeli vrednost, nato pa, da spremenljivka bo globalno spremenljivko v JavaScript. Zdaj v hišah imamo asociativno array objektov tipa hiše, kjer vsaka hiša je le širina in dolžine. Potem imamo potnike matrika, ki je matrika tipa objekta potnika. Torej vsak potnik ima ime, Ime in house. Opazimo, da vidim tipa Potnik, ki v resnici pomeni le da ima vsak objekt Enako par ključev vrednost. Torej vsak objekt tipa potnika ima uporabniško ime, ime in house. Torej, kaj moramo storiti za P nizu? No, moramo omogočiti uporabnikom, da izberete do članov osebja, za prikaz vseh člani osebja, ki so trenutno v naša shuttle, in jih odložite. In potem bomo govorili tudi o dodatnih funkcije, ki se lahko izvajajo za P set shuttle. Toda, kaj je govoril o pickup prva. Obrazi CS50 osebje, so bile posajene povsod kampusa, kjer je vsak Obraz se izvaja kot mesto znamke na 3D zemlji, in kot marker na 2D zemljevidu. Torej, ko uporabnik klikne pickup gumb, želimo dodati v bližini potniki na raketoplana. In tudi mi želimo, da se odstranijo svoje mesto označi od sveta, in odstranite njihovo marker na zemljevidu, ki kaže, da oni so v naši shuttle zdaj. Torej, kako bomo odkriti, če potniki v dosegu naših shuttle? No, oddaljenost funkcija - tako shuttle pika na daljavo, ki poteka v zemljepisne širine in dolžine, bo izračun razdalje od toka Stališče shuttle točko, ki ste jo določili s tem zaradi širine in dolžine. Torej, lahko uporabite to za izračun oddaljenost od raketoplana, da potniki. Ampak kako veš, kje potniki so? No, to je, če bomo morali uredite funkcijo zapolnijo. Zapolnijo krajih po članov osebja in potniki v svetu, in v karti, vendar pa ne shranite svoje mesto. Torej, morda lahko shranite svoje postaviti oznake in markerji na nek globalni array. Sedaj že obstaja globalna matrika shranjevanje podatkov od potnikov. Potniki zaporedji shrani vsako Ime sovoznikov in njihova hiša. Tako da morda lahko dodate nekaj parametrov tam do osebnih predmetov. Da bi nam pomagali odkriti vse potnike v razponu od naše shuttle, dajva zanke skozi vse potnikov v matriki potnikov. Za zanke v JavaScript lahko ogledate kaj takega, zelo podoben tistih, za zanko C. Ali lahko uporabimo alternativa za zanke strukturo. Za var i v matriki, kjer sem bo še vedno kazalo. Vendar vam ni treba navesti Dolžina niz dot stanje, in jaz plus plus. Lokacija Vsak potnik je dati svoje mesto znamko. Ampak kraj znamka ni zemljepisne širine in dolžine. Moramo priti do teh parametrov, ki jih pridobivanje geometrijo, z uporabo get geometrijo na mesto znamke. In potem, ko smo geometrijo, dobili niti zemljepisne širine ali dolžine, z uporabo teh funkcij. Torej, zdaj vemo, kako ugotoviti, ali Potniki so v Paleto naših shuttle. Ko imamo tiste potnike, se bomo želite dodati potnike, ki so na tem območju. Želimo, da se jim omogoči, da hop na in usedite na naši shuttle, ampak samo če imamo dovolj prostora za njih. Shuttle dot sedeži matrika bo navesti, ali so sedeži prazna, ali kdo je v tem sedežu. Torej, če je sedež prazen, potem ta sedež bo nič. Torej ponovitev čez sedežev matrike, preverjanje praznih sedežev, shranjevanje potniki v teh sedežev, dokler ne nimam več praznih sedežev. In na žalost, vsi drugi potniki bodo morali počakati Naslednjič, ko shuttle pride okoli. Ko pridejo na raketoplana, bomo želeli da se odstranijo svoje mesto znamko, ki je njihova fotografija v 3D svetu. Če bi želel odstraniti kraj znamke p, potem bi dobili vse funkcije iz moje zemlje, iz Google Earth, in nato odstranite, da v določenem kraju označiti s funkcijo removeChild. Potem pa na koncu, kaj je odstraniti marker, ikona na 2D zemljevidu za katerokoli Potnik, ki smo jih pobral. Če želite odstraniti marker, M, potem bom samo izvršitev m dot setMap null. Ali to za vse potnike, ki so v dosegu, in ste končali pickup.