[เล่นดนตรี] ลำโพง 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 ทำเช่นนี้สำหรับผู้โดยสารที่ใด ๆ ภายในช่วง และคุณได้เสร็จสิ้นการรถกระบะ