ZAMYLA Chan: Yaxşı, burada biz, son p-müəyyən CS50. Olan özünüzü təbrik edirəm bu günə qədər gəlib ilk Salam bəri Worlds və Printing Up Mario Pyramids. Siz keçən həftə veb etdi. Və biz başqa bir edilməsi olacaq Bu həftə, bir sizə imkan verir ki, aldığınız, Harvard kampus ətrafında sürücü CS50 heyəti üzvləri və onları geri gətirilməsi onların yaşayış evləri. İndi, ötən həftə biz PHP işləyib bir server yan dil. Bu p-set üçün, biz təqdim edirik bir olan JavaScript üçün klient dil. Beləliklə də bəzi nəzər salaq üçün təqdim etdiyi distribution kodu Bu p-set üçün. JavaScript qovluq var olacaq JavaScript faylları bir dəstə. Bir olan buildings.js var Harvard ətrafında binaların array onların informasiya ilə kampus və mövqeyi. Houses.js Harvard bir sıra edir yaşayış evləri onların en və uzunluq. Passengers.js bir sıra var sərnişin, CS50 əməkdaşları siz geri gətirilməsi lazımdır ki, onların yaşayış evləri. Bir çox ehtiva Math3D.js, hərəkəti ilə funksiyaları. Siz riyazi minded danışırsınızsa, sonra Mən sizə bir nəzər salamlayıram. Amma anlamaq üçün ehtiyac yoxdur orada hər şey. Shuttle.js ki, ilə məşğul Bu Shuttle hərəkət. Və index.html ana səhifə olduğu hər şey, həqiqətən, baş harada istifadəçi saytın ilə əlaqə edir. Service.css CSS stil, olan Twitter əlavə Bootstrap Kitabxana, nəzarət necə index.html görünür. Və sonra biz də service.js var, üçün xidmət funksiyaları ehtiva edir Shuttle. Və burada olacaq harada to-do nin bəzi doldurulması. İndi obyektlərin nəzər edək və JavaScript assosiativ diziler, olan bütün niyyətli və məqsədləri üçün, birini əvəz edir. Mən obyekt dəyişən etmək istəyirdi Mən, bir çubuq olardı adlı bəyan edir. Və bu qıvrım aşırma daxilində, mən edərdim daxil, əsas, ağac unicorn edir albalı və uzunluğu 13. İndi də dəyərlər əldə edə bilərsiniz istifadə obyektlərin assosiativ array notation. Belə ki, çubuq index core, mən bilərsiniz ki, unicorn bərabər və ya Mən lazımdır ki, kontrol edin. Yoxsa mən dot operator istifadə edə bilərsiniz wand.wood albalı bərabərdir, və belə və s. Siz görəcəksiniz ki, assosiativ seriallarda və JavaScript obyektlərin olacaq əvəz, və iradə olduqca lazımlı gəlir. Sonra binaların bir sıra bax buildings.js da, yenidən, obyektlərin bir sıra. Mən yaxşı bir sıra etmək istəyirdi sonra Harvard şəhərciyində binalar, Aşağıdakı kimi mən bunu etmək olardı. Bu obyekt notation istifadə edərək, harada Mən kök, adı, ünvanı saxlamaq, hər enlem, və boylam bir ev object. Tez dəyişənlər haqqında danışaq JavaScript. PHP, JavaScript dəyişənlər kimi zəif və ya loosely çap olunub. Yerli dəyişən yaratmaq üçün, prefiks V-A-R, var olan dəyişən adı. İndi, JavaScript, funksiyaları olacaq dəyişənlərin məhdudlaşdırır. Beləliklə, siz ərzində bir yerli dəyişən varsa bir funksiyası, sonra digər funksiyaları gedə bilməz. Lakin C fərqli olaraq, loops və şərait yoxdur dəyişən məhdudlaşdırır. Bir daxilində bəyan Belə ki, hətta əgər vəziyyəti, bütün funksiyası olacaq bu çıxışı var. İndi var olmadan, dəyişən qlobal olacaq. Yalnız adını elan və əgər bir dəyər təyin, sonra dəyişən qlobal dəyişən olacaq JavaScript. İndi, evlərdə, biz assosiativ var host tipli obyektlərin, array burada hər evin bir Enlem edir və boylam. Sonra sərnişin var bir sıra olan array, obyekt növü sərnişin. Belə ki, hər bir sərnişin bir istifadəçi var , adı, və ev adı. Mən növü dedi alıram edək ki həqiqətən, yalnız deməkdir sərnişin, hər obyekt var ki, eyni əsas dəyər cüt. Belə ki, növü sərnişin hər obyekt var bir istifadəçi adı, adı, və ev. Belə ki, nə biz lazımdır p-set üçün nə? Yaxşı, biz istifadəçilər seçin imkan lazımdır heyət üzvləri up, bütün keçirmək üçün Hal-hazırda olan əməkdaşları Bizim servis, və onlara yuxulamaq. Və sonra biz də əlavə haqqında danışmaq lazımdır üçün həyata keçirilə bilər ki, xüsusiyyətləri Shuttle p-set. Amma ilk alma haqqında danışmaq edək. CS50 heyəti üzləri olmuşdur bütün kampus üzərində əkilmiş hər üz bir yer işarəsi kimi həyata keçirilir 3D Earth, və kimi 2D xəritədə marker. Istifadəçi Pikap klik Belə ki, düyməsini, biz yaxın əlavə etmək istəyirəm servis sərnişinlərin. Və biz də onların aradan qaldırılması istəyirəm dünyanın qeyd və aradan qaldırılması onların Xəritədə marker olduğunu ifadə edən onlar indi bizim servis istəyirik. Belə ki, necə biz aşkar əgər sərnişinlər Bizim servis daxilində var? Yaxşı, funksiyası məsafə, belə ki, shuttle.distance, bu keçən enlem ve boylam, hesaplar cari vəziyyəti olan məsafə nöqtəsinə servis ki, ki, verilmiş müəyyən enlem ve boylam. Beləliklə, siz hesablanması üçün bu istifadə edə bilərsiniz Bu üçün servis məsafə sərnişin. Amma necə bilirsiniz harada sərnişinlərin var? Biz lazımdır yaxşı ki, Bu yaşayır funksiyası redaktə. Yerlərdə heyət üzvləri bütün yaşayır dünyaya sərnişin və xəritə daxil, lakin deyil onların yeri saxlamayın. Belə ki, bəlkə siz saxlaya bilərsiniz onların nişanları və markerlər yerləşdirmək bəzi qlobal array. İndi, artıq qlobal array var sərnişin məlumat saxlanılması. Sərnişinlər array mağazalar hər sərnişin adı və onların ev. Belə ki, bəlkə bir neçə parametrləri əlavə edə bilərsiniz orada sərnişin obyektlərin. Us sərnişinlərin bütün aşkar kömək etmək üçün bizim dairəsində Bu bütün vasitəsilə servis, edək loop sərnişinlər array sərnişin. JavaScript A üçün loop ola bilər çox oxşar bu kimi bir şey, C. loops üçün bu və ya biz bir istifadə edə bilərsiniz üçün, loop strukturu üçün alternativ array var i, i hələ olacaq indeksi, ancaq ehtiyac yoxdur Bu array.length daxil vəziyyəti və i + +. Hər sərnişin yer onların yer nişanı verilir. Amma yer mark deyil enlem ve boylam. Biz həmin parametrləri daxil olmaq üçün GET istifadə edərək, həndəsə əldə sonra yer işarəsi həndəsə, və biz əldə, həndəsə bir dəfə Enlem və ya boylam ya bu funksiyaları istifadə. Belə ki, indi biz olmadığını aşkar etmək üçün necə sərnişin ərzində Bizim servis üçündür. Biz həmin sərnişin var, biz will ki, bir sərnişin əlavə etmək istəyirəm ki, daxilində. Biz onları hop və almaq üçün imkan istəyirəm bizim servis oturacaq, ancaq biz onlara kifayət qədər otaq var. The shuttle.seats array göstərir oturacaqlar boş olub, və ya edən oturacaq var. Belə ki, bir oturacaq boş, sonra əgər ki, oturacaq null olacaq. Belə ki, salon serialın üzərində təkrarlamaq, saxlanılması, yerlər üçün yoxlanılması sizin qədər o Oturacaqların daxil sərnişinlər bir daha boş oturacaqlar yoxdur. Və təəssüf ki, hər hansı digər sərnişinlər üçün gözləməli olacaq növbəti dəfə servis aşağı gəlir. Onlar servis almaq, biz lazımdır onların yer nişanı aradan qaldırılması üçün 3D dünyada öz foto edir. Mən bir yer mark p çıxarmaq istədim əgər sonra mən bütün özellikleri almaq olardı Mənim Earth, Google Earth, və sonra xüsusi səhnəsində aradan qaldırılması Bu removeChild funksiyası istifadə qeyd. Sonra nəhayət, ən marker aradan qaldırılması bildirin hər hansı 2D xəritədə icon, biz aldığınız ki, sərnişin. Bir marker m aradan qaldırılması üçün, sonra mən yalnız m.setMap null icra. Daxilində bir sərnişin üçün bunu, və alma başa etdik. Bu chart funksiyası bütün göstərmək lazımdır olan sərnişinlərin sizin servis, və boş oturacaq boş əgər. Belə ki, chart üzərində təkrarlamaq lazımdır shuttle.seats, bu tapılanlar hər indeksi üçün sərnişin məlumat, və boş oturacaq ki, index null əgər. İndi HTML mətn daxilində qoymaq əgər JavaScript dəyişən, daha sonra istifadə edərək, document.getElementById, chart bilər verilir ki, daxili HTML redaktə təyin edərək element Bu HTML mətn document.getElementById daxili HTML dəyişən. Istifadəçilər Drop Off düyməsini basın zaman index.html, bu zəng edəcəyik düşüş funksiyası. Və bu həyata keçirmək üçün bizim iş var. Minməsi, biz hər hansı bir çıxarmaq lazımdır servis sərnişinlər yalnız biz onların təyinat intervalında olduğunuzda, onların yaşayış evi. Belə ki, düşüş olmadığını yoxlamaq olacaq Bu servis hər hansı bir sıra edir evləri, və hər hansı bir ehtiyac aradan qaldırılması servis sərnişinlər. Biz əgər Belə ki, necə biz yoxlamaq yoxdur bir evlərin intervalında? Bəli, yenə də, biz istifadə etmək lazımdır keçən funksiyası shuttle.distance baxımından enlem ve boylam biz qarşı yoxlanılması etdiyiniz. Lakin həmin xal nə var? Yaxşı, evlərin array Yadınızdadırsa, əgər houses.js ildə sakladığı hər evin enlem ve boylam assosiativ array, hər index ki, evin adı. Sonra sərnişin aradan qaldırılması - yaxşı, biz intervalında olduğunuzda yalnız onların onlar getmək istəyirəm ki, ev. Belə ki, yenə, unutmayın ki, sərnişinlər ev mağazalar hər sərnişin getmək istəyir. Onlar əhatə dairəsində olduqda onların ev, sonra biz aradan qaldırılması lazımdır shuttle.seats və set sərnişin null serialın öz mövqeyi. İndi bəzi əlavə xüsusiyyətləri haqqında danışaq ki, həyata keçirilə bilər CS50 Shuttle p-set. Bir point sistemi var qovuşdurmağımız Siz takip neçə bir istifadəçi var göstərir. Sərnişin off düşmə üçün uğurla, onlar xal əldə edə bilərsiniz. Amma sərnişin yuxulamaq üçün çalışırıq üçün hər hansı bir ev yaxın yoxdur, yaxşı, onlar üçün cərimə bilərsiniz. Belə ki, bəlkə track saxlamaq istədiyiniz qlobal dəyişən bal. Siz bəlkə bir Taymer, həyata edə bilərsiniz istifadəçi müəyyən bir malikdir up seçin və off düşmək üçün vaxt sərnişin sayı müəyyən. Bəlkə hətta bu inteqrasiya point sistemi ilə. Yoxsa, belə ki Chart redaktə edə bilərsiniz sərnişin ev ilə sıralanır. Belə ki, yəqin ki, bir növ olardı shuttle.seats fəaliyyət göstərir. Siz uçan xüsusiyyət həyata keçirə bilər, olduğu istifadəçi Konami giriş əgər kodu, sonra servis off yüksəldir torpaq və servis uçmaq bilər. Amma off təhlükəsiz açılan üçün, ən yaxşı etmək üçün Bu servis onun təkərlər torpaq ilk yer. Siz həmçinin teleportation həyata keçirə bilər, Siz siyahısı aşağı açılan etmək harada index.html binalar. Və o biri, seçilməsi istifadəçi nəql olunacaq kampus bina. OK, baxmayaraq ki, ilə səyahət bəzi divarları orada yol binalar. Siz həmçinin sürəti dəyişə bilərsiniz servis, istifadəçi artırmaq üçün imkan və ya sürəti azaltmaq. Yəqin ki, bir qlobal dəyişən istəyirəm nə qədər yanacaq takip servis azalır var siz boyunca getmək kimi. Siz sıfır hit sonra, baxmayaraq ki, servis Siz var halda hərəkət edə bilməyəcək bəlkə bir 'düyməsinə istifadə edərək, və ya, refueled hətta öz qaz stansiyası olun. Amma əlbəttə deyil tam siyahısı. Tam Spec edin siyahısı, və ya bəlkə təklif sizin TF öz. Göy həddi deyil. Bu son CS50 p-set edir, belə ki, bu əyləncə var. Bu CS50 Shuttle idi. Mən demək var, bu bir zövq oldu ilə sizin üçün bu edilməsi istehsal komanda. Və mən var ümid edirəm ki, eləcə də, onlara zövq. My name Zamyla edir. Bu CS50 idi.