1 00:00:00,000 --> 00:00:09,870 2 00:00:09,870 --> 00:00:13,360 >> ZAMYLA Chan: Beno, hemen gaude, azken p-set CS50. 3 00:00:13,360 --> 00:00:17,040 Zorionak zuei izatea beraz, orain arte etorri geroztik zure lehen Kaixo 4 00:00:17,040 --> 00:00:20,090 Munduak eta Baserria Up Mario piramideak. 5 00:00:20,090 --> 00:00:21,930 Joan den astean web orri bat egin duzu. 6 00:00:21,930 --> 00:00:25,110 Eta zu be beste bat egiten joan gara aste honetan, bat aukera ematen dizu 7 00:00:25,110 --> 00:00:28,570 Harvard campusean inguruan gidatzeko, biltzea CS50 taldekideak eta sortu 8 00:00:28,570 --> 00:00:31,910 ekartzen atzera beren egoitza-etxeak. 9 00:00:31,910 --> 00:00:35,400 >> Orain, azken astean PHP lan egin dugu, zerbitzari albo hizkuntza bat. 10 00:00:35,400 --> 00:00:38,250 P-multzo honetan, ohitu gara sartu Ikusteko Javascript-a, hau da, bat 11 00:00:38,250 --> 00:00:40,610 bezero alboko hizkuntza. 12 00:00:40,610 --> 00:00:44,020 Beraz, dezagun, batzuk begirada bat hori emandako banaketa-kodea 13 00:00:44,020 --> 00:00:46,210 p-multzo honetan duzu. 14 00:00:46,210 --> 00:00:49,700 JavaScript karpetan, egongo da JavaScript fitxategi mordo bat izango da. 15 00:00:49,700 --> 00:00:53,600 >> Ez dago buildings.js, horrek dauka baten Harvard inguruan eraikin sorta 16 00:00:53,600 --> 00:00:57,340 Beren informazioa duen campusean eta posizio. 17 00:00:57,340 --> 00:01:01,630 Houses.js Harvard array bat da dituzten egoitza-etxeak bere 18 00:01:01,630 --> 00:01:04,030 latitude eta longitudeak. 19 00:01:04,030 --> 00:01:08,600 Passengers.js array bat dauka bidaiariak, CS50 taldekideak 20 00:01:08,600 --> 00:01:11,640 duzula behar hori itzultzea izango den beren egoitza-etxeak. 21 00:01:11,640 --> 00:01:16,450 >> Math3D.js, asko dituen funtzio mugimendua egin. 22 00:01:16,450 --> 00:01:19,500 Oraindik matematikoki bada zabaltasuna, ondoren Begirada bat hartu behar duzu ongietorria dut. 23 00:01:19,500 --> 00:01:23,530 Baina ez duzu ulertzen han dena. 24 00:01:23,530 --> 00:01:26,710 Shuttle.js, hori jorratzen Shuttle mugimendua. 25 00:01:26,710 --> 00:01:31,450 Eta index.html etxeko orria da non dena gertatzen da, benetan, non 26 00:01:31,450 --> 00:01:33,610 Erabiltzaileak gune erlazionatzerakoan da. 27 00:01:33,610 --> 00:01:39,110 >> Service.css CSS estilo-orria da, eta horrek Twitterren gain 28 00:01:39,110 --> 00:01:43,960 Bootstrap Liburutegia, kontrolak nola index.html begiradak. 29 00:01:43,960 --> 00:01:48,190 Eta orduan ere izan dugu service.js, zein zerbitzuaren funtzio dauka egiteko 30 00:01:48,190 --> 00:01:49,010 Anezka. 31 00:01:49,010 --> 00:01:53,010 Eta hemen, non ari zaren izango da Egitekoen en batzuk betez. 32 00:01:53,010 --> 00:01:56,600 >> Dezagun orain objektu begirada bat eta JavaScript elkartze-array, 33 00:01:56,600 --> 00:01:59,360 horrek xede guztietarako, truka dira. 34 00:01:59,360 --> 00:02:03,030 Objektu baten aldagai bat egin nahi badut makila bat deitu, nuke 35 00:02:03,030 --> 00:02:04,290 deklaratzen da. 36 00:02:04,290 --> 00:02:09,350 Eta kizkur horiek barruan, nuke zehaztu, core unicorn da, egurra 37 00:02:09,350 --> 00:02:12,710 gerezi da, eta luzera da 13. 38 00:02:12,710 --> 00:02:16,370 >> Orain, I balioak ere sar daitezke erabiliz objektuen 39 00:02:16,370 --> 00:02:18,270 Elkartze-array idazkera. 40 00:02:18,270 --> 00:02:22,610 Beraz makila indizea core, ezarri ahal izango dut duten unicorn berdina, edo 41 00:02:22,610 --> 00:02:24,710 egiaztatu behar badut. 42 00:02:24,710 --> 00:02:28,890 Edo dot operadorea erabili ahal izango dut wand.wood berdinen gereziondoak, eta 43 00:02:28,890 --> 00:02:30,280 abar eta abar. 44 00:02:30,280 --> 00:02:33,930 Beraz, ikusi duzun elkartze-array eta JavaScript objetu izango da 45 00:02:33,930 --> 00:02:37,710 truka, eta borondate nahiko erabilgarri etorriko. 46 00:02:37,710 --> 00:02:41,570 >> Ondoren eraikin array bat ikusiko dugu buildings.js in, 47 00:02:41,570 --> 00:02:43,870 berriro ere, objektuak array bat. 48 00:02:43,870 --> 00:02:48,500 Onenak array bat egin nahi badut Harvard campuseko eraikinak, eta gero 49 00:02:48,500 --> 00:02:49,710 Egiteko honela nuke. 50 00:02:49,710 --> 00:02:55,250 Objektu idazkera hau erabiliz, non Gordetzen dut erro, izena, helbidea, 51 00:02:55,250 --> 00:03:00,260 latitude eta longitude bakoitzerako Eraikin objektu bakar. 52 00:03:00,260 --> 00:03:02,930 >> En azkar aldagai buruz hitz egin dezagun JavaScript. 53 00:03:02,930 --> 00:03:07,760 PHP, Javascript aldagai bezala ahulki edo baziren idatzi dira. 54 00:03:07,760 --> 00:03:14,120 Tokiko aldagai bat sortzeko, has duzu V-A-R, var Izen aldagaia. 55 00:03:14,120 --> 00:03:17,010 Orain, JavaScript, funtzio izango aldagai esparrua mugatzeko. 56 00:03:17,010 --> 00:03:20,600 Beraz zaien tokiko aldagai bat izanez gero funtzio bat, eta gero beste funtzio 57 00:03:20,600 --> 00:03:22,060 ezin da atzitu. 58 00:03:22,060 --> 00:03:26,090 >> Baina C ez bezala, begiztak eta baldintzak ez aldagai baten esparrua mugatzeko. 59 00:03:26,090 --> 00:03:30,600 Baten barruan deklaratzen bada beraz, nahiz eta zuk baldintza, funtzio osoa izango 60 00:03:30,600 --> 00:03:32,810 da sarbidea. 61 00:03:32,810 --> 00:03:35,820 Orain, var gabe, aldagaiaren globala izango da. 62 00:03:35,820 --> 00:03:39,170 Duzun izena deklaratzen hala bada besterik eta balio bat esleitzeko, ondoren, aldagai hori 63 00:03:39,170 --> 00:03:41,900 aldagai global bat izango da JavaScript. 64 00:03:41,900 --> 00:03:48,480 >> Orain, etxeetan, elkartze bat dugu ostalari mota objektuak, array non 65 00:03:48,480 --> 00:03:52,100 etxe guztietan latitude bat besterik ez da eta longitude bat. 66 00:03:52,100 --> 00:03:55,140 Ondoren bidaiariak dugu array, horrek array bat da 67 00:03:55,140 --> 00:03:57,370 objektuaren mota bidaiarien neurtzen. 68 00:03:57,370 --> 00:04:01,620 Beraz, bidaiarien behin erabiltzaile ditu izendatzeko, izen bat eta etxe bat. 69 00:04:01,620 --> 00:04:04,840 >> Nabarituko motakoa dela esaten dut bidaiariak, eta horrek benetan esan nahi 70 00:04:04,840 --> 00:04:08,150 objektu bakoitza ditu bera funtsezko balioa bikoteak. 71 00:04:08,150 --> 00:04:12,830 Beraz, mota bidaiarien objektu guztietan du erabiltzaile izen bat, izen bat, eta etxe bat. 72 00:04:12,830 --> 00:04:14,850 Beraz, zer egin behar dugu p-set alde? 73 00:04:14,850 --> 00:04:20,779 Beno, erabiltzaileei jaso ahal izateko behar dugu taldekideak gora, guztiak erakutsi 74 00:04:20,779 --> 00:04:25,080 taldekideak honako hauek direla gaur egun dauden gure anezka, eta horiek askatu off. 75 00:04:25,080 --> 00:04:29,395 Eta gero, gainera, dugu estra buruz hitz horretarako garatu daitekeen ezaugarri 76 00:04:29,395 --> 00:04:30,980 Anezka p-set. 77 00:04:30,980 --> 00:04:33,610 >> Baina dezagun eztabaida bilketa buruzko lehen. 78 00:04:33,610 --> 00:04:37,480 CS50 langileen aurpegiak izan dira campus osoan zehar landatu, non bakoitzak 79 00:04:37,480 --> 00:04:41,750 aurpegia leku-marka gisa inplementatu 3D Lurrean, eta gisa 80 00:04:41,750 --> 00:04:44,020 markatzailea 2D mapan. 81 00:04:44,020 --> 00:04:47,880 Erabiltzaileari bilketa klik beraz, botoia, hurbileko gehitu nahi dugu 82 00:04:47,880 --> 00:04:49,590 anezka bidaiari. 83 00:04:49,590 --> 00:04:53,650 Eta, halaber, beren lekua kendu nahi dugu mundutik markatu eta kendu bere 84 00:04:53,650 --> 00:04:58,060 mapan egin markatzailea, adieraziz duten Oraindik gure anezka dute orain. 85 00:04:58,060 --> 00:05:02,520 >> Beraz, nola ez detektatu dugu bada bidaiari gure anezka eremuan daudela? 86 00:05:02,520 --> 00:05:06,670 Beno, funtzioa distantzia, beraz, shuttle.distance, pasatuz 87 00:05:06,670 --> 00:05:10,630 latitude eta longitude, kalkulatuko du uneko posizioa distantzia 88 00:05:10,630 --> 00:05:14,220 puntua anezka du horrek Zehaztu eman dituzun 89 00:05:14,220 --> 00:05:15,860 latitude eta longitudea. 90 00:05:15,860 --> 00:05:19,180 Beraz, hau erabili ahal izango dituzu da kalkulatu du anezka distantzia egiteko 91 00:05:19,180 --> 00:05:20,310 bidaiari. 92 00:05:20,310 --> 00:05:24,040 >> Baina nola dakizu non bidaiariak dira? 93 00:05:24,040 --> 00:05:27,510 Beno, hori da, non nahi dizkizugu dute populatu funtzioa editatzeko. 94 00:05:27,510 --> 00:05:32,500 Populatu leku taldekideak guztia mundura bidaiarientzako 95 00:05:32,500 --> 00:05:36,300 eta mapa bat gainditu du, baina ez du Bere kokapena gordetzeko. 96 00:05:36,300 --> 00:05:39,850 Beraz, agian gorde dezakezu bere jarri ikurrak eta markatzaileak 97 00:05:39,850 --> 00:05:41,570 array global batzuetan. 98 00:05:41,570 --> 00:05:45,780 >> Orain, ez dago dagoeneko array globala da bidaiari baten informazioa gordetzeko. 99 00:05:45,780 --> 00:05:49,960 Bakoitzeko bidaiari array dendetan bidaiarien izen-abizenak eta bere etxea. 100 00:05:49,960 --> 00:05:54,985 Beraz, agian parametro batzuk gehitu ahal izango dituzu bidaiarien objektuak daude. 101 00:05:54,985 --> 00:05:58,150 >> Bidaiari-guztiak detektatzen lagunduko digu gure estalduran 102 00:05:58,150 --> 00:06:02,485 anezka, dezagun begizta guztietan barrena bidaiari array bidaiari. 103 00:06:02,485 --> 00:06:07,790 JavaScript begizta bat bila liteke honen antzeko zerbait, oso antzekoa 104 00:06:07,790 --> 00:06:13,200 C. loops horiek Edo bat erabili ahal izango dugu begizta egitura alternatiba, eman 105 00:06:13,200 --> 00:06:18,680 var array i, non i izango da oraindik ere indizea, baina ez duzu nahi 106 00:06:18,680 --> 00:06:23,310 array.length zehaztu egoera eta i + +. 107 00:06:23,310 --> 00:06:26,130 >> Bidaiari bakoitzaren kokapena da beren leku-marka emandako. 108 00:06:26,130 --> 00:06:29,800 Baina leku-marka ez da latitude eta longitudea. 109 00:06:29,800 --> 00:06:34,170 Parametro horien sartzeko egindako dugu geometria lortzean, get erabiliz 110 00:06:34,170 --> 00:06:38,180 leku-marka da geometria, eta, ondoren, behin geometria dugu, eskuratzerakoan 111 00:06:38,180 --> 00:06:42,580 bai latitude edo longitudea funtzio horiek erabiliz. 112 00:06:42,580 --> 00:06:45,680 >> Beraz, orain nola antzeman ala ez badakigu bidaiari barruan daude 113 00:06:45,680 --> 00:06:47,920 gure anezka sorta. 114 00:06:47,920 --> 00:06:52,050 Behin bidaiari horiek ditugu, dugu direla edozein bidaiari gehitu nahi 115 00:06:52,050 --> 00:06:53,140 sorta horren barruan. 116 00:06:53,140 --> 00:06:57,580 Hop eta horiek baimendu nahi dugu gure anezka on eserleku bat, baina soilik 117 00:06:57,580 --> 00:06:59,630 horiek nahikoa gela dugu bada. 118 00:06:59,630 --> 00:07:04,120 >> Shuttle.seats array adieraziko du eserleku hutsik daude ala ez, edo 119 00:07:04,120 --> 00:07:05,890 nork eserlekua horretan da. 120 00:07:05,890 --> 00:07:11,160 Beraz, eserleku bat hutsik badago, orduan eserlekua dela nulua izango da. 121 00:07:11,160 --> 00:07:15,930 Beraz eserleku array zehar batetik bestera joateko, eserleku hutsik egiaztapena, gordetzeko 122 00:07:15,930 --> 00:07:20,020 eserleku horietan sartu bidaiari arte ez edozein eserleku gehiago hutsik izan. 123 00:07:20,020 --> 00:07:23,330 Eta, zoritxarrez, edozein beste bidaiariak hemen itxaron beharko 124 00:07:23,330 --> 00:07:26,000 hurrengoan anezka dator behera. 125 00:07:26,000 --> 00:07:30,280 >> Behin lortu anezka on dute, egingo nahi dugu beren leku-marka kentzeko, eta horrek 126 00:07:30,280 --> 00:07:32,580 beren argazkian 3D munduan da. 127 00:07:32,580 --> 00:07:38,030 Kentzeko leku-marka p a nahiko banu, ondoren, ezaugarri guztiak nuke 128 00:07:38,030 --> 00:07:42,820 nire Earthtik, Google Earth-tik, eta ondoren, leku zehatz hori kendu 129 00:07:42,820 --> 00:07:45,910 markatu removeChild funtzioa erabiliz. 130 00:07:45,910 --> 00:07:51,360 Gero, azkenik, dezagun kendu markatzailea, 2D mapan ikonoa, edozein 131 00:07:51,360 --> 00:07:53,650 bidaiarien duten picking ari gara. 132 00:07:53,650 --> 00:07:59,790 >> Markatzailea m bat kentzeko, orduan ez dut besterik exekutatu m.setMap nulua. 133 00:07:59,790 --> 00:08:03,670 Egin hori gama barruan bidaiariak edozein, eta nik bilketa amaitu duzu. 134 00:08:03,670 --> 00:08:07,890 Diagrama funtzioa guztiak bistaratu behar dituen horretan daude bidaiariak zure 135 00:08:07,890 --> 00:08:11,000 anezka, eta eserlekua hutsik hutsik bada. 136 00:08:11,000 --> 00:08:14,420 Beraz diagrama zehar batetik bestera joateko behar shuttle.seats, erakusteak 137 00:08:14,420 --> 00:08:21,350 bidaiarien indizea guztientzako informazio, eta eserlekua hutsik bada indizea nulua da. 138 00:08:21,350 --> 00:08:26,160 >> Orain baten barruan HTML testua jarri bada Ikusteko Javascript-a aldakorra, gero erabiliz 139 00:08:26,160 --> 00:08:31,950 document.getElementById, diagrama can eman horren barruko HTML editatu 140 00:08:31,950 --> 00:08:36,140 esleituz elementu To HTML testua 141 00:08:36,140 --> 00:08:40,840 document.getElementById barruko HTML aldakorra. 142 00:08:40,840 --> 00:08:46,180 Erabiltzaile klikatzen denean Drop Off botoia index.html in, deitu egingo dut 143 00:08:46,180 --> 00:08:47,160 dropoff funtzioa. 144 00:08:47,160 --> 00:08:49,510 Eta gure lana da hori martxan jarri ahal izateko. 145 00:08:49,510 --> 00:08:54,150 >> Dropoff in, ikusiko edozein kendu nahi dugu anezka batetik bidaiari bada bakarrik 146 00:08:54,150 --> 00:08:58,740 Oraindik beraien helmuga sorta dugu, beren egoitza-etxea. 147 00:08:58,740 --> 00:09:03,300 Beraz dropoff daitekeen ikusteko aukera izango dute anezka edozeinetan sorta da 148 00:09:03,300 --> 00:09:08,200 etxeak, eta kendu behar den edozein anezka batetik bidaiariak. 149 00:09:08,200 --> 00:09:11,020 Beraz, nola ez Oraindik badugu egiaztatu dugu edozein etxe-sorta? 150 00:09:11,020 --> 00:09:16,630 Beno, berriro ere, dugu erabilera egin beharko du shuttle.distance funtzioa, pasatzen 151 00:09:16,630 --> 00:09:20,990 latitude eta longitude puntuaren aurka dugu egiaztatzen duten ari. 152 00:09:20,990 --> 00:09:22,730 >> Baina zer dira puntu horiek? 153 00:09:22,730 --> 00:09:27,210 Beno, etxe array, gogoratzen baduzu houses.js batean, gordetzen du 154 00:09:27,210 --> 00:09:32,790 latitude eta longitude etxe bakoitzeko elkartze-array bat, non bakoitzak 155 00:09:32,790 --> 00:09:35,980 Indize etxea duten izena da. 156 00:09:35,980 --> 00:09:37,590 Ondoren bidaiariak kentzeko - 157 00:09:37,590 --> 00:09:41,820 ondo, gara sorta bada bakarrik beren etxera joan nahi dutela. 158 00:09:41,820 --> 00:09:46,380 Beraz, berriro ere, gogoratu bidaiari etxea gordetzen duen bidaiari orok 159 00:09:46,380 --> 00:09:48,850 ra joan nahi du. 160 00:09:48,850 --> 00:09:51,670 Dira sorta barruan bada beren etxea, orduan kenduko dugu 161 00:09:51,670 --> 00:09:57,200 shuttle.seats eta multzo batetik bidaiari euren array posizio null. 162 00:09:57,200 --> 00:10:00,220 >> Orain dezagun aparteko ezaugarri batzuk buruz duten-en garatu daitekeen 163 00:10:00,220 --> 00:10:02,690 CS50 Shuttle p-set. 164 00:10:02,690 --> 00:10:05,850 Badira puntu sistema bat da, zeinaren bidez segimendua zenbat 165 00:10:05,850 --> 00:10:07,520 Erabiltzaileak puntu bat dauka. 166 00:10:07,520 --> 00:10:11,120 Off bidaiariak eraman arrakastaz, puntuak lortu ahal izango dute. 167 00:10:11,120 --> 00:10:15,100 Baina utzi bidaiari saiatzeagatik han ez da edozein etxe hurbil, 168 00:10:15,100 --> 00:10:16,980 bai, izan daitezke ezagutu duten zigortuko. 169 00:10:16,980 --> 00:10:21,790 Beraz, agian, segimendua egiteko, nahi duzun aldagai global batean puntuak. 170 00:10:21,790 --> 00:10:25,970 >> Agian, tenporizadore bat, ezartzeko dezakezu non erabiltzaileari kopuru jakin bat du 171 00:10:25,970 --> 00:10:29,800 jasotzeko eta jaregin off bat denbora Zenbait bidaiari kopurua. 172 00:10:29,800 --> 00:10:33,280 Eta beharbada, integratu hau puntu sistemarekin. 173 00:10:33,280 --> 00:10:39,970 Edo Datuen editatu ahal izango dituzu, besteak beste, bidaiariak dira etxe horrela antolatu. 174 00:10:39,970 --> 00:10:45,250 Beraz, seguruenik moduko bat izan shuttle.seats funtzionatzeko. 175 00:10:45,250 --> 00:10:49,240 >> Hegan ezaugarri bat ezartzeko dezakezu, non erabiltzaileak input bada Konami du 176 00:10:49,240 --> 00:10:53,460 kodea, gero anezka altxatu off lurrean eta anezka hegan egin dezake. 177 00:10:53,460 --> 00:10:58,890 Baina jaitsiera seguru bat off egiteko, onena egin anezka lur haren gurpilak 178 00:10:58,890 --> 00:11:00,700 lurrean lehen. 179 00:11:00,700 --> 00:11:05,910 Ere teleportation ezartzeko ahal izango, non zerrenda goitibeherako bat egin duzu 180 00:11:05,910 --> 00:11:08,380 index.html eraikinik. 181 00:11:08,380 --> 00:11:12,270 Eta horietako bat, aukeratuz Erabiltzaileak beharreko garraiatzen egingo 182 00:11:12,270 --> 00:11:14,220 duten campus eraikina. 183 00:11:14,220 --> 00:11:16,760 Ados, baina, barrena bidaiatzeko zenbait hormetan 184 00:11:16,760 --> 00:11:19,290 zure bidea dago eraikinak. 185 00:11:19,290 --> 00:11:22,960 >> Duzun abiadura ere aldatu ahal anezka, erabiltzaileari handitzeko aukera ematen 186 00:11:22,960 --> 00:11:25,490 edo txikitzeko abiadura. 187 00:11:25,490 --> 00:11:28,840 Agian aldagai global bat nahi duzu erregai zenbat segimendua 188 00:11:28,840 --> 00:11:31,520 anezka ditu, jaitsiz batera joan behar baitu. 189 00:11:31,520 --> 00:11:35,860 Hit duzu behin zero, nahiz eta, anezka ezin izango duzun ezean mugitu ahal 190 00:11:35,860 --> 00:11:40,610 refueled, agian botoi bat erabiliz, edo are Egin zure gasolindegia egiteko. 191 00:11:40,610 --> 00:11:43,240 >> Baina, zalantzarik gabe, ez da zerrenda zehatza. 192 00:11:43,240 --> 00:11:46,340 Begiratu zehaztapenak osoa zerrendatu, edo, agian, proposatzen 193 00:11:46,340 --> 00:11:47,840 zure zure TF nahi egin. 194 00:11:47,840 --> 00:11:48,950 Zerua muga da. 195 00:11:48,950 --> 00:11:53,110 Hau zure azken CS50 p-multzoa da, hain dibertigarria izango du. 196 00:11:53,110 --> 00:11:56,360 Hau CS50 Shuttle zen. 197 00:11:56,360 --> 00:11:59,230 >> Nik beharrik ez, izan da plazer bat horiekin batera egiten duzu 198 00:11:59,230 --> 00:12:00,400 ekoizpen taldeak. 199 00:12:00,400 --> 00:12:04,330 Eta duzula espero dut gozatzeko, baita. 200 00:12:04,330 --> 00:12:06,040 Nire izena Zamyla da. 201 00:12:06,040 --> 00:12:08,310 Eta hau CS50 zen. 202 00:12:08,310 --> 00:12:16,363