>> ZAMYLA Chan: Bon, isit la nou yo, dènye p la-mete nan CS50.
Felisite nou soti nan gen vin twò lwen depi premye Bonjou ou
Univer ak Printing moute Piramid pou Mario.
Ou te fè yon sit entènèt semèn pase a.
Apre sa, nou pral yo dwe fè yon lòt semèn sa a, yon sèl ki pèmèt ou
kondwi otou kanpis la Harvard, davwa moute anplwaye CS50 ak
pote yo tounen nan yo kay rezidansyèl yo.
>> Koulye a, semèn pase a nou te travay nan PHP, yon sèvè lang bò.
Pou sa p-seri, nou resevwa prezante JavaScript, ki se yon
kliyan lang bò.
Se konsa, kite a pran yon gade nan kèk nan la Kòd distribisyon ki nan bay
ou pou sa a p-seri egzèsis la.
Nan dosye a JavaScript, pral gen yon pakèt moun sou JavaScript dosye.
>> Genyen buildings.js, ki gen yon etalaj nan bilding nan Harvard
lakou lekòl la ak enfòmasyon yo ak pozisyon.
Houses.js se yon etalaj de Harvard kay rezidansyèl ak yo
latitid ak lonjitud.
Passengers.js gen yon etalaj de pasaje, anplwaye lekòl ki CS50
ki ou pral pote tounen nan kay rezidansyèl yo.
>> Math3D.js, ki gen yon anpil nan fonksyon fè ak mouvman an.
Si w ap matematik vle, Lè sa a, Mwen akeyi ou nan pran yon gade.
Men, ou pa bezwen konprann tout bagay nan la.
Shuttle.js, ki boule ak mouvman Shuttle la.
Apre sa, index.html se paj la kay kote tout bagay sa yo rive, reyèlman, kote la
itilizatè ki kominike avèk sit la.
>> Service.css se fèy style CSS, ki nan adisyon nan Twitter a
Bibliyotèk demaraj, kontwole ki jan index.html sanble.
Lè sa a, nou menm tou nou gen service.js, ki gen fonksyon sèvis pou
Shuttle la.
Apre sa, Isit la nan kote w ap ale nan dwe ranpli nan kèk nan fè-a la.
>> Koulye a, kite a pran yon gade nan objè ak ranje asosyatif nan JavaScript,
ki, pou tout entansyon ak objektif, yo ka ranplase.
Si m 'te vle fè yon objè yon varyab rele yon ralonj, mwen ta
deklare li.
Ak andedan sa yo aparèy òtopedik Curly, mwen ta presize, nwayo a se goumen tankou towo mawon, bwa a
se Cherry, ak longè a se 13.
>> Koulye a, mwen kapab tou jwenn aksè nan valè nan objè lè l sèvi avèk
asosyatif notasyon etalaj.
Nwayo endèks Se konsa, ralonj, mwen ka mete ki egal a goumen tankou towo mawon, oswa
tcheke ke si mwen bezwen.
Oswa mwen kapab itilize operatè a dot wand.wood egal Cherry, ak
Se konsa, sou ak pou fè.
Se konsa, ou wè ke ranje asosyatif ak objè ki nan JavaScript yo ale nan dwe
ranplase, epi li pral vini nan byen sou la men.
>> Lè sa a, nou wè yon etalaj nan bilding nan buildings.js,
ankò, yon etalaj de objè yo.
Si m 'te vle fè yon etalaj de pi bon an bilding sou lakou lekòl la Harvard, Lè sa a,
Mwen ta fè l 'jan sa a.
Lè l sèvi avèk notasyon sa a objè, kote Mwen sere rasin, non, adrès la,
latitid, ak lonjitid pou chak yon sèl bilding objè.
>> Se pou yo byen vit pale sou varyab nan JavaScript.
Menm jan ak PHP, JavaScript varyab yo chetif oswa blesi tape.
Pou kreye yon varyab lokal yo, ou prefiks non an varyab ak V-A-R, var.
Koulye a, nan JavaScript, fonksyon pral limite sijè ki abòde lan varyab.
Se konsa, si ou gen yon varyab lokal ki nan yon fonksyon, lè sa a lòt fonksyon
pa ka jwenn aksè li.
>> Men, kontrèman ak C, pasan ak kondisyon pa fè sa limite sijè ki abòde lan yon varyab.
Se konsa, menm si ou deklare li andedan nan yon kondisyon, fonksyon an antye ap
gen aksè a li.
Koulye a, san yo pa var, varyab la yo pral mondyal la.
Se konsa, si ou jis deklare non ak bay yon valè, Lè sa a, varyab sa a
pral gen yon varyab mondyal nan JavaScript.
>> Koulye a, nan kay, nou gen yon asosyatif etalaj de objè di ki kalite lame, kote
chak kay se jis yon latitid ak yon lonjitid.
Lè sa a, nou gen pasaje yo etalaj, ki se yon etalaj
nan kalite objè pasaje.
Se konsa, chak pasaje yo gen yon itilizatè non, yon non, ak yon kay.
>> Remake m ap di nan kalite pasaje yo, ki reyèlman jis vle di
ke chak objè gen nan menm valè kle pè.
Se konsa, chak objè nan kalite pasaje yo gen yon non itilizatè, yon non, ak yon kay.
Se konsa, sa nou bezwen fè pou p-seri a?
Oke, nou bezwen pèmèt itilizatè yo chwazi moute manm pèsonèl la, yo montre tout
anplwaye lekòl ki ki kounye a nan navèt nou an, epi lage yo ale.
Lè sa a, nou pral tou pale sou siplemantè karakteristik ki kapab aplike pou
Shuttle p-gwoup la.
>> Men, se pou nou pale sou pickup an premye.
Ap fè fas yo nan anplwaye CS50 yo te plante tout lòt peyi sou lakou lekòl la, kote chak
se figi aplike kòm yon mak kote sou 3D Latè a, epi kòm yon
makè sou kat jeyografik la 2D.
Se konsa, lè itilizatè a klik Ramase la bouton, nou vle ajoute ki tou pre
pasaje yo navèt la.
Apre sa, nou menm tou nou vle retire plas yo make soti nan mond lan epi retire yo
makè nan kat la, ki endike ke yo ap nan navèt nou an kounye a.
>> Se konsa, ki jan nou detekte si pasaje se nan ran de navèt nou an?
Oke, distans la fonksyon, se konsa shuttle.distance, pase nan la
latitid ak lonjitid, ap kalkile distans ki soti nan pozisyon aktyèl la
nan shuttle an nan pwen a ki ou presize ak ki bay
latitid ak lonjitid.
Se konsa, ou ka itilize sa a kalkile nan Distans soti nan navèt la a
pasaje.
>> Men, ki jan ou konnen ki kote pasaje yo yo ye?
Oke, sa a, se kote nou pral gen modifye fonksyon an alimenté.
Peple kote tout nan manm yo anplwaye nan pasaje nan mond lan
ak nan kat jeyografik la, men li pa magazen kote yo.
Se konsa, petèt ou ka magazen yo mete mak ak makè
nan kèk etalaj mondyal la.
>> Koulye a, gen deja se yon etalaj mondyal estoke enfòmasyon ki soti nan pasaje.
Boutik sa yo pasaje etalaj chak Non pasaje a ak kay yo.
Se konsa, petèt ou ka ajoute yon paramèt kèk gen yo objè yo pasaje.
>> Pou ede nou detekte tout pasaje yo nan ranje nan nou an
navèt, bouk Annou nan tout nan la pasaje peye ki nan etalaj la pasaje.
A pou bouk nan JavaScript ta ka gade yon bagay tankou sa a, sanble anpil ak
sa yo pou pasan nan C. oubyen nou ka sèvi ak yon altènatif pou estrikti bouk, pou
var mwen an pozisyon, kote mwen ap toujou gen endèks la, men ou pa bezwen
presize array.length la kondisyon e mwen + +.
>> Kote chak pasaje a se yo bay nan mak plas yo.
Men, make la kote se pa nan latitid ak lonjitid la.
Nou gen jwenn aksè nan paramèt sa yo pa ap resevwa jeyometri a, lè l sèvi avèk Pran
Jewometri sou make la kote, ak Lè sa a, yon fwa nou gen jeyometri a, ap resevwa
swa latitid a oswa lonjitid la lè l sèvi avèk fonksyon sa yo.
>> Se konsa, kounye a nou konnen ki jan yo detekte si wi ou non pasaje yo nan lespas
ran de navèt nou an.
Yon fwa nou gen moun ki pasaje, nou pral vle ajoute nenpòt ki pasaje ki
nan ki pòte.
Nou vle pou pèmèt yo hop sou epi pran yon plas sou navèt nou an, men se sèlman
si nou gen ase espas nan men yo.
>> Etalaj la shuttle.seats pral endike si wi ou non plas yo vid, oswa
ki moun ki la nan ke chèz.
Se konsa, si yon plas vid, Lè sa a, ki chèz pral nil.
Se konsa, repňte sou etalaj la plas, tcheke pou plas vid, sere
pasaje nan sa yo chèz jiskaske ou pa gen okenn plas plis vid.
Apre sa, malerezman, nenpòt ki lòt pasaje ap gen pou ret tann pou la
pwochen fwa shuttle an vini desann.
>> Yon fwa yo jwenn sou navèt la, nou pral vle yo retire mak plas yo, ki
se foto yo nan mond lan 3D.
Si mwen te vle retire yon kote ki make p, Lè sa a, mwen ta jwenn tout nan karakteristik yo ki
sou Latè mwen an, ki soti nan tè a Google, ak Lè sa a, retire kote sa a espesifik
make lè l sèvi avèk fonksyon an removeChild.
Lè sa a, Finalman, se pou yo retire makè a, Meksiko an sou kat jeyografik la 2d, pou nenpòt ki
pasaje yo ke nou ap davwa ke yo pran.
>> Pou retire yon makè m, Lè sa a, mwen pral jis egzekite m.setMap nil.
Fè sa pou nenpòt ki pasaje nan ranje, ak ou te fini pickup.
Fonksyon an tablo ta dwe montre tout nan pasaje yo ki nan ou
navèt, ak chèz vid si vid.
Se konsa, tablo ta dwe repekte sou shuttle.seats, ap montre a
enfòmasyon pasaje pou chak endèks, ak plas vid si sa endèks se nil.
>> Koulye a, si se HTML tèks mete andedan nan yon JavaScript varyab, Lè sa a, lè l sèvi avèk
document.getElementByID, tablo bwat edite HTML anndan an nan ki bay
eleman pa plase a Tèks HTML nan
document.getElementByID anndan varyab HTML.
Lè itilizatè yo klike sou bouton an Drop Off nan index.html, li ap rele nan
fonksyon dropoff.
Apre sa, li nan travay nou an aplike sa.
>> Nan dropoff, nou pral vle retire nenpòt ki pasaje yo soti nan navèt la sèlman si
nou ap nan seri nan destinasyon yo, yo rezidansyèl kay la.
Se konsa, dropoff ap gen yo tcheke si wi ou non navèt la se nan seri nan nenpòt nan la
kay, epi retire nenpòt ki nesesè pasaje yo soti nan navèt la.
Se konsa, ki jan nou tcheke si nou ap nan seri nan nenpòt ki kay?
Oke, ankò, nou pral fè pou sèvi ak nan shuttle.distance fonksyon, pase nan
latitid ak lonjitid nan pwen an ke nou ap tcheke kont.
>> Men, sa ki se pwen sa yo?
Oke, etalaj la kay, si ou sonje nan houses.js, magazen an
latitid ak lonjitid nan chak kay nan yon etalaj asosyatif, kote chak
endèks se non an nan kay sa a.
Lè sa a, yo retire pasaje -
byen, sèlman si nou ap nan seri yo kay yo ke yo vle pou yo ale nan.
Se konsa, ankò, sonje ke pasaje magazen kay la ke chak pasaje yo
vle pou yo ale nan.
Si yo ki nan seri yo kay, Lè sa a, nou pral retire ki
pasaje yo soti nan shuttle.seats ak seri pozisyon yo nan etalaj la nan nil.
>> Koulye a, kite nan pale sou kèk karakteristik siplemantè ki ka aplike nan
CS50 Shuttle p-gwoup la.
Genyen yon sistèm pwen kijan w kenbe tras nan konbyen
pwen yon itilizatè te genyen an.
Pou jete nan pasaje avèk siksè, yo ka jwenn pwen.
Men, pou ap eseye depoze pasaje kote pa gen okenn kay ki tou pre,
byen yo, yo ka jwenn okenn sanksyon kont pou sa.
Se konsa, petèt ou vle kenbe tras nan pwen yo nan yon varyab mondyal la.
>> Ou ka aplike petèt yon kwonomèt, kote itilizatè a gen yon sèten kantite
tan yo ranmase ak desann kite sou yon sèten kantite pasaje.
Petèt menm entegre sa a ak sistèm nan pwen.
Oswa ou ka Edit Tablo sa yo ki pasaje yo Ranje pa kay la.
Se konsa, ki ta kapab yon sòt fonksyone nan shuttle.seats.
>> Ou ka aplike yon karakteristik vole, kote si itilizatè a entrain konami a
Kòd, lè sa a shuttle an asanseur koupe nan tè ak shuttle an ka vole.
Men, pou yon gout san danje koupe, pi bon fè navèt nan peyi a wou li sou la
tè an premye.
Ou kapab tou aplike teleportasyon, ki kote ou fè yon gout desann lis
bilding nan index.html.
Apre sa, chwazi youn nan sa yo, ap itilizatè te transpòte li nan
ki bati sou lakou lekòl la.
OK, menm si, yo vwayaje nan mi yo ki nan kèk
bilding sou wout ou a.
>> Ou kapab tou chanje vitès la nan la navèt, sa ki pèmèt itilizatè a ogmante
oswa diminye vitès la.
Petèt ou vle yon varyab mondyal kenbe tras nan konbyen lajan gaz la
navèt gen, diminye li jan ou ale ansanm.
Yon fwa ou frape zewo, menm si, shuttle an pa yo pral kapab pou avanse pou pi eksepte si yo te
kreye, petèt lè l sèvi avèk yon bouton, oswa menm fè estasyon pwòp gaz ou a.
>> Men, ki sètènman se pa yon lis konplè.
Tcheke espèk a pou plen la lis, oswa petèt pwopoze
pwòp TF ou ou.
Syèl la se limit la.
Sa a se dènye ou CS50 p-seri, Se konsa, gen amizan ak li.
Sa a te CS50 Shuttle.
>> Mwen te gen vle di, li te gen yon plezi fè sa yo pou ou ak nan
pwodiksyon ekip.
Apre sa, mwen espere ke ou te jwi yo, tankou byen.
Non mwen se Zamyla.
Lè sa a te CS50.