>> ZAMYLA CHAN: Naam, hapa sisi ni, mwisho p-kuweka katika CS50.
Kumpongeza wenyewe na kuwa na kuja hadi sasa tangu Habari yako ya kwanza
Viumbe vyote na Printing Up Pyramids 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 wafanyakazi CS50 na
kuwaleta nyuma yao nyumba za makazi.
>> Sasa, wiki iliyopita sisi kazi katika PHP, server upande lugha.
Kwa hili p-set, sisi ni kupata vishawishi kwa JavaScript, ambayo ni
mteja upande lugha.
Basi hebu tuangalie baadhi ya usambazaji kificho kwamba ni zinazotolewa na
wewe kwa hili p-kuweka.
Katika folder JavaScript, kutakuwa na kuwa kundi la JavaScript files.
>> Kuna buildings.js, ambayo ina safu ya majengo karibu Harvard
chuo na taarifa zao na msimamo.
Houses.js ni safu ya Harvard nyumba za makazi na wao
latitudo na longitude.
Passengers.js ina safu ya abiria, wanachama CS50 wafanyakazi
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 Shuttle 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 kwa kuongeza Twitter
Bootstrap Library, udhibiti jinsi index.html inaonekana.
Na kisha sisi pia kuwa service.js, ambayo ina kazi huduma kwa
Shuttle.
Na hapa ni wapi utaenda kuwa kujaza katika baadhi ya kwa-do ya.
>> Sasa hebu tuangalie vitu na arrays associative katika JavaScript,
ambayo, kwa nia na madhumuni yote, ni kubadilishana.
Kama nilitaka kufanya kitu variable aitwaye wand, napenda
kutangaza.
Na ndani ya braces wale curly, napenda bayana, msingi ni nyati, mbao
ni cherry, na urefu ni 13.
>> Sasa, siwezi 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.wood 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 ya jeshi, ambapo
kila nyumba ni tu latitude na longitude.
Basi tuna abiria safu, ambayo ni safu
ya kitu aina ya abiria.
Hivyo kila abiria ina user jina, jina, na nyumba.
>> Taarifa kwamba mimi kusema ya aina abiria, ambayo kwa kweli ina maana
kwamba kila kitu ina sawa muhimu thamani jozi.
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
Shuttle 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 dunia 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 ya kazi, hivyo shuttle.distance, kupita katika
latitude na longitude, mahesabu ya umbali kutoka nafasi ya sasa
ya kuhamisha kwa uhakika kwamba wewe taja kwa kuwa 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 abiria katika dunia
na katika ramani, lakini haina kuhifadhi eneo lao.
Hivyo labda unaweza kuhifadhi yao mahali alama na alama
katika baadhi safu kimataifa.
>> Sasa, kuna tayari 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 yote ya abiria ndani ya mbalimbali ya yetu
kuhamisha, hebu kitanzi kwa njia zote za abiria katika abiria safu.
kwa kitanzi katika JavaScript ili kuangalia kitu kama hii, ni sawa na
wale kwa loops katika C. Au tunaweza kutumia mbadala kwa ajili ya kitanzi muundo, kwa
var i katika safu, ambapo i bado kuwa index, lakini huna haja ya
bayana array.length hali na i + +.
>> 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 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 na kuchukua kiti cha kuhamisha yetu, lakini tu
kama tuna nafasi ya kutosha yao.
>> shuttle.seats safu zinaonyesha 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 chini.
>> 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 duniani yangu, Google Earth, na kisha kuondoa mahali maalum
alama ya kutumia removeChild kazi.
Kisha mwisho, hebu kuondoa marker, icon kwenye ramani 2D, kwa yeyote
abiria kwamba sisi ni kuokota.
>> Kuondoa marker m, basi mimi itabidi tu kutekeleza m.setMap null.
Je, hii kwa ajili ya abiria yoyote ndani ya mbalimbali, na kumaliza ya Pickup.
chati kazi wanapaswa kuonyesha wote ya abiria kwamba ni katika yako
kuhamisha, na kiti cha tupu kama tupu.
Hivyo chati lazima iterate juu ya shuttle.seats, kwa kuonyesha
habari abiria kwa kila index, na kiti cha tupu kama kwamba index ni null.
>> Sasa kama HTML Nakala kuweka ndani ya JavaScript variable, kisha kwa kutumia
document.getElementByID, chati unaweza hariri HTML ndani ya kuwa kutokana na
hiki na kumshirikisha HTML Nakala
document.getElementByID ndani HTML kutofautiana.
Wakati watumiaji bonyeza Drop Off katika index.html, kutakuwa na kuwaita
dropoff kazi.
Na ni kazi yetu kutekeleza hiyo.
>> Katika dropoff, tutaweza unataka kuondoa yoyote abiria kutoka kuhamisha tu kama
tuko katika aina mbalimbali ya marudio yao, nyumba zao za kuishi.
Hivyo dropoff itakuwa na kuangalia kama kuhamisha ni katika aina mbalimbali ya yoyote ya
nyumba, na kuondoa yoyote zinahitajika abiria kutoka kuhamisha.
Hivyo ni jinsi gani sisi kuangalia kama sisi ni katika aina mbalimbali ya nyumba yoyote?
Vizuri, lakini tena, tutaweza kufanya matumizi ya shuttle.distance kazi, kupita katika
latitude na longitude ya uhakika kwamba sisi ni kuangalia dhidi ya.
>> Lakini ni nini pointi hizo?
Naam, nyumba safu, kama unakumbuka katika houses.js, maduka
latitude na longitude ya kila nyumba katika safu associative, ambapo kila
index ni jina la nyumba hiyo.
Kisha kuondoa abiria -
vizuri, tu kama sisi ni katika aina mbalimbali ya zao nyumba kwamba wanataka kwenda.
Hivyo tena, kumbuka kwamba abiria maduka ya nyumba kwamba kila abiria
anataka kwenda.
Kama wao ni ndani ya mbalimbali ya zao nyumba, basi tutaweza kuondoa kwamba
abiria kutoka shuttle.seats na kuweka nafasi yao katika safu ya null.
>> Sasa hebu majadiliano kuhusu baadhi ya sifa za ziada ambayo yanaweza kutekelezwa katika
CS50 Shuttle p-kuweka.
Kuna mfumo wa uhakika ambapo kuweka wimbo wa ngapi
anasema mtumiaji.
Kwa kuacha mbali abiria mafanikio, wanaweza kupata pointi.
Lakini kwa kujaribu kuacha mbali abiria ambapo kuna si nyumba yoyote karibu,
vizuri, wanaweza kupata adhabu kwa ajili hiyo.
Hivyo labda unataka kuweka wimbo wa pointi katika variable kimataifa.
>> Unaweza kutekeleza labda timer, ambapo user ana kiasi fulani cha
wakati wa kuchukua na kuacha mbali a idadi fulani ya abiria.
Labda hata kuunganisha hii na mfumo wa uhakika.
Au unaweza Hariri Chati kama kwamba abiria ni vyema na nyumba.
Ili pengine ingekuwa aina kazi kwa shuttle.seats.
>> Unaweza kutekeleza kipengele kuruka, ambapo kama user pembejeo Konami
code, basi kuhamisha akanyanyua mbali ardhi na kuhamisha inaweza kuruka.
Lakini kwa tone salama mbali, bora ya kufanya kuhamisha nchi magurudumu yake juu ya
ardhi ya kwanza.
Unaweza pia kutekeleza teleportation, ambapo kufanya kushuka chini katika orodha ya
majengo katika index.html.
Na kuchagua moja ya hizo, user atapelekwa
kwamba jengo juu ya chuo.
OK, ingawa, kwa kusafiri kwa njia ya kuta za baadhi
majengo juu ya njia yako huko.
>> Unaweza pia mabadiliko ya kasi ya kuhamisha, kuruhusu user kuongeza
au kupungua kwa kasi.
Labda unataka variable kimataifa kuweka wimbo wa jinsi mafuta mengi the
kuhamisha ina, kupungua kwa kama wewe kwenda pamoja.
Mara baada ya kugonga zero, ingawa, kuhamisha haitakuwa na uwezo wa hoja kama wewe wameweza
refueled, labda kwa kutumia kifungo, au hata kufanya yako kituo cha mafuta mwenyewe.
>> Lakini kwamba hakika si orodha kamili.
Angalia spec kwa full orodha, au labda kupendekeza
yako mwenyewe TF yako.
anga ni ya kikomo.
Hii ni mara CS50 p-kuweka yako, hivyo kuwa na furaha na hayo.
Hii ilikuwa CS50 Shuttle.
>> Mimi nimepata kusema, imekuwa ni furaha kufanya haya kwa ajili yenu na
uzalishaji wa timu.
Na mimi matumaini yetu kwamba wameweza kufurahia yao, kama vile.
Jina langu ni Zamyla.
Na hii ilikuwa CS50.