>> ZAMYLA CHAN: Jæja, hér erum við, síðasta p-setja í CS50.
Hamingju yður frá að hafa komið svo langt síðan fyrsta Hello þinni
Heimar og Prentun Up Pýramýda fyrir Mario.
Þú lést á vefsíðu síðustu viku.
Og við erum að fara að vera að gera eitthvað annað í þessari viku, eitt sem gerir þér kleift að
keyra um Harvard háskólasvæðinu, tína upp CS50 starfsmenn og
uppeldi þá aftur til þeirra íbúðarhús.
>> Nú í síðustu viku við unnið í PHP, hlið miðlara tungumál.
Fyrir þessa p-sett, við erum að ná upp JavaScript, sem er
viðskiptavinur hlið tungumál.
Þannig að við skulum taka a líta á sumir af the dreifingu kóða sem er veitt til
þér fyrir þetta p-setja.
Í Javascript möppunni, það verður vera fullt af JavaScript skrá.
>> Það er buildings.js, sem inniheldur array bygginga kringum Harvard
háskólasvæðinu með upplýsingum og stöðu.
Houses.js er fylki af Harvard íbúðarhús með þeirra
breiddargráðum og longitudes.
Passengers.js inniheldur fjölda farþega, CS50 starfsfólk
að þú munt vera að koma aftur til íbúðarhús þeirra.
>> Math3D.js, sem inniheldur mikið af aðgerðir til að gera með hreyfingu.
Ef þú ert stærðfræðilega sinnaður, þá Ég fagna þér að kíkja.
En þú þarft ekki að skilja Allt við það.
Shuttle.js, sem fjallar hreyfing Skutla er.
Og index.html er heimasíða þar allt gerist, í raun, þar sem
notandi er samskipti við síðuna.
>> Service.css er CSS stíll lak, sem auk þess um Twitter
Ræsi Library, eftirlit hvernig index.html útlit.
Og þá höfum við líka service.js sem inniheldur þjónustubeiðnir virka fyrir
Shuttle.
Og hér er þar sem þú ert að fara að vera fylla í sumum af til-do er.
>> Nú skulum taka a líta á hlutum og tengin fylki í JavaScript,
sem, fyrir alla intents og tilgangi, eru víxlanlegur.
Ef ég vildi gera hlut breytu kallað vendi, ég myndi
lýsa það.
Og inni þessum hrokkið axlabönd, myndi ég tilgreina, kjarninn er Einhyrningsins, viðurinn
er lífrænt ræktað, og lengdin er 13.
>> Nú get ég líka aðgang að gildi af hlutum með
tengin array ritháttur.
Svo vendi vísitölu algerlega, get ég stillt sem jafn Einhyrningsins, eða
athuga að ef ég þarf.
Eða ég get notað punktur stjórnandi wand.wood jafngildir kirsuber, og
svo framvegis og svo framvegis.
Svo þú sérð að tengin fylki og hlutir í JavaScript er að fara að vera
víxlanlegur og mun komið í alveg vel.
>> Þá sjáum við fjölda bygginga í buildings.js,
aftur, fylki af hlutum.
Ef ég vildi gera array af bestu byggingar á Harvard háskólasvæðinu, þá
Ég myndi gera það eins og hér segir.
Using this mótmæla táknun, þar Ég geyma rót, nafn, heimilisfang,
breiddar, og lengdargráðu fyrir hvert einn bygging mótmæla.
>> Við skulum tala fljótt um breytur JavaScript.
Eins og PHP, JavaScript breytur eru veikt eða lauslega slegið.
Til að búa til staðbundna breytu, forskeyti þú breytan nafn með V-A-R, var.
Nú, í JavaScript, aðgerðir munu takmarka umfang breytur.
Svo ef þú hafa a heimamaður breytu innan fall, þá aðrar aðgerðir
getur ekki opnað það.
>> En ólíkt C, lykkjur og skilyrði ekki takmarka umfang breytu.
Svo jafnvel ef þú lýsa það inni í ástand, allt aðgerð mun
hafa aðgang að henni.
Nú, án þess Var, breytan á heimsvísu.
Þannig að ef þú lýsa bara nafnið og úthluta gildi, þá breytu
verður alþjóðlegt breytu JavaScript.
>> Nú, í hús, höfum við tengið array af gestgjafi tegund mótmæla, þar
Sérhvert hús er bara breiddar og lengdargráðu.
Þá höfum við farþega array, sem er fylki
af gerðinni mótmæla farþega.
Svo hefur hver farþegi notanda nafn, heiti og hús.
>> Takið eftir að ég er að segja af gerðinni farþega, sem í raun þýðir bara
að sérhver hlutur hefur að Sami lykill gildi par.
Svo hefur sérhver hlutur af taginu farþega notandi nafn, nafn, og hús.
Svo hvað þurfum við að gert fyrir p-setja?
Jæja, við þurfum að leyfa notendum að velja upp starfsfólki, til að birta allar
Starfsmenn sem eru nú í skutla okkar, og til að falla þá burt.
Og þá munum við einnig tala um auka aðgerðir sem hægt er að innleiða til
Shuttle p-setja.
>> En við skulum tala um pallbíll fyrst.
Andlit CS50 starfsmenn hafa verið gróðursett allt háskólasvæðið, þar sem hver
andlit er útfært sem setja merki á 3D jörðu, og þegar A
merki á 2D kortinu.
Svo þegar notandi smellir á Pickup hnappinn, viljum við að bæta í nágrenninu
farþegum til skutla.
Og við viljum líka að fjarlægja þeirra stað merkja frá heiminum og fjarlægja þeirra
merki frá kortinu, sem gefur til kynna að þeir eru í skutla okkar núna.
>> Og hvernig eigum við að uppgötva ef farþegar ert innan skutla okkar?
Jæja, sem virka fjarlægð, svo shuttle.distance, sem liggur í
breiddar-og lengdargráðu, mun reikna fjarlægð frá núverandi stöðu
af skutla að því marki sem þú tilgreinir við að miðað
breiddar-og lengdargráðu.
Svo þú getur notað þetta til að reikna fjarlægð frá rúta til
farþegar.
>> En hvernig veistu hvar farþegar eru?
Jæja, það er þar sem við verðum að breyta byggja virka.
Byggja stöðum allt frá starfsfólki farþega í heiminn
og inn í kortinu, en ekki geyma staðsetningu þeirra.
Svo kannski er hægt að geyma þeirra setja merki og merki
í sumum alþjóðlegum fylkisins.
>> Nú, það sem þegar er alþjóðlegt array geyma upplýsingar frá farþegum.
Farþegar array geymir hver nafn farþega og húsið þeirra.
Svo kannski er hægt að bæta við nokkrum þáttum það farþega mótmæla.
>> Til að hjálpa okkur að uppgötva alla farþega innan okkar
skutla, lykkja skulum gegnum öll farþegar í farþega fylkisins.
For lykkju í JavaScript gæti litið eitthvað eins og þetta, mjög svipað
þá fyrir lykkjur í C. Eða við getum notað val fyrir lykkja, fyrir
var ég í fylkinu, þar sem ég mun enn vera vísitalan, en þú þarft ekki að
tilgreina array.length ástand og ég + +.
>> Staðsetning hver farþegi er gefið setja merki þeirra.
En staðurinn árangur er ekki breiddar og lengdargráðu.
Við verðum að opna þau breytur með fá rúmfræði, með fá
rúmfræði á þeim stað merkja, og þá þegar við höfum rúmfræði, fá
annaðhvort breiddar eða lengdar nota þessar aðgerðir.
>> Svo nú vitum við hvernig á að greina hvort farþegar eru innan
svið skutla okkar.
Þegar við höfum þá farþega, munum við langar að bæta við farþega sem eru
innan þess svið.
Við viljum leyfa þeim að hoppa á og taka sæti á skutla okkar, en aðeins
ef við höfum nóg pláss á þeim.
>> The shuttle.seats array mun kynna hvort sæti eru tóm, eða
sem er í því sæti.
Svo ef sæti er tómur, þá sem sæti verður null.
Svo iterate yfir sætum fylking, stöðva fyrir auð sæti, geyma
farþega í þessum sætum þar til þú ekki hafa allir fleiri tóm sæti.
Og því miður, allir aðrir farþegar verður að bíða eftir að
næst þegar skutla kemur niður.
>> Þegar þeir fá á skutla, munum við viljum að fjarlægja setja merki sitt, sem
er mynd þeirra í 3D heiminum.
Ef ég vildi að fjarlægja setja merki á bls, þá myndi ég fá alla þá valkosti
frá jörðinni minni, frá Google Earth, og þá fjarlægja þessi sérstakur staður
merkja með removeChild virka.
Þá loks, við skulum fjarlægja merkið, táknið á 2D kortinu, fyrir hvaða
farþega sem við erum að tína upp.
>> Til að fjarlægja merki m, þá ég bara framkvæma m.setMap null.
Gera þetta fyrir hvaða farþega á svæðinu, og þú hefur lokið pallbíll.
Töfluna fall ætti að sýna öllum af farþegum sem eru í þínum
skutla, og tóm sæti ef tóm.
Svo Myndina ber iterate yfir shuttle.seats, sýna að
farþega upplýsingar fyrir hvert vísitölu, og tóm sæti ef að vísitalan er núll.
>> Nú ef HTML texti er sett inni í JavaScript breytu, þá með því að nota
document.getElementById, graf getur breyta innri HTML á að miðað
þáttur af framselja HTML texta til að
document.getElementById innri HTML breytu.
Þegar notendur smella á Drop Off hnappur í index.html, munum það að hringja í
dropoff virka.
Og það er starf okkar að framkvæma það.
>> Í dropoff, munum við viljum að fjarlægja eitthvað farþega frá skutla aðeins ef
við erum í bilinu áfangastað, íbúðabyggð hús þeirra.
Svo dropoff verður að athuga hvort Skutla er á bilinu eitthvað af
hús og fjarlægja allir þörf farþega frá skutla.
Og hvernig eigum við að athuga hvort við erum í ýmsum hvaða hús?
Jæja, enn og aftur, við munum nýta sér shuttle.distance virka, sem liggur í
breiddar-og lengdargráðu á þeim punkti að við erum að athuga á móti.
>> En hvað eru þessir punktar?
Jæja, húsin array, ef þú manst í houses.js, geymir
breiddar-og lengdargráðu á hvert hús í að tengin array, þar sem hver
Vísitalan er nafn úr því húsi.
Þá að fjarlægja farþega -
Jæja, aðeins ef við erum í bilinu þeirra Húsið sem þau vilja fara til.
Svo aftur, muna að farþegar geymir húsið, sem hver farþegi
vill fara í.
Ef þeir eru innan þeirra hús, þá munum við fjarlægja það
farþega frá shuttle.seats og setja staða þeirra í fylkinu til að null.
>> Nú skulum tala um einhverja auka lögun sem hægt er að hrinda í framkvæmd í
að CS50 Shuttle p-setja.
There 'a benda kerfi þar þér að halda utan um hversu margir
bendir notandi hefur.
Fyrir að sleppa burt farþega góðum árangri, þeir geta fá stig.
En fyrir að reyna að sleppa burt farþega þar sem það er ekki nokkurt hús í nágrenninu,
Jæja, þeir geta fengið refsað fyrir það.
Svo kannski þú vilt halda utan um stig í alþjóðlegum breytu.
>> Þú getur innleiða kannski myndatöku, þar notandinn hefur ákveðið magn af
tími til að taka upp og falla burt a ákveðinn fjölda farþega.
Kannski jafnvel samþætta þessa með punkt kerfi.
Eða þú getur breytt mynd þannig að farþegar eru flokkaðar eftir húsinu.
Svo sem myndi líklega vera eins konar virka til shuttle.seats.
>> Þú getur innleiða fljúgandi aðgerð, þar sem ef notandinn inntak á Konami
kóða, þá lyftir skutla burt jörð og skutla getur flogið.
En fyrir öruggum falla burt, best að gera The skutla lenda hjól sínu á
jörð fyrst.
Þú getur einnig framkvæma teleportation, þar sem þú gerir a falla dúnn listi af
byggingar í index.html.
Og velja einn af þeim, sem notandi verður fluttur til
að byggja á háskólasvæðinu.
OK, þó að ferðast í gegnum Veggir sum
byggingar á leiðinni þangað.
>> Þú getur líka breytt hraða skutla, leyfa the notandi til að auka
eða minnka hraða.
Kannski þú vilt alþjóðlegt breytu í halda utan um hversu mikið eldsneyti er
skutla hefur, minnkandi það eins og þú fara eftir.
Þegar þú högg núll, þó að skutla mun ekki vera hægt að færa nema þú hafir
refueled, kannski að nota hnappinn eða jafnvel gera eigin gas stöð.
>> En það er vissulega ekki tæmandi listi.
Skrá sig út the sérstakur fyrir fullt lista, eða kannski leggja
þinn eigin til að TF þínu.
Himinn er the takmörk.
Þetta er síðasta CS50 þinn p-sett, svo hafa gaman með það.
Þetta var CS50 Shuttle.
>> Ég hef fengið að segja, það er verið ánægjulegt gera þetta fyrir þig með því
framleiðslu lið.
Og ég vona að þú hafir notið þeirra, eins og vel.
Mitt nafn er Zamyla.
Og þetta var CS50.