>> [Music kucheza]
>> SPIKA 1: Naam, hapa sisi ni, mwisho kuweka P katika CS50.
Kumpongeza wenyewe na kuwa na kuja hadi sasa tangu hujambo yako ya kwanza
ulimwengu na uchapishaji nje piramidi kwa Mario.
Unaweza kufanywa tovuti wiki iliyopita.
Na tunakwenda kuwa maamuzi ya mtu mwingine wiki hii, moja kwamba utapata
gari karibu Harvard ya chuo hicho, kuokota up CS50 wafanyakazi, na
kuwaleta nyuma yao nyumba za makazi.
>> Sasa wiki iliyopita sisi kazi katika PHP, server upande lugha.
Kwa kuweka hii P, sisi ni kupata vishawishi kwa JavaScript, ambayo ni
mteja upande lugha.
Basi hebu tuangalie baadhi ya usambazaji kificho kwamba ni zinazotolewa na
kwa kuweka hii P.
>> Katika folder JavaScript, kutakuwa na kuwa kundi la JavaScript files.
Kuna buildings.js, ambayo ina safu ya majengo karibu Harvard
chuo, na habari zao na msimamo.
Houses.js ni safu ya Harvard nyumba za makazi, na wao
latitudo na longitude.
Passengers.js ina safu ya abiria -
Wafanyakazi wanachama CS50 -
kuwa wewe utakuwa kuleta nyuma nyumba zao za kuishi.
>> Math3D.js, ambayo ina mengi ya kazi ya kufanya na harakati.
Kama wewe ni hesabu nia, basi mimi kuwakaribisha kuangalia.
Lakini huna haja ya kuelewa kila kitu huko.
Shuttle.js, ambayo inahusika na harakati kuhamisha ya.
Na index.html ni ukurasa wa nyumbani ambapo kila kitu kinachotokea, kwa kweli, ambapo
user ni mazungumzo na tovuti.
>> Service.css ni karatasi CSS style, ambayo, pamoja na Twitter
Bootstrap maktaba, udhibiti jinsi index.html inaonekana.
Na kisha sisi pia kuwa service.js, ambayo ina kazi huduma kwa
kuhamisha.
Na hapa ni wapi utaenda kuwa kujaza katika baadhi ya kwa dos.
>> Sasa hebu tuangalie vitu na arrays associative katika JavaScript,
ambayo kwa makusudi na madhumuni ya ni kubadilishana.
Kama nilitaka kufanya kitu variable aitwaye wand, napenda
kutangaza.
Na ndani ya braces wale curly napenda bayana msingi ni nyati.
kuni ni cherry.
Na urefu ni 13.
>> Sasa naweza pia kupata maadili wa vitu kwa kutumia
associative safu nukuu.
Hivyo wand index msingi, siwezi kuweka sawa sawa kwa nyati, au
kuangalia kwamba, kama mimi haja.
Au naweza kutumia dot operator.
Wand dot kuni sawa na cherry, na kadhalika, na kadhalika.
Hivyo unaweza kuona kwamba arrays associative na vitu katika JavaScript ni kwenda kuwa
kubadilishana, na mapenzi kuja katika Handy kabisa.
>> Kisha sisi kuona safu ya majengo katika buildings.js.
Tena, safu ya vitu.
Kama nilitaka kufanya safu ya bora majengo juu ya Harvard ya chuo hicho, kisha
Napenda kufanya hivyo kama ifuatavyo.
Kutumia nukuu hii kitu, ambapo Mimi kuhifadhi mizizi, jina, anwani,
latitude, na longitude kwa kila moja kujenga kitu.
>> Hebu haraka majadiliano juu ya vigezo katika JavaScript.
Kama PHP, JavaScript vigezo ni weakly au loosely typed.
Kujenga variable ndani, wewe kiambishi jina variable na V-A-R, var.
>> Sasa katika JavaScript, kazi mapenzi kupunguza wigo wa vigezo.
Hivyo kama una variable za mitaa ndani ya kazi, kisha kazi nyingine
hawawezi kupata hiyo.
Lakini tofauti na C, loops na hali hawana kupunguza wigo wa kutofautiana.
>> Hivyo hata kama wewe kutangaza ndani ya hali, kazi nzima
kuwa na huduma hiyo.
Sasa bila var, variable itakuwa kimataifa.
Hivyo kama wewe tu kutangaza jina na kuwapa thamani, basi, kwamba variable
itakuwa variable kimataifa katika JavaScript.
>> Sasa katika nyumba, tuna associative safu ya vitu aina nyumba, ambapo
kila nyumba ni tu latitude na longitude.
Basi tuna abiria safu, ambayo ni safu
ya kitu aina ya abiria.
Hivyo kila abiria ina jina la mtumiaji, jina, na nyumba.
Taarifa kwamba mimi nina kuona ya aina abiria, ambayo kwa kweli ina maana
kwamba kila kitu ina sawa muhimu jozi thamani.
Hivyo kila kitu ya aina abiria ina jina la mtumiaji, jina, na nyumba.
>> Basi je, tunahitaji kufanya kwa ajili ya P kuweka?
Naam, tunahitaji kuruhusu watumiaji kuchukua up wafanyakazi, kwa kuonyesha yote ya
wafanyakazi ambayo kwa sasa ni katika kuhamisha zetu, na kuacha yao mbali.
Na kisha tutaweza pia kuzungumza kuhusu ziada makala ambayo yanaweza kutekelezwa kwa
kuhamisha P kuweka.
>> Lakini hebu majadiliano juu ya Pickup kwanza.
nyuso za wafanyakazi CS50 wamekuwa sehemu zote za chuo, ambapo kila
uso unatekelezwa kama alama mahali duniani 3D, na kama
marker kwenye ramani yenye P2.
Hivyo wakati mtumiaji Clicks Pickup kifungo, tunataka kuongeza jirani
abiria kwa kuhamisha.
Na sisi pia unataka kuondoa nafasi yao alama kutoka ulimwenguni, na kuondoa yao
marker kutoka ramani, kuonyesha kwamba wao uko katika kuhamisha wetu sasa.
>> Hivyo ni jinsi gani sisi kuchunguza kama abiria ni ndani ya mbalimbali ya kuhamisha yetu?
Naam, mbali kazi -
hivyo kuhamisha dot mbali, kupita katika latitude na longitude, mapenzi
mahesabu ya umbali kutoka sasa nafasi ya kuhamisha
uhakika kwamba wewe taja na kwamba kutokana na latitude na longitude.
Hivyo unaweza kutumia hii kwa mahesabu ya umbali kutoka kuhamisha
abiria.
>> Lakini jinsi gani unajua ambapo abiria ni?
Naam, hiyo ni ambapo tutaweza kuwa na hariri na idadi ya kazi.
Na idadi ya maeneo yote ya wafanyakazi na abiria ulimwenguni,
na katika ramani, lakini haina kuhifadhi eneo lao.
Hivyo labda unaweza kuhifadhi yao mahali alama na alama
katika baadhi safu kimataifa.
>> Sasa tayari kuna ni safu kimataifa kuhifadhi taarifa kutoka kwa abiria.
maduka ya abiria safu ya kila jina abiria na nyumba zao.
Hivyo labda unaweza kuongeza vigezo chache kuna abiria vitu.
>> Kutusaidia kuchunguza abiria wote ndani ya mbalimbali ya kuhamisha wetu, wacha
kitanzi kwa njia zote za abiria abiria safu.
kwa kitanzi katika JavaScript ili kuangalia kitu kama hii, ni sawa na
wale kwa kitanzi katika C. Au tunaweza kutumia mbadala kwa ajili ya kitanzi muundo.
>> Kwa var i katika safu, ambapo mimi bado kuwa index.
Lakini huna haja ya kutaja safu dot urefu
hali, na i pamoja na plus.
Eneo kila abiria ni uliotolewa na wao alama mahali.
>> Lakini alama mahali ni si latitude na longitude.
Tuna kupata vigezo wale na kupata jiometri, kwa kutumia kupata
jiometri juu ya alama mahali.
Na kisha mara moja tuna jiometri, kupata ama latitude au
longitude, kwa kutumia kazi hizo.
>> Hivyo sasa tunajua jinsi ya kuchunguza kama abiria ni ndani ya
mbalimbali ya kuhamisha wetu.
Mara baada ya sisi na abiria hao, tutaweza unataka kuongeza abiria yoyote ambayo ni
ndani ya mbalimbali.
Tunataka kuwaruhusu hop juu, na kuchukua kiti cha juu ya kuhamisha wetu, lakini tu
kama tuna nafasi ya kutosha kwa ajili yao.
>> kuhamisha dot viti safu mapenzi kuonyesha kama viti ni tupu, au
ambaye ni katika kiti cha.
Hivyo kama kiti ni tupu, kisha kiti cha itakuwa null.
Hivyo iterate juu ya viti safu, kuangalia kwa viti tupu, kuhifadhi
abiria katika viti wale mpaka hawana viti yoyote zaidi tupu.
Na kwa bahati mbaya, abiria nyingine yoyote itabidi kusubiri kwa
wakati mwingine kuhamisha inakuja kote.
>> Mara baada ya wao kupata kuhamisha, sisi utasikia wanataka kuondoa yao alama mahali, ambayo
ni picha zao katika dunia 3D.
Kama nilitaka kuondoa mahali alama p, basi napenda kupata yote ya makala
kutoka nchi yangu, Google Earth, na kisha kuondoa mahali maalum
alama ya kutumia removeChild kazi.
Kisha mwisho, hebu kuondoa marker, icon juu ya P2 ramani kwa yoyote
abiria kwamba sisi ni kuokota.
Kuondoa marker, m, basi mimi itabidi tu kutekeleza m dot setMap null.
Je, hii kwa ajili ya abiria yoyote ndani ya mbalimbali, na kumaliza ya Pickup.