>> ZAMYLA陳：好了，我們在這裡， 最後對設置在CS50。
從有你們表示祝賀 走了這麼遠，因為你的第一個Hello
世界和印刷上 金字塔的馬里奧。
你做了一個網站的最後一周。
而我們將要製作一個又一個 這個星期，一個可以讓你
帶動周邊​​的哈佛校園裡，採摘 高達CS50工作人員和
把他們回到自己的 民居。
>> 現在，上週我們曾在PHP中， 服務器端語言。
對於這對集，我們就要介紹 到JavaScript中，這是一個
客戶端語言。
因此，讓我們來看看一些 公司所提供的分銷代碼
你為這個對集。
在JavaScript文件夾中，將有 是一堆JavaScript文件。
>> 有buildings.js，它包含一個 哈佛周圍建築物的數組
校園裡有他們的信息 和位置。
Houses.js是哈佛的數組 住宅房屋與他們的
經度和緯度。
Passengers.js包含的陣列 乘客中，CS50工作人員
你會被帶回至 他們居住的房子。
>> Math3D.js，它包含了很多 功能做的運動。
如果你是數學頭腦，然後 歡迎您來我看看。
但你並不需要了解 一切都在那裡。
Shuttle.js，與交易 航天飛機的運動。
和index.html的是主頁， 一切都發生了，真的，那裡的
用戶互動的網站。
>> Service.css是CSS樣式表， 其中除了Twitter的
引導圖書館，控制 如何index.html的樣子。
然後我們也有service.js，這 包含服務功能
航天飛機。
下面是你要去的地方是 填寫一些待辦事項的的。
>> 現在讓我們來看看對象和 關聯數組在JavaScript中，
其中，對於所有意圖和目的， 是可以互換的。
如果我想使一個對象的變量 所謂的魔杖，我會
聲明它。
和那些大括號內，我會 指定，其核心是獨角獸，木
是櫻桃，並且長度為13。
>> 現在，我也可以訪問值 使用對象
關聯數組表示法。
所以魔杖指數的核心，我可以設置 這等於麒麟，或
檢查如果我需要。
或者，我可以使用點運算符 wand.wood等於櫻桃，和
依此類推等等。
所以你看到，關聯數組和 在JavaScript對象都將是
互換和意志 進來很方便。
>> 然後，我們看到建築的數組 在buildings.js，
再次，對象的數組。
如果我想做出最好的一個數組 在哈佛校園的建築物，然後
我想使它成為如下。
使用此對象表示法，其中 我存儲的根，名稱，地址，
緯度，經度和每 單體建築對象。
>> 讓我們快速談談變量 在JavaScript中。
像PHP，JavaScript變量 是弱或鬆散類型。
要創建一個局部變量，你前綴 變量名與V-A-R，變種。
現在，在JavaScript中，函數會 限制變量的範圍。
因此，如果你在有一個局部變量 一個函數，那麼其他功能
不能訪問它。
>> 但是，與C，循環和條件不 限制變量的範圍。
所以，即使你的內聲明它 條件，整個功能將
可以訪問它。
現在，沒有變種，變 將是全球性的。
所以，如果你只需要聲明的名稱和 指定一個值，則該變量
將是一個全局變量 在JavaScript中。
>> 現在，房子，我們有一個關聯 主機類型對象的數組，其中
每一個房子只是一個緯度 和經度。
那麼我們有乘客 陣列，它是一個數組
的對象類型的乘客。
所以，每一位乘客都有一個用戶 姓名，名稱，和房子。
>> 請注意，我說的類型 乘客，這真的只是意味著
每個對象都有 同樣的鍵值對。
所以型乘用車的每一個對象都有 一個用戶名，一個名稱和一個房子。
那麼，我們需要 做的對集？
好了，我們需要允許用戶選擇 了工作人員，以顯示所有的
工作人員目前正在 我們的班車，並把它們關閉。
然後，我們也將討論額外的 給可實現的功能
航天飛機對集。
>> 但是，讓我們來談談皮卡第一。
CS50工作人員的面孔已經 種滿校園，其中每個
臉是作為一個地方標誌 上的三維地球，並作為一個
標記的2D地圖上。
因此，當用戶點擊皮卡 按鈕，我們希望附近的加
乘客穿梭。
我們也想刪除自己的位置 從世界和標記刪除其
標記從地圖上看，這表明 他們在我們的班車了。
>> 那麼，我們如何檢測，如果乘客 都在我們的航天飛機範圍是多少？
好了，作用距離，所以 shuttle.distance，傳遞
經緯度，將計算 從當前位置的距離
穿梭於該點的 你與給定的指定
緯度和經度。
所以，你可以用它來計算 距離從航天飛機到
乘客。
>> 但你怎麼知道在哪裡 乘客是？
嗯，這就是我們必須 編輯填充功能。
填充所有地方的工作人員 在乘客進入世界
並進入地圖，但不 存儲他們的位置。
因此，也許你可以存儲自己的 放置標記和標記
在一些全局數組。
>> 現在，已經是一個全局數組 乘客存儲信息。
每個乘客陣列存儲 乘客的姓名和他們的房子。
所以也許你可以添加一些參數 有給乘客的對象。
>> 為了幫助我們檢測到所有的乘客 在我們的範圍內
穿梭，讓我們通過所有的迴路 乘客乘客陣列。
for循環在JavaScript看起來 這樣的事情，非常相似，
對於那些在C循環或者，我們可以使用一個 替代for循環結構，
在陣列變種I，其中I仍然會 該指數，但你並不需要
指定array.length 條件，我+ +。
>> 每一個乘客的位置是 通過他們的地方得分。
但這個地方標誌是不 緯度和經度。
我們必須通過訪問這些參數 獲得的幾何形狀，使用get
幾何上的位置標記，然後 一旦我們有幾何，越來越
無論是緯度或經度 使用這些功能。
>> 所以，現在我們知道如何檢測是否 乘客都在
我們的範圍內穿梭。
一旦我們有了這些乘客，我們將 要補充的是，任何乘客
內的範圍。
我們希望，讓他們跳，並採取 只有一個座位上我們的班車，但
如果我們有足夠的空間給他們。
>> 該shuttle.seats陣列將顯示 座位是否是空的，或
誰在那個位子。
所以，如果一個座位是空的，那麼 那個座位將為null。
所以遍歷數組席位， 檢查空座位，存儲
乘客進入這些席位，直到你 沒有任何更多的空座位。
不幸的是，其他乘客 將必須等待
下一次航天飛機下來。
>> 一旦他們穿梭取得聯繫，我們會想 刪除自己的位置標記，它
是他們的照片在3D世界中。
如果我想刪除一個地方標記P， 然後我會得到所有的功能
從我的地球，從谷歌地球， 然後刪除特定的地方
標記使用removeChild功能。
那麼最後，讓我們刪除標記， 在2D地圖上的圖標，對於任何
乘客，我們正在加快。
>> 要刪除標記M，然後我會 只是執行m.setMap空。
這樣做有效範圍內的任何乘客， 你已經完成了皮卡。
圖表功能，應顯示所有 這是在乘客的
航天飛機，空座位，如果空。
所以，圖表應該遍歷 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。
>> 你可以實現一個飛行的功能， 其中，如果用戶輸入了小浪
碼，然後穿梭升空 地面和航天飛機能飛。
但是，對於一個安全落，最好使 航天飛機降落輪子上的
第一個理由。
您也可以實現隱形傳態， 在那裡你犯了一個下拉列表
建築物的index.html。
並選擇其中的一個時， 用戶將被運送到
在校園內的建築物。
好吧，雖然，通過旅行 一些牆壁
在那裡你的方式建築。
>> 您還可以更改的速度 梭，允許用戶增加
或減小的速度。
也許你想要一個全局變量 跟踪燃料多少的
有梭，減少 它作為你走。
一旦你打到零，不過，穿梭 不能，除非你已經移動
加油，可能使用一個按鈕，或 甚至讓自己的加油站。
>> 但是，這肯定是不 一個詳盡的清單。
退房的規格為全 列出，或者建議
你自己到TF。
天空是極限。
這是你最後CS50對集， 所以有它的樂趣。
這是CS50班車。
>> 我不得不說，這是一個很高興 以使這些為你
生產隊。
我希望你已經 享受其中，也是如此。
我的名字是Zamyla。
這是CS50。