>> ZAMYLA CHAN: 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 ấn ký 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 nhân viên CS50 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ủ.
Đối với điều này p thiết lập, 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 này p-bộ.
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 thông tin của họ và vị trí.
Houses.js là một mảng của Harvard nhà ở của họ
vĩ độ và kinh độ.
Passengers.js chứa một loạt các hành khách, 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 có đầu óc toán học, sau đó Tôi hoan nghênh 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 chuyển động 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ố việc cần làm để của.
>> 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ả các tính năng, 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ẽ chỉ đị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 wand.wood bằng anh đào, và
vv 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ờ, không có 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 máy chủ, 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 người sử dụng tên, một tên, và một ngôi nhà.
>> Nhận thấy rằng tôi đang nói 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 p-bộ?
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
tàu con thoi p-bộ.
>> 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 Earth 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 Pickup 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, do shuttle.distance, đi qua trong
vĩ độ và kinh độ, sẽ tính toán khoảng cách từ vị trí hiện tại
của tàu con thoi đến mức 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 trong 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 chúng tôi
Xe đưa đón, vòng lặp chúng ta hãy 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 cho các vòng 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 mà tôi vẫn sẽ là chỉ số, nhưng bạn không cần phải
xác định array.length điều kiện và i + +.
>> 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 vị trí, và sau đó một khi chúng ta có hình học, nhận được
hoặc 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ọ lên xe và mất 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 shuttle.seats sẽ cho biết có 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
thời gian tới đưa đón đi xuống.
>> 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
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, đối với 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.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.
Chức năng biểu đồ sẽ hiển thị tất cả của các hành khách đang trong của bạn
Xe đưa đón, và ghế trống nếu có sản phẩm nào.
Vì vậy, biểu đồ nên lặp qua shuttle.seats, hiển thị
thông tin hành khách cho mỗi chỉ số, và chiếc ghế trống nếu chỉ số đó là vô giá trị.
>> Bây giờ nếu văn bản HTML được đặt bên trong một Biến JavaScript, sau đó bằng cách sử dụng
document.getElementById, biểu đồ can chỉnh sửa HTML bên trong đó đưa ra
yếu tố bằng cách chỉ định HTML văn bản vào
document.getElementById biến HTML bên trong.
Khi người sử dụng nhấn vào nút Drop Tắt trong index.html, nó sẽ gọi
chức năng dropoff.
Và đó là công việc của chúng tôi để thực hiện điều đó.
>> Trong dropoff, chúng tôi sẽ muốn loại bỏ bất kỳ hành khách từ tàu con thoi chỉ khi
chúng tôi đang ở trong phạm vi của điểm đến của họ, nhà ở của họ.
Vì vậy, dropoff sẽ phải kiểm tra xem tàu con thoi là trong phạm vi của bất kỳ
nhà ở, và loại bỏ bất kỳ cần thiết hành khách từ tàu con thoi.
Vì vậy, làm thế nào để chúng tôi kiểm tra xem chúng tôi trong phạm vi của bất kỳ nhà?
Vâng, một lần nữa, chúng tôi sẽ sử dụng các shuttle.distance chức năng, đi qua trong
vĩ độ và kinh độ của điểm mà chúng tôi đang kiểm tra chống lại.
>> Nhưng những điểm là gì?
Vâng, mảng nhà ở, nếu bạn nhớ trong houses.js, lưu trữ
vĩ độ và kinh độ của mỗi ngôi nhà ở một mảng kết hợp, nơi mà mỗi
chỉ số là tên của ngôi nhà đó.
Sau đó để loại bỏ hành khách -
tốt, chỉ khi chúng ta đang ở trong phạm vi của họ nhà mà họ muốn đến.
Vì vậy, một lần nữa, hãy nhớ rằng hành khách lưu trữ nhà mà mỗi hành khách
muốn đi.
Nếu họ là trong phạm vi của họ nhà, sau đó chúng tôi sẽ loại bỏ
hành khách từ shuttle.seats và thiết lập vị trí của họ trong mảng để null.
>> Bây giờ hãy nói về một số tính năng bổ sung có thể được thực hiện trong
các CS50 Shuttle p-bộ.
Có một hệ thống điểm đó bạn theo dõi bao nhiêu
chỉ một người sử dụng có.
Cho thả ra hành khách thành công, họ có thể có được điểm.
Nhưng đối với cố gắng để trả khách nơi không có bất kỳ ngôi nhà gần đó,
tốt, họ có thể nhận được bị phạt cho điều đó.
Vì vậy, có lẽ bạn muốn theo dõi các điểm trong một biến toàn cầu.
>> Bạn có thể thực hiện có thể là một bộ đếm thời gian, nơi người dùng có một số tiền nhất định
thời gian để nhận và thả ra một số lượng nhất định của hành khách.
Thậm chí có thể tích hợp này với hệ thống điểm.
Hoặc bạn có thể chỉnh sửa biểu đồ như vậy mà hành khách đều được sắp xếp bởi nhà.
Vì vậy, đó có lẽ sẽ là một loại chức năng để shuttle.seats.
>> Bạn có thể thực hiện một tính năng bay, mà nếu người sử dụng đầu vào các Konami
mã, sau đó tàu con thoi ra khỏi thang máy mặt đất và tàu con thoi có thể bay.
Nhưng đối với một thả an toàn không, tốt nhất để làm tàu con thoi hạ cánh bánh xe của nó trên
mặt đất đầu tiên.
Bạn cũng có thể thực hiện dịch chuyển tức thời, nơi bạn thực hiện một danh sách thả xuống của
các tòa nhà trong index.html.
Và chọn một trong những người, người sử dụng sẽ được vận chuyển đến
rằng tòa nhà trong khuôn viên trường.
OK, tuy nhiên, để đi qua các bức tường của một số
tòa nhà trên đường ở đó.
>> Bạn cũng có thể thay đổi tốc độ của Xe đưa đón, cho phép người dùng tăng
hoặc giảm tốc độ.
Có lẽ bạn muốn có một biến toàn cầu theo dõi bao nhiêu nhiên liệu
Xe đưa đón có, giảm nó như bạn đi cùng.
Một khi bạn nhấn không, tuy nhiên, tàu con thoi sẽ không có khả năng di chuyển, trừ khi bạn đã
tiếp nhiên liệu, có lẽ sử dụng một nút, hoặc thậm chí làm cho trạm xăng của riêng bạn.
>> Nhưng đó chắc chắn không phải là một danh sách dài.
Kiểm tra các thông số cho đầy đủ danh sách, hoặc có thể đề xuất
riêng để TF của bạn.
Bầu trời là giới hạn.
Đây là cuối cùng CS50 p-thiết lập của bạn, để vui chơi với nó.
Đây là CS50 Shuttle.
>> Tôi phải nói rằng, nó được một niềm vui làm cho những cho bạn những
Đội ngũ sản xuất.
Và tôi hy vọng rằng bạn đã thưởng thức chúng, là tốt.
Tên tôi là Zamyla.
Và đây là CS50.