>> [เล่นดนตรี]
>> ลำโพง 1: ดีที่นี่เรามี P ชุดสุดท้ายใน CS50
ขอแสดงความยินดีด้วยตัวเองจากที่มี มาเพื่อให้ห่างไกลตั้งแต่ทักทายครั้งแรกของคุณ
โลกและการพิมพ์ออกมา ปิรามิดมาริโอ
คุณทำเว็บไซต์เมื่อสัปดาห์ที่แล้ว
และเรากำลังจะทำให้อีกคนหนึ่ง ในสัปดาห์นี้อย่างใดอย่างหนึ่งที่ช่วยให้คุณ
ขับรอบมหาวิทยาลัยฮาร์วาร์หยิบ ขึ้น CS50 พนักงานและ
นำพวกเขากลับไปยังพวกเขา บ้านที่อยู่อาศัย
>> ตอนนี้เมื่อสัปดาห์ที่แล้วเราทำงานใน PHP ภาษาด้านเซิร์ฟเวอร์
สำหรับการตั้งค่า P ​​นี้เรากำลังได้รับการแนะนำให้รู้จักกับ กับ JavaScript ซึ่งเป็น
ภาษาฝั่งไคลเอ็นต์
ดังนั้นลองมาดูที่บางส่วนของ รหัสการจัดจำหน่ายที่ให้ไว้กับ
คุณสำหรับการตั้งค่า P ​​นี้
>> ในโฟลเดอร์จาวาสคริปต์จะมี เป็นพวงของไฟล์จาวาสคริปต์
มี buildings.js ที่มีเป็น อาเรย์ของอาคารรอบฮาร์วาร์
มหาวิทยาลัยมีข้อมูลของพวกเขา และตำแหน่ง
Houses.js เป็น array ของฮาร์วาร์ บ้านที่อยู่อาศัยของพวกเขาด้วย
ละติจูดและลองจิจูด
Passengers.js มี อาร์เรย์ของผู้โดยสาร -
CS50 พนักงาน -
ที่คุณจะนำกลับไปที่ บ้านที่อยู่อาศัยของพวกเขา
>> Math3D.js ที่มีจำนวนมาก ฟังก์ชั่นจะทำอย่างไรกับการเคลื่อนไหว
หากคุณมีใจรักทางคณิตศาสตร์ แล้วผมยินดีต้อนรับคุณดู
แต่คุณไม่จำเป็นต้องเข้าใจ ทุกอย่างอยู่ในนั้น
Shuttle.js ที่เกี่ยวข้องกับ การเคลื่อนไหวของรถรับส่ง
และ index.html เป็นหน้าแรกที่ ทุกอย่างเกิดขึ้นจริงๆที่
ผู้ใช้โต้ตอบกับเว็บไซต์
>> Service.css เป็นแผ่นลักษณะ CSS, ซึ่งนอกเหนือไปจากทวิตเตอร์
ห้องสมุดบูต, การควบคุม วิธีดู index.html
แล้วเรายังมี service.js ซึ่ง มีฟังก์ชั่นการให้บริการสำหรับ
รถรับส่ง
และที่นี่เป็นที่ที่คุณกำลังจะเป็น กรอกในบางส่วนของการดอส
>> ตอนนี้ขอใช้เวลาดูวัตถุและ arrays สมาคมใน JavaScript,
ซึ่ง intents และวัตถุประสงค์ สามารถใช้แทนกัน
ถ้าผมอยากจะทำให้วัตถุตัวแปร เรียกว่าไม้กายสิทธิ์ที่ฉันจะ
ประกาศว่า
และภายในวงเล็บปีกกาที่ฉันจะ ระบุหลักคือยูนิคอร์น
ไม้เชอร์รี่
และระยะเวลา 13
>> ตอนนี้ฉันยังสามารถเข้าถึงค่า ของวัตถุที่ใช้
สัญกรณ์อาเรย์
ดัชนีหลักดังนั้นที่ดินที่ฉันสามารถตั้งค่า ที่เท่ากับยูนิคอร์นหรือ
ตรวจสอบว่าถ้าผมต้องการ
หรือฉันสามารถใช้ประกอบจุด
ไม้ไม้กายสิทธิ์จุดเท่ากับเชอร์รี่ และอื่น ๆ และอื่น ๆ
ดังนั้นคุณจะเห็นว่า arrays สมาคมและ วัตถุใน JavaScript เป็นไปได้
แทนกันและจะ เข้ามามีประโยชน์มาก
>> จากนั้นเราจะเห็นอาเรย์ของอาคาร ใน buildings.js
อีกครั้งอาร์เรย์ของว​​ัตถุ
ถ้าผมอยากจะให้อาเรย์ของที่ดีที่สุด อาคารในมหาวิทยาลัยฮาร์วาร์แล้ว
ฉันจะทำให้มันดังต่อไปนี้
นี้โดยใช้สัญกรณ์วัตถุที่ ฉันเก็บรากชื่อที่อยู่
ละติจูดและลองจิจูดสำหรับทุก วัตถุอาคารเดียว
>> Let 's รวดเร็วพูดคุยเกี่ยวกับตัวแปร ใน JavaScript
เช่น PHP, JavaScript ตัวแปร กำลังอ่อนแรงหรือหลวมพิมพ์
เพื่อสร้างตัวแปรท้องถิ่นคุณคำนำหน้า ชื่อตัวแปรที่มี V--R, var
>> ตอนนี้ใน JavaScript, ฟังก์ชั่นจะ จำกัด ขอบเขตของตัวแปร
ดังนั้นหากคุณมีตัวแปรท้องถิ่นภายใน ฟังก์ชั่นการทำงานอื่น ๆ แล้ว
ไม่สามารถเข้าถึงได้
แต่แตกต่างจากซีลูปและเงื่อนไขที่ทำไม่ได้ จำกัด ขอบเขตของตัวแปร
>> ดังนั้นแม้ว่าคุณจะประกาศภายใน สภาพการทำงานทั้งหมดจะ
สามารถเข้าถึงได้
ตอนนี้ได้โดยไม่ต้อง var ตัวแปร จะเป็นระดับโลก
ดังนั้นหากคุณเพียงแค่ประกาศชื่อและ กำหนดค่าแล้วตัวแปรที่
จะเป็นตัวแปรทั่วโลก ใน JavaScript
>> ขณะนี้ในบ้านเรามีการเชื่อมโยง อาร์เรย์ของว​​ัตถุประเภทบ้านที่
บ้านทุกหลังเป็นเพียงละติจูด และลองจิจูด
แล้วเรามีผู้โดยสาร อาเรย์ซึ่งเป็นอาร์เรย์
ประเภทวัตถุผู้โดยสาร
ดังนั้นผู้โดยสารทุกคนมีชื่อผู้ใช้ ชื่อและที่บ้าน
ขอให้สังเกตว่าฉันเห็นของ ผู้โดยสารซึ่งจริงๆก็หมายความว่า
ว่าวัตถุทุกคนมี คู่ค่าคีย์เดียวกัน
ดังนั้นวัตถุประเภทผู้โดยสารทุกคนมี ชื่อผู้ใช้ชื่อและที่บ้าน
>> ดังนั้นเราจึงทำในสิ่งที่จำเป็นต้อง ทำสำหรับการตั้งค่า P?
ดีที่เราจำเป็นต้องให้ผู้ใช้สามารถเลือก ขึ้นทีมงานที่จะแสดงทั้งหมด
สมาชิกในทีมงานที่มีอยู่ในปัจจุบัน รถรับส่งของเราและเพื่อวางพวกเขาออก
แล้วเรายังจะพูดคุยเกี่ยวกับการพิเศษ คุณสมบัติที่สามารถจะนำมาใช้เพื่อ
รถรับส่ง P ชุด
>> แต่ขอพูดคุยเกี่ยวกับรถกระบะครั้งแรก
ใบหน้าของพนักงาน CS50 ได้รับ ปลูกทั่วมหาวิทยาลัยที่แต่ละ
ใบหน้าถูกนำมาใช้เป็นเครื่องหมายสถานที่ บนโลก 3 มิติและเป็น
เครื่องหมายบนแผนที่ 2D
ดังนั้นเมื่อผู้ใช้คลิกที่รถกระบะ ปุ่มที่เราต้องการที่จะเพิ่มในบริเวณใกล้เคียง
บริการรถรับส่งผู้โดยสาร
และเรายังต้องการที่จะเอาสถานที่ของพวกเขา ทำเครื่องหมายจากโลกและลบของพวกเขา
เครื่องหมายจากแผนที่แสดงให้เห็นว่า พวกเขาอยู่ในรถรับส่งของเราตอนนี้
>> ดังนั้นทำอย่างไรเราตรวจสอบว่าผู้โดยสาร อยู่ในช่วงของการรับส่งของเราหรือไม่
ดีระยะทางฟังก์ชั่น -
เพื่อให้รถร​​ับส่งจุดระยะทางผ่านใน ละติจูดและลองจิจูดจะ
คำนวณระยะทางจากปัจจุบัน ตำแหน่งของรถรับส่งไป
จุดที่คุณระบุกับที่ ให้เส้นรุ้งและเส้นแวง
เพื่อให้คุณสามารถใช้ในการคำนวณ ระยะห่างจากรถรับส่งไปยัง
ผู้โดยสาร
>> แต่คุณจะรู้ว่า ผู้โดยสารมีอะไรบ้าง
ดีที่ที่เราจะต้อง แก้ไขฟังก์ชั่นเติม
เติมทุกสถานที่ของพนักงาน และผู้โดยสารเข้ามาในโลก
และลงในแผนที่ แต่ไม่ได้ เก็บตำแหน่งของพวกเขา
ดังนั้นบางทีคุณสามารถจัดเก็บของพวกเขา วางเครื่องหมายและเครื่องหมาย
ในบางแถวของโลก
>> ขณะนี้มีอยู่แล้วมากมายทั่วโลก การจัดเก็บข้อมูลจากผู้โดยสาร
ร้านค้าแถวผู้โดยสารแต่ละ ชื่อของผู้โดยสารและบ้านของพวกเขา
ดังนั้นบางทีคุณอาจจะสามารถเพิ่มพารามิเตอร์ไม่กี่ มีวัตถุผู้โดยสาร
>> เพื่อช่วยให้เราตรวจสอบผู้โดยสารทุกคน อยู่ในช่วงของรถรับส่งของเราให้
ห่วงผ่านทั้งหมดของผู้โดยสาร ในอาร์เรย์ผู้โดยสาร
ห่วงสำหรับใน JavaScript อาจมีลักษณะ บางสิ่งบางอย่างเช่นนี้คล้ายกันมากกับ
เหล่านั้นสำหรับวงใน C. หรือเราสามารถใช้ ทางเลือกสำหรับโครงสร้างห่วง
>> สำหรับ i var ในอาร์เรย์ที่ฉัน จะยังคงเป็นดัชนี
แต่คุณไม่จำเป็นต้องระบุ ความยาวจุดอาร์เรย์
เงื่อนไขและฉันบวกบวก
สถานผู้โดยสารทุกคนเป็น กำหนดโดยเครื่องหมายสถานที่
>> แต่เครื่องหมายสถานที่ที่ไม่ได้เป็น เส้นรุ้งและเส้นแวง
เรามีการเข้าถึงพารามิเตอร์เหล่านั้นด้วย รับรูปทรงเรขาคณิตที่ใช้รับ
เรขาคณิตเครื่องหมายสถานที่
แล้วเมื่อเรามีรูปทรงเรขาคณิตที่ ได้รับการอย่างใดอย่างหนึ่งหรือละติจูด
ลองจิจูดโดยใช้ฟังก์ชั่นเหล่านั้น
>> ดังนั้นตอนนี้เรารู้วิธีการตรวจสอบว่า ผู้โดยสารที่อยู่ภายใน
ช่วงของรถรับส่งของเรา
เมื่อเรามีผู้โดยสารที่เราจะ ต้องการเพิ่มผู้โดยสารที่เป็น
ในช่วงที่
เราต้องการที่จะช่วยให้พวกเขาที่จะกระโดดขึ้นและ นั่งบนรถรับส่งของเรา แต่เพียง
ถ้าเรามีที่ว่างพอสำหรับพวกเขา
>> แถวที่นั่งจุดรถรับส่งจะ ระบุว่าที่นั่งว่างเปล่าหรือ
คนที่อยู่ในที่นั่งที่
ดังนั้นถ้าที่นั่งว่างแล้ว ที่นั่งที่จะเป็นโมฆะ
ดังนั้นย้ำกว่าแถวที่นั่ง ตรวจสอบที่นั่งว่างจัดเก็บ
ผู้โดยสารในที่นั่งผู้ที่จนกว่าคุณจะ ไม่ได้มีที่นั่งว่างอีกต่อไป
และโชคไม่ดีที่ผู้โดยสารคนอื่น ๆ จะต้องรอให้
ครั้งต่อไปที่รถรับส่งมาถึงรอบ
>> เมื่อพวกเขาได้รับในรถรับส่งที่เราจะต้องการ เพื่อลบเครื่องหมายสถานที่ของพวกเขาซึ่ง
เป็นภาพของพวกเขาในโลก 3 มิติ
ถ้าผมต้องการที่จะลบเครื่องหมายสถานที่, p แล้วฉันจะได้รับทั้งหมดของคุณสมบัติ
จากโลกของฉันจาก Google Earth, แล้วเอาสถานที่เฉพาะที่
ทำเครื่องหมายโดยใช้ฟังก์ชั่น removeChild
แล้วสุดท้ายให้ลบเครื่องหมายที่ ไอคอนบนแผนที่ 2D ใด ๆ
ผู้โดยสารว่าเราจะยกขึ้น
ในการลบเครื่องหมายเมตรแล้วฉันจะ เพียงรันเมตรจุด setMap null
ทำเช่นนี้สำหรับผู้โดยสารที่ใด ๆ ภายในช่วง และคุณได้เสร็จสิ้นการรถกระบะ