>> ZAMYLA CHAN: No, sme tu, posledný p-nastaviť CS50.
Gratulujem sami od s tak ďaleko od svojho prvého Dobrý deň,
Svety a tlač Up Pyramídy pre Mario.
Urobil si webové stránky minulý týždeň.
A my bude robiť iný tento týždeň, ten, ktorý vám umožňuje
jazdiť na Harvard areálu, vyberanie s členmi CS50 zamestnancov a
priviesť ich späť k ich obytné domy.
>> Teraz, minulý týždeň sme pracovali v PHP, side jazyk servera.
V tomto p-set, budeme sa predstavil JavaScriptu, ktorý je
na strane klienta jazyka.
Takže poďme sa pozrieť na niektoré z Distribúcia kód, ktorý sa pripravili
ste v tomto p-set.
V priečinku JavaScript, bude tam byť banda súborov JavaScript.
>> K dispozícii je buildings.js, ktorá obsahuje rad budov po celom Harvarde
Areál s ich informáciami a pozície.
Houses.js je rad Harvarde bytové domy s ich
zemepisnej šírky a dĺžky.
Passengers.js obsahuje rad cestujúci, členovia CS50 zamestnanci
že budete dobývať do ich obytné domy.
>> Math3D.js, že obsahuje veľké množstvo Funkcie robiť s pohybom.
Ak ste matematicky zmýšľajúce, potom Vítam vás pozrieť.
Ale nemusíte rozumieť všetko, čo tam je.
Shuttle.js, ktorá sa zaoberá pohyb raketoplánu.
A index.html je domovská stránka, kde všetko, čo sa deje, naozaj, kde
užívateľ interakciu s webom.
>> Service.css je CSS štýlov, ktorý okrem Twitteri
Bootstrap Knižnica, kontroly ako index.html vyzerá.
A potom tu máme tiež service.js, ktoré obsahuje servisné funkcie pre
Shuttle.
A tu je miesto, kde budete mať vyplnenie niektorých Do to-je.
>> Teraz sa poďme pozrieť na objekty a asociatívne polia v JavaScripte,
ktorý pre všetky účely, sú zameniteľné.
Keby som chcel, aby sa objekt premennú volal palička, by som
vyhlásiť ju.
A vo vnútri týchto zložených zátvoriek, by som špecifikovať, jadro je jednorožec, drevo
je čerešňa, a dĺžka je 13.
>> Teraz som tiež prístup k hodnotám objektov pomocou
asociatívne pole notácie.
Takže palička index jadro, možno nastaviť ktorá sa rovná jednorožec, alebo
skontrolujte, že keď budem potrebovať.
Alebo môžem použiť operátor bodka wand.wood rovná čerešňa, a
a tak ďalej a tak ďalej.
Takže vidíte, že asociatívne pole a objekty v JavaScripte sa bude
zameniteľné, a bude príde celkom vhod.
>> Potom vidíme rad domov v buildings.js,
opäť, pole objektov.
Ak by som chcel urobiť celý rad najlepších stavby na Harvard akademickej pôde, potom
Chcel by som, aby to takto.
Pomocou tohto objektu firmy, ak Aj uložiť koreňový, meno, adresa,
šírky a dĺžky pre každý jeden objekt objekt.
>> Poďme rýchlo hovoriť o premenných v JavaScriptu.
Rovnako ako PHP, JavaScript premenné sú slabo alebo voľne zadali.
Ak chcete vytvoriť lokálne premenné, môžete prefix názov premennej s V-A-R, var.
Teraz, v JavaScripte, bude funkcia obmedziť rozsah ukazovateľa.
Takže ak máte lokálne premenné v rámci funkcie, potom ďalšie funkcie
Nemožno pristupovať.
>> Ale na rozdiel od C, slučky a podmienky nie obmedziť rozsah ukazovateľa.
Takže aj keď sa to deklarovať vnútri stav, bude celá funkcia
majú prístup k nemu.
Teraz, bez var premenná bude globálna.
Takže ak ste práve deklarovať meno a priradiť hodnotu, potom táto premenná
bude globálne premenné v JavaScriptu.
>> Teraz, v domoch, máme asociatívne Pole typu hostiteľ objektov, kde
každý dom je len šírka a dĺžky.
Potom máme cestujúci pole, čo je pole
typu objektu cestujúceho.
Takže každý cestujúci má užívateľa meno, názov a dom.
>> Všimnite si, že hovorím typu cestujúcich, čo v skutočnosti znamená len
že každý objekt má Rovnaká dvojica kľúč hodnota.
Takže každý objekt typu cestujúcich má užívateľské meno, názov a dom.
Takže to, čo potrebujeme, aby urobiť pre p-set?
No, musíme umožniť používateľom vybrať hore zamestnancov, zobraziť všetky
so zamestnancami, ktoré sú v súčasnej dobe naše kyvadlová doprava, a je odísť.
A potom budeme tiež hovoriť o ďalšie funkcie, ktoré môžu byť realizované na
Shuttle p-set.
>> Ale poďme hovoriť o vyzdvihnutie prvý.
Tváre CS50 zamestnanci boli zasadil po celom areáli, kde každý
tvár je implementovaný ako miesto značka na 3D Zemi, a ako
značka na 2D mape.
Takže, keď používateľ klikne na Pickup tlačidlo, chceme pridať blízkosti
cestujúci do raketoplánu.
A tiež chceme odstrániť svoje miesto označiť zo sveta a odstrániť ich
značka z mapy, čo naznačuje, že sú v našom raketoplánu teraz.
>> Tak ako sme sa zistiť, či cestujúci sú v dosahu nášho raketoplánu?
No, vzdialenostné funkcie, takže shuttle.distance, odovzdaním
zemepisnej šírky a dĺžky, sa vypočíta vzdialenosť od aktuálnej polohy
z raketoplánu do tej miery, že Zadáte sa, že vzhľadom
zemepisnej šírky a dĺžky.
Takže môžete použiť na výpočet vzdialenosť od raketoplánu, aby
cestujúci.
>> Ale ako viete, kde cestujúci sú?
No, to je miesto, kde budeme musieť upraviť funkciu naplniť.
Naplniť umiestni všetkých zamestnancov cestujúcich do sveta
a do mapy, ale nie je uložiť ich umiestnenie.
Takže možno si môžete uložiť svoje miesto známky a značky
v niektorých globálnom poli.
>> Teraz už existuje globálne polia ukladanie informácií od cestujúcich.
Obchody Cestujúci pole každý Meno cestujúceho a ich dom.
Takže možno, môžete pridať pár parametrov tam objekty pre cestujúcich.
>> Ak nám chcete pomôcť odhaliť všetkých cestujúcich v rozsahu našej
kyvadlová doprava, poďme slučka cez všetky cestujúci v poli cestujúcich.
Pre slučky v JavaScripte môže vyzerať niečo také, veľmi podobné
tých, pre slučky v C. Alebo môžeme použiť alternatíva pre štruktúru slučky, pre
var aj v poli, kde sa bude aj naďalej index, ale nemusíte sa
určiť Array.length stav a i + +.
>> Umiestnenie Každý cestujúci je vzhľadom na ich miesto značkou.
Ale miesto známka nie je zemepisnej šírky a dĺžky.
Máme prístup k týmto parametre získanie geometria, pomocou get
geometrie na mieste značku, a potom akonáhle budeme mať geometriu, ako
buď šírka alebo dĺžka pomocou týchto funkcií.
>> Takže teraz vieme, ako zistiť, či cestujúci sú v rámci
Rozsah nášho raketoplánu.
Akonáhle budeme mať tých cestujúcich, budeme Chcete pridať nejaké cestujúcich, ktoré sú
v tomto rozsahu.
Chceme, aby mohli naskočiť a vziať sídlo na našej raketoplánu, ale iba
ak budeme mať dostatok priestoru k nim.
>> Shuttle.seats pole bude ukazovať či sedadlá sú prázdne, alebo
ktorý je v tomto sedadle.
Takže, ak je sedadlo prázdne, potom že sídlo bude mať hodnotu null.
Takže iterácii cez pole sedadlá, kontrola prázdnych miest, skladovanie
cestujúci do týchto miest, kým sa nemajú žiadne ďalšie prázdne miesta.
A bohužiaľ, všetky ostatné cestujúci bude musieť počkať
nabudúce raketoplán príde.
>> Akonáhle sa dostanete na raketopláne, budeme chcieť odstrániť ich značku miesta, ktoré
je ich fotografie v 3D svete.
Ak by som chcel odstrániť miesto známky p, potom by som dostať všetky funkcie
z môjho Zeme, z Google Earth, a potom odstrániť, že konkrétne miesto
označiť pomocou funkcie removeChild.
Potom konečne, poďme odstrániť značku, ikona na 2D mape, pre všetky
cestujúcich, ktoré sme vyzdvihnúť.
>> Ak chcete odstrániť marker m, potom budem stačí spustiť m.setMap null.
Urob to pre všetkých cestujúcich v dosahu, a vy ste skončil pickup.
Funkcie tabuľka by sa mala zobraziť všetky cestujúcich, ktoré sú vo vašom
kyvadlová doprava, a prázdne miesto, ak je prázdna.
Takže graf by mal iterácii shuttle.seats, zobrazenie
Informácie o cestujúcich pre každý index, a prázdne miesto, ak je, že index je null.
>> Teraz, keď text HTML je kladený vnútri JavaScript premenná, potom pomocou
document.getElementById, graf môže upraviť vnútorné kód HTML, ktorý daný
prvok priradením HTML text
document.getElementById vnútorné HTML variabilný.
Keď používateľ klikne na tlačidlo Drop Off v index.html, bude to volanie
Funkcie dropoff.
A to je našou úlohou realizovať to.
>> Vo údajov o opustenie, budeme chcieť odstrániť akékoľvek cestujúci z raketoplánu iba vtedy, ak
sme v rozsahu svojho určenia, ich obytný dom.
Takže dropoff bude musieť skontrolovať, či Kyvadlová doprava je v dosahu niektorej z
domy, a odstráňte potreby cestujúci z raketoplánu.
Tak ako sme sa skontrolovať, či sme v rade iných domov?
No, ešte raz, budeme využívať v shuttle.distance funkcie, odovzdaním
zemepisnej šírky a dĺžky z bodu že sme kontrolu proti.
>> Ale čo sú tie body?
No, domy polia, ak si spomeniete v houses.js, ukladá
zemepisná šírka a dĺžka každého domu asociatívne pole, kde každý
Obsah je názov tohto domu.
Potom odstrániť cestujúcich -
dobre, len keď sme v rozsahu ich dom, ktorý chcú ísť.
Takže znovu, nezabudnite, že cestujúci ukladá dom, ktorý každý cestujúci
chce ísť.
Ak sú v dosahu ich dom, potom budeme odstrániť, aby
Cestujúci z shuttle.seats a sady ich postavenie v poli na hodnotu null.
>> Teraz poďme hovoriť o niektorých ďalších funkciách , Ktoré môžu byť vykonávané v
CS50 Shuttle p-set.
Tam je bodový systém, kedy budete mať prehľad o tom, koľko
body užívateľ.
Pre vypadnutiu cestujúcich úspešne, môžu získať body.
Ale snažia vysadiť cestujúcich tam, kde nie je žiadny dom v okolí,
dobre, že môže dostať penalizáciu za to.
Tak snáď chcete sledovať body v globálne premenné.
>> Môžete implementovať snáď časovač, kde užívateľ má určité množstvo
čas zdvihnúť a odísť A určitý počet cestujúcich.
Možno, že dokonca integrovať tento s bodovým systémom.
Alebo si môžete upraviť graf taký, že cestujúci sú radené podľa dome.
Tak to by asi bolo trochu fungovať na shuttle.seats.
>> Môžete implementovať lietanie funkciu, kde v prípade, že používateľ zadá Konami
kód, potom raketoplán zdvihne pozemné a kyvadlová doprava môže lietať.
Ale pre bezpečné odídu, najlepšie, aby sa Raketoplán pristane na jeho kolesá na
zem ako prvý.
Môžete tiež vykonať teleportáciu, kde urobíte rozbaľovací zoznam dole
budovy v index.html.
A výberom jednej z tých, užívateľ bude prevezený do
že stavba na akademickej pôde.
OK, aj keď, cestovať cez steny niektorých
stavby na vašej ceste tam.
>> Môžete tiež zmeniť rýchlosť kyvadlová doprava, čo umožňuje užívateľovi zvýšiť
alebo zníženie rýchlosti.
Možno budete chcieť globálne premennú sledovať, koľko paliva
Kyvadlová doprava má klesajúci to, ako idete ďalej.
Akonáhle dosiahnete nuly, aj keď raketoplán nebude schopný sa pohybovať, ak ste
natankoval, snáď pomocou tlačidla alebo dokonca vytvoriť svoj vlastný čerpacie stanice.
>> Ale to rozhodne nie je vyčerpávajúci zoznam.
Pozrite sa na spec pre plné zoznam, alebo napríklad navrhnúť
vlastný na vašej TF.
Nebo je limit.
Toto je vaša posledná CS50 p-set, takže baviť sa s ním.
To bolo CS50 Shuttle.
>> Musím povedať, že to bolo potešenie takže to pre vás
Produkčný tím.
A dúfam, že ste si ich, rovnako.
Volám sa Zamyla.
A to bolo CS50.