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.