ZAMYLA จัน: ดีที่นี่เรามี สุดท้าย-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 ตอนนี้ฉันยังสามารถเข้าถึงค่า ของวัตถุที่ใช้ สัญกรณ์อาเรย์ ดัชนีหลักดังนั้นที่ดินฉันสามารถตั้งค่า ที่เท่ากับยูนิคอร์นหรือ ตรวจสอบว่าถ้าผมต้องการ หรือฉันสามารถใช้ประกอบจุด wand.wood เท่ากับเชอร์รี่และ อื่น ๆ และอื่น ๆ ดังนั้นคุณจะเห็นว่า arrays สมาคมและ วัตถุใน JavaScript เป็นไปได้ แทนกันและจะ เข้ามามีประโยชน์มาก จากนั้นเราจะเห็นอาเรย์ของอาคาร ใน buildings.js, อีกครั้งอาร์เรย์ของว​​ัตถุ ถ้าผมอยากจะให้อาเรย์ของที่ดีที่สุด อาคารในมหาวิทยาลัยฮาร์วาร์แล้ว ฉันจะทำให้มันดังต่อไปนี้ นี้โดยใช้สัญกรณ์วัตถุที่ ฉันเก็บรากชื่อที่อยู่ ละติจูดและลองจิจูดสำหรับทุก วัตถุอาคารเดียว Let 's รวดเร็วพูดคุยเกี่ยวกับตัวแปร ใน JavaScript เช่น PHP, JavaScript ตัวแปร กำลังอ่อนแรงหรือหลวมพิมพ์ เพื่อสร้างตัวแปรท้องถิ่นคุณคำนำหน้า ชื่อตัวแปรที่มี V--R, var ตอนนี้ใน JavaScript, ฟังก์ชั่นจะ จำกัด ขอบเขตของตัวแปร ดังนั้นหากคุณมีตัวแปรท้องถิ่นภายใน ฟังก์ชั่นการทำงานอื่น ๆ แล้ว ไม่สามารถเข้าถึงได้ แต่แตกต่างจากซีลูปและเงื่อนไขที่ทำไม่ได้ จำกัด ขอบเขตของตัวแปร ดังนั้นแม้ว่าคุณจะประกาศภายใน สภาพการทำงานทั้งหมดจะ สามารถเข้าถึงได้ ตอนนี้ได้โดยไม่ต้อง var ตัวแปร จะเป็นระดับโลก ดังนั้นหากคุณเพียงแค่ประกาศชื่อและ กำหนดค่าแล้วตัวแปรที่ จะเป็นตัวแปรทั่วโลก ใน JavaScript ขณะนี้ในบ้านเรามีการเชื่อมโยง อาร์เรย์ของว​​ัตถุชนิดโฮสต์ที่ บ้านทุกหลังเป็นเพียงละติจูด และลองจิจูด แล้วเรามีผู้โดยสาร อาเรย์ซึ่งเป็นอาร์เรย์ ประเภทวัตถุผู้โดยสาร ดังนั้นผู้โดยสารทุกคนมีผู้ใช้ ชื่อชื่อและบ้าน ขอให้สังเกตว่าที่ฉันพูดประเภท ผู้โดยสารซึ่งจริงๆก็หมายความว่า ว่าวัตถุทุกคนมี เดียวกันคู่ค่าที่สำคัญ ดังนั้นวัตถุประเภทผู้โดยสารทุกคนมี ชื่อผู้ใช้ชื่อและที่บ้าน ดังนั้นเราจึงทำในสิ่งที่จำเป็นต้อง ทำเพื่อ-p ชุด? ดีที่เราจำเป็นต้องให้ผู้ใช้สามารถเลือก ขึ้นทีมงานที่จะแสดงทั้งหมด สมาชิกในทีมงานที่มีอยู่ในปัจจุบัน รถรับส่งของเราและเพื่อวางพวกเขาออก แล้วเรายังจะพูดคุยเกี่ยวกับการพิเศษ คุณสมบัติที่สามารถจะนำมาใช้เพื่อ กระสวย-p ชุด แต่ขอพูดคุยเกี่ยวกับรถกระบะครั้งแรก ใบหน้าของพนักงาน CS50 ได้รับ ปลูกทั่วมหาวิทยาลัยที่แต่ละ ใบหน้าถูกนำมาใช้เป็นเครื่องหมายสถานที่ ในโลก 3 มิติและเป็น เครื่องหมายบนแผนที่ 2D ดังนั้นเมื่อผู้ใช้คลิกที่รถกระบะ ปุ่มที่เราต้องการที่จะเพิ่มในบริเวณใกล้เคียง บริการรถรับส่งผู้โดยสาร และเรายังต้องการที่จะเอาสถานที่ของพวกเขา ทำเครื่องหมายจากโลกและลบของพวกเขา เครื่องหมายจากแผนที่แสดงให้เห็นว่า พวกเขาอยู่ในรถรับส่งของเราตอนนี้ ดังนั้นทำอย่างไรเราตรวจสอบว่าผู้โดยสาร อยู่ในช่วงของการรับส่งของเราหรือไม่ ดีระยะทางฟังก์ชั่นเพื่อให้ shuttle.distance ผ่านใน เส้นรุ้งและเส้นแวงที่จะคำนวณ ระยะทางจากตำแหน่งปัจจุบัน ของรถรับส่งไปยังจุดที่ คุณระบุกับที่ได้รับ เส้นรุ้งและเส้นแวง เพื่อให้คุณสามารถใช้ในการคำนวณ ระยะห่างจากรถรับส่งไปยัง ผู้โดยสาร แต่คุณจะรู้ว่า ผู้โดยสารมีอะไรบ้าง ดีที่ที่เราจะต้อง แก้ไขฟังก์ชั่นเติม เติมทุกสถานที่ของพนักงาน ในผู้โดยสารเข้ามาในโลก และลงในแผนที่ แต่ไม่ได้ เก็บตำแหน่งของพวกเขา ดังนั้นบางทีคุณสามารถจัดเก็บของพวกเขา วางเครื่องหมายและเครื่องหมาย ในบางแถวของโลก ขณะนี้มีอยู่แล้วมากมายทั่วโลก การจัดเก็บข้อมูลจากผู้โดยสาร ร้านค้าแถวผู้โดยสารแต่ละ ชื่อของผู้โดยสารและบ้านของพวกเขา ดังนั้นบางทีคุณอาจจะสามารถเพิ่มพารามิเตอร์ไม่กี่ มีวัตถุผู้โดยสาร เพื่อช่วยให้เราตรวจสอบทั้งหมดของผู้โดยสาร อยู่ในช่วงของเรา รถรับส่งวงปล่อยให้ผ่านทุก ผู้โดยสารในแถวผู้โดยสาร ห่วงสำหรับใน JavaScript อาจมีลักษณะ บางสิ่งบางอย่างเช่นนี้คล้ายกันมากกับ เหล่านั้นสำหรับลูปใน C. หรือเราสามารถใช้ ทางเลือกสำหรับโครงสร้างห่วงสำหรับ i var ในอาร์เรย์ที่ฉันจะยังคงเป็น ดัชนี แต่คุณไม่จำเป็นต้อง ระบุ array.length เงื่อนไขและ i + + สถานผู้โดยสารทุกคนเป็น กำหนดโดยเครื่องหมายสถานที่ แต่เครื่องหมายสถานที่ที่ไม่ได้เป็น เส้นรุ้งและเส้นแวง เรามีการเข้าถึงพารามิเตอร์เหล่านั้นด้วย รับรูปทรงเรขาคณิตที่ใช้รับ เรขาคณิตเครื่องหมายสถานที่และจากนั้น เมื่อเรามีรูปทรงเรขาคณิตที่ได้รับ อย่างใดอย่างหนึ่งหรือเส้นรุ้งเส้นแวง โดยใช้ฟังก์ชั่นเหล่านั้น ดังนั้นตอนนี้เรารู้วิธีการตรวจสอบว่า ผู้โดยสารที่อยู่ภายใน ช่วงของรถรับส่งของเรา เมื่อเรามีผู้โดยสารที่เราจะ ต้องการเพิ่มผู้โดยสารที่เป็น ในช่วงที่ เราต้องการที่จะช่วยให้พวกเขาที่จะกระโดดในและใช้เวลา ที่นั่งบนรถรับส่งของเรา แต่เพียง ถ้าเรามีห้องเพียงพอที่จะให้พวกเขา อาร์เรย์ shuttle.seats จะแสดงให้เห็น ไม่ว่าจะเป็นที่นั่งว่างเปล่าหรือ คนที่อยู่ในที่นั่งที่ ดังนั้นถ้าที่นั่งว่างแล้ว ที่นั่งที่จะเป็นโมฆะ ดังนั้นย้ำกว่าแถวที่นั่ง ตรวจสอบที่นั่งว่างจัดเก็บ ผู้โดยสารในที่นั่งผู้ที่จนกว่าคุณจะ ไม่ได้มีที่นั่งว่างอีกต่อไป และโชคไม่ดีที่ผู้โดยสารคนอื่น ๆ จะต้องรอให้ ครั้งต่อไปที่รถรับส่งลงมา เมื่อพวกเขาได้รับในรถรับส่งที่เราจะต้องการ เพื่อลบเครื่องหมายสถานที่ของพวกเขาซึ่ง เป็นภาพของพวกเขาในโลก 3 มิติ ถ้าผมต้องการที่จะลบเครื่องหมายสถานที่, p แล้วฉันจะได้รับทั้งหมดของคุณสมบัติ จากโลกของฉันจาก Google Earth, แล้วเอาสถานที่เฉพาะที่ ทำเครื่องหมายโดยใช้ฟังก์ชั่น removeChild แล้วสุดท้ายให้ลบเครื่องหมายที่ ไอคอนบนแผนที่ 2D สำหรับใด ผู้โดยสารว่าเราจะยกขึ้น ในการลบเครื่องหมายเมตรแล้วฉันจะ เพียงรัน m.setMap null ทำเช่นนี้สำหรับผู้โดยสารที่ใด ๆ ภายในช่วง และคุณได้เสร็จสิ้นการรถกระบะ ฟังก์ชั่นกราฟจะแสดงทั้งหมด ของผู้โดยสารที่อยู่ในของคุณ รถรับส่งและที่นั่งว่างเปล่าถ้าว่างเปล่า ดังนั้นแผนภูมิควรย้ำกว่า shuttle.seats แสดง ข้อมูลผู้โดยสารสำหรับทุกดัชนี และที่นั่งว่างถ้าดัชนีที่เป็นโมฆะ ตอนนี้ถ้าข้อความ HTML จะถูกนำภายใน ตัวแปร JavaScript แล้วโดยใช้ document.getElementById แผนภูมิสามารถ แก้ไข HTML ด้านในของที่ได้รับ องค์ประกอบโดยการกำหนด ข้อความ HTML เพื่อ document.getElementById ตัวแปร HTML ภายใน เมื่อผู้ใช้คลิกปุ่ม Drop Off ใน index.html ก็จะเรียก ฟังก์ชั่นที่ส่งรถ และมันก็เป็นหน้าที่ของเราที่จะใช้ว่า ในที่ส่งรถเราจะต้องการที่จะลบ ผู้โดยสารจากรถรับส่งเฉพาะในกรณีที่ เรากำลังอยู่ในช่วงของปลายทางของพวกเขา บ้านที่อยู่อาศัยของพวกเขา เพื่อส่งรถจะต้องตรวจสอบว่า รถรับส่งอยู่ในช่วงใด บ้านและลบใด ๆ ที่จำเป็น รถรับส่งผู้โดยสารจาก ดังนั้นเราจะตรวจสอบว่าถ้าเรา อยู่ในช่วงของบ้านใด ดีอีกครั้งเราจะใช้ประโยชน์จาก shuttle.distance ฟังก์ชั่นผ่านใน ละติจูดและลองจิจูดของจุด ที่เรากำลังตรวจสอบกับ แต่สิ่งที่จุดเหล่านั้นมีอะไรบ้าง ดีแถวบ้านถ้าคุณจำ ใน houses.js ร้านค้า เส้นรุ้งและเส้นแวงของบ้านในแต่ละ อาเรย์ที่ทุก ดัชนีเป็นชื่อของบ้านที่ จากนั้นจะเอาผู้โดยสาร - ดี แต่ถ้าเราอยู่ในช่วงของพวกเขา บ้านที่พวกเขาต้องการที่จะไป ดังนั้นอีกครั้งจำได้ว่าผู้โดยสาร เก็บบ้านที่ผู้โดยสารทุกคน อยากจะไป ถ้าพวกเขาอยู่ในช่วงของพวกเขา บ้านแล้วเราจะเอาที่ ผู้โดยสารจาก shuttle.seats และการตั้งค่า ตำแหน่งของพวกเขาในอาร์เรย์เป็นโมฆะ ตอนนี้ขอพูดคุยเกี่ยวกับคุณสมบัติพิเศษบางอย่าง ที่สามารถนำมาใช้ใน CS50 กระสวย-p ชุด มีระบบจุดเป็นอย่างไร คุณสามารถติดตามการหลายวิธี ชี้ให้ผู้ใช้มี สำหรับการวางปิดผู้โดยสาร ประสบความสำเร็จที่พวกเขาจะได้รับคะแนน แต่พยายามที่จะย่อหย่อนผู้โดยสาร ที่ไม่มีบ้านใดที่อยู่ใกล้เคียง ดีที่พวกเขาจะได้รับการลงโทษสำหรับการที่ ดังนั้นบางทีคุณอาจต้องการที่จะติดตาม จุดในตัวแปรทั่วโลก คุณสามารถใช้เวลาอาจจะเป็นที่ ผู้ใช้มีจำนวนหนึ่งของ เวลาที่จะรับและวางปิด จำนวนหนึ่งของผู้โดยสาร แม้อาจจะบูรณาการนี​​้ กับระบบจุด หรือคุณสามารถแก้ไขแผนผังดังกล่าวว่า ผู้โดยสารที่เรียงลำดับตามบ้าน เพื่อที่อาจจะจัดเรียง ฟังก์ชั่นที่จะ shuttle.seats คุณสามารถใช้คุณลักษณะการบิน ซึ่งถ้าผู้ใช้ปัจจัยการผลิตของโคนามิ รหัสแล้วรถรับส่งลิฟท์ออก พื้นดินและรถรับส่งสามารถบินได้ แต่สำหรับการลดลงของความปลอดภัยออกที่ดีที่สุดที่จะทำให้ รถรับส่งที่ดินล้อที่มีต่อ พื้นดินเป็นครั้งแรก นอกจากนี้คุณยังสามารถใช้ teleportation, ที่คุณให้ลดลงรายการลง อาคารใน index.html และเลือกหนึ่งในบรรดา ผู้ใช้จะได้รับการเคลื่อนย้ายไปยัง อาคารในมหาวิทยาลัยที่ ตกลงว่าจะเดินทางผ่าน ผนังบาง อาคารในทางของคุณมี นอกจากนี้คุณยังสามารถเปลี่ยนความเร็วของ รถรับส่งช่วยให้ผู้ใช้ที่จะเพิ่มขึ้น หรือลดความเร็ว บางทีคุณอาจจะต้องการตัวแปรทั่วโลกเพื่อ ติดตามเท่าใดน้ำมันเชื้อเพลิง รถรับส่งมีลดลง ได้ตามที่คุณไปพร้อม เมื่อคุณกดศูนย์แม้ว่ารถรับส่ง จะไม่สามารถที่จะย้ายถ้าคุณไม่ได้ เติมอาจจะใช้ปุ่มหรือ ยังทำให้สถานีบริการน้ำมันของคุณเอง แต่ที่แน่นอนไม่ได้ รายการครบถ้วนสมบูรณ์ ตรวจสอบสเป็คเต็ม รายการหรือบางทีอาจจะนำเสนอ ของคุณเองเพื่อ TF ของคุณ ท้องฟ้าเป็นข้อ จำกัด นี้เป็นครั้งสุดท้ายของคุณ CS50-p ชุด เพื่อให้มีความสุขกับมัน นี่เป็นกระสวย CS50 ผมจะบอกว่ามันเป็นความสุข ทำให้เหล่านี้ให้คุณด้วย ทีมงานฝ่ายผลิต และผมหวังว่าคุณได้ สนุกกับพวกเขาได้เป็นอย่างดี ชื่อของฉันคือ Zamyla และนี่คือ CS50