>> [MUSIC PLAYING]
>> SPEAKER 1: Nah, di sini kita, P set terakhir dalam CS50.
Ucapkan selamat diri dari memiliki datang dari jauh sejak halo pertama Anda
dunia dan mencetak piramida untuk Mario.
Anda membuat sebuah website pekan lalu.
Dan kita akan membuat satu sama lain minggu ini, salah satu yang memungkinkan Anda untuk
berkeliling kampus Harvard, memilih up anggota staf CS50, dan
membawa mereka kembali ke mereka rumah tinggal.
>> Sekarang minggu lalu kami bekerja di PHP, bahasa sisi server.
Untuk P set ini, kita mendapatkan diperkenalkan untuk JavaScript, yang merupakan
bahasa sisi client.
Jadi mari kita lihat beberapa kode distribusi yang diberikan kepada
Anda untuk P set ini.
>> Dalam folder JavaScript, akan ada menjadi sekelompok file JavaScript.
Ada buildings.js, yang berisi array bangunan di sekitar Harvard
kampus, dengan informasi mereka dan posisi.
Houses.js adalah array dari Harvard rumah tinggal, dengan mereka
lintang dan bujur.
Passengers.js berisi array penumpang -
anggota staf CS50 -
bahwa Anda akan membawa kembali ke rumah tinggal mereka.
>> Math3D.js, yang berisi banyak fungsi yang harus dilakukan dengan gerakan.
Jika Anda berpikiran matematis, maka saya menyambut anda melihat.
Tapi Anda tidak perlu memahami segala sesuatu di sana.
Shuttle.js, yang berhubungan dengan gerakan pesawat itu.
Dan index.html adalah halaman rumah di mana segala sesuatu terjadi, benar-benar, di mana
pengguna berinteraksi dengan situs.
>> Service.css adalah style sheet CSS, yang, di samping Twitter
Bootstrap perpustakaan, kontrol bagaimana index.html terlihat.
Dan kemudian kami juga memiliki service.js, yang berisi fungsi layanan untuk
pesawat ulang-alik.
Dan inilah di mana Anda akan menjadi mengisi beberapa untuk dos.
>> Sekarang mari kita lihat benda-benda dan array asosiatif di JavaScript,
yang untuk semua maksud dan tujuan yang dipertukarkan.
Jika saya ingin membuat sebuah objek variabel disebut tongkat sihir, saya akan
mendeklarasikan.
Dan di dalam kurung kurawal tersebut saya akan menentukan inti adalah unicorn.
Kayu adalah ceri.
Dan panjangnya 13.
>> Sekarang saya juga dapat mengakses nilai-nilai obyek menggunakan
notasi array asosiatif.
Inti indeks Jadi tongkat, saya dapat mengatur yang sama dengan unicorn, atau
memeriksa bahwa, jika saya perlu.
Atau aku bisa menggunakan operator dot.
Wand dot kayu sama cherry, dan sebagainya, dan sebagainya.
Jadi, Anda melihat bahwa array asosiatif dan objek dalam JavaScript akan menjadi
dipertukarkan, dan akan datang sangat berguna.
>> Kemudian kita melihat berbagai bangunan di buildings.js.
Sekali lagi, array obyek.
Jika saya ingin membuat sebuah array dari yang terbaik bangunan di kampus Harvard, kemudian
Aku akan membuatnya sebagai berikut.
Menggunakan notasi objek ini, di mana Saya menyimpan akar, nama, alamat,
lintang, bujur dan untuk setiap satu objek bangunan.
>> Mari kita cepat berbicara tentang variabel dalam JavaScript.
Seperti PHP, variabel JavaScript yang lemah atau longgar diketik.
Untuk membuat variabel lokal, Anda awalan nama variabel dengan V-A-R, var.
>> Sekarang dalam JavaScript, fungsi akan membatasi ruang lingkup variabel.
Jadi jika Anda memiliki sebuah variabel lokal dalam fungsi, maka fungsi lainnya
tidak bisa mengaksesnya.
Tapi tidak seperti C, loop dan kondisi tidak membatasi ruang lingkup variabel.
>> Jadi bahkan jika Anda menyatakan hal itu dalam sebuah kondisi, seluruh fungsi akan
memiliki akses ke sana.
Sekarang tanpa var, variabel akan global.
Jadi, jika Anda hanya menyatakan nama dan menetapkan nilai, maka variabel yang
akan menjadi variabel global dalam JavaScript.
>> Sekarang di rumah-rumah, kita memiliki asosiatif array objek tipe rumah, di mana
setiap rumah hanya garis lintang dan bujur a.
Kemudian kita memiliki penumpang array, yang merupakan array
jenis objek penumpang.
Jadi setiap penumpang memiliki nama pengguna, nama, dan rumah.
Perhatikan bahwa saya melihat jenis penumpang, yang benar-benar hanya berarti
bahwa setiap benda memiliki sepasang kunci nilai yang sama.
Jadi setiap objek dari tipe penumpang memiliki nama pengguna, nama, dan rumah.
>> Jadi apa yang kita butuhkan untuk lakukan untuk P set?
Nah, kita perlu untuk memungkinkan pengguna untuk memilih up anggota staf, untuk menampilkan semua
anggota staf yang sedang dalam pesawat kami, dan untuk menjatuhkan mereka.
Dan kemudian kami juga akan berbicara tentang ekstra fitur yang dapat diterapkan untuk
shuttle P set.
>> Tapi mari kita bicara tentang pickup pertama.
Wajah-wajah staf CS50 telah ditanam di seluruh kampus, di mana masing-masing
wajah diimplementasikan sebagai tanda tempat di bumi 3D, dan sebagai
penanda di peta 2D.
Jadi ketika pengguna mengklik pickup tombol, kita ingin menambahkan sekitar
penumpang untuk pesawat ulang-alik.
Dan kami juga ingin menghapus tempat mereka menandai dari dunia, dan menghapus mereka
penanda dari peta, menunjukkan bahwa mereka berada di pesawat kami sekarang.
>> Jadi bagaimana kita mendeteksi jika penumpang berada dalam jangkauan pesawat kami?
Nah, jarak fungsi -
sehingga shuttle dot jarak, lewat di garis lintang dan bujur, akan
menghitung jarak dari saat ini posisi antar-jemput ke
titik yang Anda tentukan dengan diberikan lintang dan bujur.
Jadi, Anda dapat menggunakan ini untuk menghitung jarak dari pesawat ulang-alik ke
penumpang.
>> Tapi bagaimana Anda tahu di mana para penumpang?
Nah, di situlah kita harus mengedit fungsi populate.
Mengisi tempat semua anggota staf dan penumpang ke dunia,
dan ke dalam peta, tetapi tidak menyimpan lokasi mereka.
Jadi mungkin Anda dapat menyimpan mereka menempatkan tanda dan spidol
dalam beberapa array yang global.
>> Sekarang sudah ada adalah array global menyimpan informasi dari penumpang.
Toko penumpang Array masing-masing nama penumpang dan rumah mereka.
Jadi mungkin Anda dapat menambahkan beberapa parameter ada ke objek penumpang.
>> Untuk membantu kita mendeteksi semua penumpang dalam jangkauan pesawat kami, mari kita
loop melalui semua penumpang di penumpang array.
A untuk loop dalam JavaScript mungkin terlihat sesuatu seperti ini, sangat mirip dengan
mereka untuk loop di C. Atau kita bisa menggunakan alternatif untuk struktur loop.
>> Untuk var i di array, di mana saya masih akan indeks.
Tapi Anda tidak perlu menentukan panjang array dot
kondisi, dan saya plus plus.
Lokasi setiap penumpang adalah diberikan oleh tempat tanda mereka.
>> Tapi tempat mark tidak lintang dan bujur.
Kita harus mengakses parameter dengan mendapatkan geometri, menggunakan get
geometri pada tempat yang ditandai.
Dan kemudian setelah kita memiliki geometri, mendapatkan baik lintang atau
bujur, menggunakan fungsi-fungsi.
>> Jadi sekarang kita tahu bagaimana untuk mendeteksi apakah penumpang berada dalam
berbagai pesawat kami.
Setelah kita memiliki orang-orang penumpang, kita akan ingin menambahkan penumpang yang
dalam kisaran tersebut.
Kami ingin memungkinkan mereka untuk naik, dan duduk di pesawat kami, tetapi hanya
jika kita memiliki cukup ruang untuk mereka.
>> Pesawat ulang-alik dot kursi array yang akan menunjukkan apakah kursi kosong, atau
siapa di kursi itu.
Jadi, jika kursi kosong, maka kursi yang akan null.
Jadi iterate atas kursi array, memeriksa kursi kosong, menyimpan
penumpang ke kursi tersebut sampai Anda tidak memiliki kursi lebih kosong.
Dan sayangnya, setiap penumpang lain akan harus menunggu untuk
kali pesawat datang sekitar.
>> Setelah mereka mendapatkan pada pesawat ulang-alik, kita akan ingin untuk menghapus tanda tempat mereka, yang
adalah foto mereka di dunia 3D.
Jika saya ingin menghapus tempat mark p, maka saya akan mendapatkan semua fitur
dari bumi saya, dari Google Earth, dan kemudian menghapus tempat tertentu
menandai menggunakan fungsi removeChild.
Kemudian yang terakhir, mari kita menghapus penanda, ikon pada peta 2D untuk setiap
penumpang bahwa kita mengambil.
Untuk menghapus penanda, m, maka aku akan hanya menjalankan m dot setMap null.
Lakukan ini untuk setiap penumpang dalam jangkauan, dan Anda selesai pickup.