[MUSIC CHƠI] SPEAKER 1: Vâng, ở đây chúng tôi, P thiết lập cuối cùng trong CS50. Chúc mừng mình từ việc đi cho đến nay kể từ khi chào đầu tiên của bạn thế giới và in ra kim tự tháp cho Mario. Bạn đã thực hiện một trang web tuần trước. Và chúng ta sẽ được làm cho nhau tuần này, một trong đó cho phép bạn lái xe xung quanh khuôn viên trường Harvard, chọn lên CS50 nhân viên, và đưa chúng trở lại của họ nhà ở. Bây giờ tuần trước chúng tôi đã làm việc trong PHP, một ngôn ngữ phía máy chủ. Cho bộ P này, chúng tôi đang nhận được giới thiệu JavaScript, mà là một ngôn ngữ phía khách hàng. Vì vậy, chúng ta hãy có một cái nhìn tại một số các đang phân phối đó là cung cấp cho bạn đã tập hợp P này. Trong thư mục JavaScript, sẽ có là một loạt các tập tin JavaScript. Có buildings.js, trong đó có một mảng của các tòa nhà xung quanh Harvard khuôn viên trường, với các thông tin của họ và vị trí. Houses.js là một mảng của Harvard nhà ở, với họ vĩ độ và kinh độ. Passengers.js chứa một mảng hành khách - các nhân viên CS50 - rằng bạn sẽ được đưa trở lại nhà ở của mình. Math3D.js, có chứa rất nhiều chức năng để làm với phong trào. Nếu bạn là toán học có đầu óc, sau đó tôi chào đón các bạn có một cái nhìn. Nhưng bạn không cần phải hiểu tất cả mọi thứ trong đó. Shuttle.js, giao dịch với phong trào của tàu con thoi. Và index.html là trang chủ nơi tất cả mọi thứ xảy ra, thực sự, nơi mà các người sử dụng tương tác với trang web. Service.css là CSS, trong đó, ngoài các Twitter Thư viện bootstrap, kiểm soát cách index.html vẻ. Và sau đó chúng tôi cũng có service.js, mà có chức năng dịch vụ cho tàu con thoi. Và đây là nơi mà bạn sẽ được điền vào một số để dos. Bây giờ chúng ta hãy nhìn vào các đối tượng và mảng kết hợp trong JavaScript, mà đối với tất cả ý nghĩa và mục đích là hoán đổi cho nhau. Nếu tôi muốn làm cho một đối tượng một biến được gọi là một cây đũa phép, tôi sẽ khai báo nó. Và bên trong những dấu ngoặc nhọn tôi sẽ xác định cốt lõi là kỳ lân. Gỗ là anh đào. Và chiều dài là 13. Bây giờ tôi cũng có thể truy cập các giá trị của các đối tượng sử dụng kết hợp ký hiệu mảng. Vì vậy, cây đũa phép chỉ số cốt lõi, tôi có thể thiết lập mà bằng lân, hoặc kiểm tra xem, nếu tôi cần. Hoặc tôi có thể sử dụng toán tử dấu chấm. Cây đũa chấm gỗ bằng anh đào, và như vậy, và vv. Vì vậy, bạn thấy rằng các mảng kết hợp và các đối tượng trong JavaScript sẽ được hoán đổi cho nhau, và ý chí đến trong khá tiện dụng. Sau đó, chúng ta thấy một loạt các tòa nhà trong buildings.js. Một lần nữa, một mảng của các đối tượng. Nếu tôi muốn thực hiện một loạt các sản phẩm tốt nhất các tòa nhà trong khuôn viên trường Đại học Harvard, sau đó Tôi sẽ làm cho nó như sau. Sử dụng ký hiệu đối tượng này, nơi Tôi lưu trữ gốc, tên, địa chỉ, vĩ độ, kinh độ và cho mỗi đối tượng xây dựng duy nhất. Hãy nhanh chóng nói về các biến trong JavaScript. Như PHP, biến JavaScript đang yếu hoặc lỏng lẻo. Để tạo ra một biến địa phương, bạn có tiền tố tên biến với V-A-R, var. Bây giờ trong JavaScript, các chức năng sẽ giới hạn phạm vi của các biến. Vì vậy, nếu bạn có một biến địa phương trong một chức năng, sau đó các chức năng khác không thể truy cập nó. Nhưng không giống như C, mạch, điều kiện làm không giới hạn phạm vi của một biến. Vì vậy, ngay cả khi bạn khai báo bên trong một điều kiện, toàn bộ chức năng sẽ có quyền truy cập vào nó. Bây giờ mà không var, biến sẽ được toàn cầu. Vì vậy, nếu bạn chỉ cần khai báo tên và gán một giá trị, sau đó biến sẽ là một biến toàn cầu trong JavaScript. Bây giờ trong ngôi nhà, chúng tôi có một liên kết mảng các đối tượng loại nhà, nơi mỗi nhà chỉ là một vĩ độ và kinh độ. Sau đó chúng ta có hành khách mảng, mà là một mảng các loại đối tượng hành khách. Vì vậy, mỗi hành khách có một tên người dùng, một tên, và một ngôi nhà. Nhận thấy rằng tôi đang nhìn thấy các loại hành khách, mà thực sự chỉ có nghĩa là rằng tất cả các đối tượng có cùng một cặp giá trị quan trọng. Vì vậy, mỗi đối tượng có kiểu hành khách có một tên người dùng, tên, và một ngôi nhà. Vì vậy, những gì chúng ta cần phải làm cho các thiết lập P? Vâng, chúng ta cần phải cho phép người dùng chọn lên nhân viên, để hiển thị tất cả các các nhân viên hiện đang trong đưa đón của chúng tôi, và để thả chúng ra. Và sau đó chúng tôi cũng sẽ nói về thêm tính năng có thể được thực hiện cho P bộ tàu con thoi. Nhưng chúng ta hãy nói về xe bán tải đầu tiên. Khuôn mặt của nhân viên CS50 đã trồng trên tất cả các khuôn viên, trong đó mỗi mặt được thực hiện như một dấu nơi trên trái đất 3D, và như là một đánh dấu trên bản đồ 2D. Vì vậy, khi người dùng nhấp vào xe bán tải nút, chúng ta muốn thêm gần đó hành khách để đưa đón. Và chúng tôi cũng muốn loại bỏ vị trí của mình đánh dấu từ thế giới, và loại bỏ của họ đánh dấu trên bản đồ, chỉ ra rằng họ đang ở trong xe đưa đón của chúng tôi bây giờ. Vì vậy, làm thế nào để chúng ta phát hiện nếu hành khách nằm trong phạm vi của tàu con thoi của chúng tôi? Vâng, khoảng cách chức năng - để đưa đón dot khoảng cách, đi qua trong vĩ độ và kinh độ, sẽ tính toán khoảng cách từ hiện tại vị trí của các tàu con thoi đến chỉ mà bạn chỉ định với cho vĩ độ và kinh độ. Vì vậy, bạn có thể sử dụng để tính toán khoảng cách từ tàu con thoi đến hành khách. Nhưng làm thế nào để bạn biết được nơi các hành khách? Vâng, đó là nơi mà chúng tôi sẽ phải chỉnh sửa các chức năng cư. Cư nơi tất cả các nhân viên và hành khách vào thế giới, và vào bản đồ, nhưng không lưu trữ vị trí của họ. Vì vậy, có lẽ bạn có thể lưu trữ của họ đặt dấu và đánh dấu trong một số mảng toàn cầu. Bây giờ đã có một mảng toàn cầu lưu trữ thông tin từ hành khách. Các cửa hàng loạt hành khách mỗi tên của hành khách và nhà của họ. Như vậy có lẽ bạn có thể thêm một vài thông số có cho các đối tượng hành khách. Để giúp chúng tôi phát hiện tất cả các hành khách trong phạm vi của tàu con thoi của chúng tôi, chúng ta hãy lặp qua tất cả các hành khách trong mảng hành khách. Một vòng lặp trong JavaScript có thể trông một cái gì đó như thế này, rất giống với những vòng lặp trong C. Hoặc chúng ta có thể sử dụng một thay thế cho cấu trúc vòng lặp. Cho var i trong mảng, nơi tôi vẫn sẽ là chỉ số. Nhưng bạn không cần phải xác định sắp xếp điểm ảnh chiều dài điều kiện, và tôi cộng với cộng. Vị trí của mỗi hành khách được đưa ra bởi dấu vị trí của mình. Nhưng đánh dấu vị trí không phải là vĩ độ và kinh độ. Chúng ta phải truy cập vào các thông số bằng cách nhận được hình học, sử dụng được hình học trên đánh dấu nơi. Và sau đó một khi chúng ta có hình học, nhận được một trong hai vĩ độ hoặc kinh độ, sử dụng những chức năng. Vì vậy, bây giờ chúng tôi biết làm thế nào để phát hiện xem hành khách trong phạm vi của tàu con thoi của chúng tôi. Một khi chúng ta có những hành khách, chúng tôi sẽ muốn thêm bất kỳ hành khách có trong phạm vi đó. Chúng tôi muốn để cho phép họ nhảy lên, và có một chỗ ngồi trên xe đưa đón của chúng tôi, nhưng chỉ nếu chúng ta có đủ chỗ cho họ. Mảng đưa đón dot chỗ ngồi sẽ cho biết chỗ ngồi là trống rỗng, hoặc người trong chỗ đó. Vì vậy, nếu một ghế trống, sau đó chỗ ngồi sẽ được null. Vì vậy, lặp qua mảng chỗ ngồi, kiểm tra các chỗ trống, lưu trữ hành khách vào những chỗ ngồi cho đến khi bạn không có bất kỳ chỗ trống hơn. Và thật không may, bất kỳ hành khách khác sẽ phải chờ đợi lần sau tàu con thoi đến xung quanh. Một khi họ nhận được trên tàu con thoi, chúng tôi sẽ muốn để loại bỏ đánh dấu vị trí của mình, mà là hình ảnh của họ trong thế giới 3D. Nếu tôi muốn loại bỏ một đánh dấu vị trí p, sau đó tôi sẽ nhận được tất cả các tính năng từ trái đất của tôi, từ Google Earth, và sau đó loại bỏ địa điểm cụ thể đánh dấu bằng cách sử dụng chức năng removeChild. Sau đó, cuối cùng, chúng ta hãy loại bỏ các dấu hiệu, biểu tượng trên bản đồ 2D cho bất kỳ hành khách mà chúng tôi đang chọn lên. Để loại bỏ một đánh dấu, m, sau đó tôi sẽ chỉ cần thực hiện m chấm setMap null. Làm điều này cho bất kỳ hành khách trong phạm vi, và bạn đã hoàn tất pickup.