>> 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