ZAMYLA تشان: حسنا، نحن هنا، الأخير في CS50 تعيين ف. تهنئة أنفسكم من وجود تأتي حتى الآن منذ أول مرحبا بك عوالم والطباعة حتى الأهرامات لماريو. قمت بعمل موقع الأسبوع الماضي. ونحن في طريقنا إلى أن صنع واحدة أخرى هذا الاسبوع، واحد الذي يسمح لك ل حملة في جميع أنحاء الحرم الجامعي في جامعة هارفارد، واختيار حتى الموظفين CS50 و إعادتهم إلى هم المنازل السكنية. الآن، الأسبوع الماضي عملنا في PHP، لغة جانب الملقم. لهذا ف مجموعة، ونحن الحصول على قدم لجافا سكريبت، الذي هو العميل اللغة الجانب. لذلك دعونا نلقي نظرة على بعض من كود التوزيع التي وفرت ل لكم لهذا ف مجموعة. في المجلد جافا سكريبت، سوف هناك تكون مجموعة من الملفات جافا سكريبت. هناك buildings.js، الذي يحتوي على مجموعة من المباني في جميع أنحاء هارفارد الحرم الجامعي مع المعلومات الخاصة بهم والموقف. Houses.js هو مجموعة من هارفارد البيوت السكنية الخاصة بهم مع خطوط العرض وخطوط الطول. Passengers.js يحتوي على مجموعة من الركاب، والموظفين CS50 أن عليك أن تكون اعادة ل البيوت السكنية الخاصة بهم. Math3D.js، الذي يحتوي على الكثير من وظائف للقيام مع الحركة. إذا كنت رياضيا التفكير، ثم أرحب بكم في إلقاء نظرة. ولكنك لا تحتاج إلى فهم كل شيء هناك. Shuttle.js، التي تتعامل مع حركة مكوك. وindex.html و هو الصفحة الرئيسية حيث كل شيء يحدث، حقا، حيث المستخدم التفاعل مع الموقع. Service.css هو ورقة الأنماط CSS، والتي بالإضافة إلى تويتر مكتبة التمهيد، وضوابط كيف تبدو index.html و. ثم لدينا أيضا service.js، التي يحتوي على وظائف الخدمة ل مكوك. وهنا هو أين أنت ذاهب لتكون تعبئة في بعض المهام إلى ل. الآن دعونا نلقي نظرة على الأشياء و صفائف النقابي في جافا سكريبت، والتي، لجميع المقاصد والأغراض، قابلة للتبادل. إذا أردت أن تجعل كائن متغير دعا عصا، وأود أن نعلن ذلك. وداخل تلك الأقواس المتعرجة، وأود أن تحديد، جوهر هو يونيكورن، والخشب هو الكرز، وطول هو 13. الآن، وأنا يمكن أيضا الوصول إلى القيم من الكائنات باستخدام النقابي تدوين مجموعة. المؤشر الاساسي عصا جدا، وأنا يمكن أن يحدد أن يساوي يونيكورن، أو تأكد من أنه إذا أحتاج. أو يمكنني استخدام المشغل نقطة wand.wood يساوي الكرز، و هلم جرا وهكذا دواليك. لذلك ترى أن صفائف النقابي و الكائنات في جافا سكريبت ستكون للتبادل، والإرادة تأتي في متناول اليدين تماما. ثم نرى مجموعة من المباني في buildings.js، مرة أخرى، مجموعة من الكائنات. إذا أردت أن تجعل مجموعة من أفضل المباني في الحرم الجامعي في جامعة هارفارد، ثم وأود أن جعله على النحو التالي. باستخدام هذه الرموز الكائن، حيث أنا تخزين الجذر، الاسم والعنوان و خطوط العرض والطول والعرض لكل كائن مبنى واحد. دعونا نتحدث بسرعة عن المتغيرات في جافا سكريبت. مثل PHP، جافا سكريبت المتغيرات يتم ضعيفة أو فضفاضة كتبته. لإنشاء متغير محلي، أنت البادئة اسم المتغير مع V-A-R، فار. الآن، في جافا سكريبت، وسوف الوظائف الحد من نطاق المتغيرات. حتى إذا كان لديك متغير محلي داخل وظيفة، ثم وظائف أخرى لا يمكن الوصول إليه. ولكن خلافا C، الحلقات والظروف لا تحديد نطاق متغير. ذلك حتى لو كنت نعلن ذلك من داخل الشرط، فإن وظيفة كاملة الحصول على ذلك. الآن، دون فار، المتغير سوف تكون عالمية. لذلك إذا كنت مجرد إعلان اسم و تعيين قيمة، ثم هذا المتغير سيكون متغير عمومي في جافا سكريبت. الآن، في المنازل، لدينا النقابي مجموعة من الكائنات نوع المضيف، حيث كل بيت هو مجرد العرض والطول. ثم لدينا الركاب مجموعة، وهو مجموعة من نوع الكائن الركاب. لذلك كل راكب لديه المستخدم اسم، وهو اسم، ومنزل. تلاحظ أن أقوله من نوع الركاب، والتي في الواقع يعني فقط أن كل كائن لديه نفس أزواج قيمة المفتاح. وذلك في كل كائن من النوع الراكب اسم المستخدم، وهو اسم، ومنزل. لذلك ماذا نحن بحاجة إلى قيام لف مجموعة؟ حسنا، نحن في حاجة للسماح للمستخدمين لاختيار حتى الموظفين، لعرض كافة الموظفين التي هي حاليا في المكوك لدينا، وإسقاط أجبرتها على الفرار. ثم سنتحدث أيضا عن اضافية الميزات التي يمكن تنفيذها ل مكوك ف مجموعة. ولكن دعونا نتحدث عن لاقط الأول. وكانت وجوه الموظفين CS50 زرعت في جميع أنحاء الحرم الجامعي، حيث كل ويتم تنفيذ الوجه كعلامة مكان على الأرض 3D، ونتيجة ل علامة على الخريطة 2D. وذلك عندما يقوم المستخدم بالنقر فوق لاقط الزر، ونحن نريد لإضافة القريبة الركاب على متن المكوك. ونريد أيضا لإزالة مكانها احتفال من العالم وإزالة الخاصة بهم علامة من على الخريطة، مشيرا إلى أن انهم في المكوك لدينا الآن. لذلك كيف يمكننا الكشف عن حالة الركاب ضمن مجموعة من المكوك لدينا؟ كذلك، والمسافة وظيفة، لذلك shuttle.distance، ويمر في خطوط الطول والعرض، وحساب المسافة من الوضع الحالي من المكوك إلى النقطة التي تحدده مع تلك التي أعطيت خطوط الطول والعرض. بحيث يمكنك استخدام هذا لحساب المسافة من المكوك إلى الركاب. ولكن كيف يمكنك أن تعرف أين الركاب هم؟ حسنا، هذا هو المكان الذي علينا أن تعديل وظيفة تعبئة. ملء الأماكن جميع الموظفين في ركاب في العالم وإلى الخريطة، ولكن لا تخزين مواقعها. لذلك ربما يمكنك تخزين بهم وضع علامات وعلامات في بعض مجموعة العالمية. الآن، هناك بالفعل مجموعة والعالمية تخزين المعلومات من الركاب. مخازن الركاب مجموعة كل اسم الراكب ومنزلهم. وربما لذلك يمكنك إضافة قليل من المعلمات هناك لكائنات الركاب. لمساعدتنا على كشف جميع الركاب ضمن النطاق لدينا المكوك، حلقة دعونا من خلال كل من راكب في مجموعة من الركاب. حلقة لفي جافا سكريبت قد تبدو شيء مثل هذا، تشبه الى حد بعيد تلك الحلقات في لجيم أو يمكننا استخدام بديلة لهيكل حلقة، ل فار ط في مجموعة، حيث سوف يكون لا يزال مؤشر، ولكن لا تحتاج ل تحديد array.length حالة وط + +. موقع كل راكب هو التي قدمها علامة مكانها. لكن علامة المكان ليس لل العرض والطول. لدينا للوصول إلى تلك المعلمات من قبل الحصول على الهندسة، وذلك باستخدام الحصول على علم الهندسة على علامة المكان، ثم مرة واحدة لدينا الهندسة، والحصول على إما العرض أو الطول باستخدام تلك الوظائف. حتى الآن نحن نعرف كيفية اكتشاف ما إذا كان الركاب داخل مجموعة من المكوك لدينا. مرة واحدة لدينا تلك الركاب، وسوف نقوم تريد إضافة أي الركاب التي هي ضمن هذا النطاق. نحن نريد للسماح لهم للقفز على اتخاذ و مقعد على المكوك لدينا، ولكن فقط اذا كان لدينا مساحة كافية لهم. فإن مجموعة shuttle.seats تشير سواء مقاعد فارغة، أو من هو هذا المقعد. إذا كان الأمر كذلك مقعد فارغ، ثم وسوف يكون هذا المقعد فارغا. حتى تكرار عبر مجموعة مقعدا، التحقق من وجود مقاعد فارغة، وتخزين الركاب في تلك المقاعد حتى تقوم ليس لدينا أي مقاعد فارغة أكثر. ولسوء الحظ، أي ركاب آخرين سوف تضطر إلى الانتظار ل في المرة القادمة المكوك يأتي إلى أسفل. بمجرد الحصول على المكوك، ونحن سترغب لإزالة علامة مكانها، والتي هو صورة في العالم 3D. إذا أردت أن إزالة علامة مكان ع، ثم أود أن الحصول على كافة الميزات من وجهة نظري الأرض، من برنامج Google Earth، ومن ثم إزالة هذا مكان محدد بمناسبة باستخدام وظيفة removeChild. ثم أخيرا، دعونا إزالة علامة، رمز على الخريطة 2D، لأي الركاب أننا التقاط. لإزالة علامة على م، ثم سوف أكون أنا مجرد تنفيذ m.setMap فارغة. القيام بذلك لأي الركاب داخل النطاق، والانتهاء من لاقط. وظيفة الرسم البياني يجب عرض جميع الركاب التي هي في الخاصة بك المكوك، ومقعد فارغ إذا فارغة. لذلك يجب تكرار عبر الرسم البياني shuttle.seats، وعرض معلومات الركاب لكل مؤشر، ومقعد فارغ إذا أن مؤشر فارغة. الآن إذا تم وضع نص HTML داخل ل جافا سكريبت متغير، ثم باستخدام document.getElementByID، يمكن الرسم البياني تحرير HTML الداخلية أنه نظرا عنصر عن طريق تعيين النص HTML ل document.getElementByID الداخلية متغير HTML. عندما ينقر المستخدمون على زر إسقاط معطلة في index.html و، وأنها سوف استدعاء وظيفة يتجمعوا. وانها مهمتنا لتنفيذ ذلك. في يتجمعوا، ونحن سوف ترغب في إزالة أي الركاب من المكوك إلا إذا نحن في مجموعة من جهتهم، منزل سكني بهم. حتى يتجمعوا سيكون لديك لتحقق ما إذا كان المكوك هو في نطاق أي من المنازل، وإزالة أي حاجة الركاب من المكوك. لذلك كيف يمكننا معرفة ما اذا كان نحن في نطاق أي البيوت؟ حسنا، مرة أخرى، ونحن سوف تجعل استخدام shuttle.distance وظيفة، ويمر في خطوط الطول والعرض للنقطة اننا ضد التحقق. ولكن ما هي هذه النقاط؟ جيدا، ومجموعة المنازل، إذا كنت تتذكر في houses.js، يخزن خطوط الطول والعرض من كل بيت في مجموعة النقابي، حيث كل المؤشر هو اسم ذلك البيت. ثم لإزالة الركاب - كذلك، إلا إذا نحن في مجموعة من لهم المنزل الذي يريدون الذهاب إليه. ذلك مرة أخرى، وتذكر أن الركاب يخزن المنزل أن كل الركاب يريد أن يذهب إلى. إذا كانت ضمن مجموعة من بهم المنزل، ثم سنقوم بإزالة هذا الركاب من shuttle.seats ومجموعة وضعهم في مجموعة إلى فارغة. الآن دعونا نتحدث عن بعض ميزات اضافية التي يمكن تنفيذها في وCS50 المكوك ف مجموعة. هناك نقطة نظام حيث كنت تتبع وكم يشير مستخدم لديه. لانزال الركاب بنجاح، يمكنهم الحصول على نقطة. ولكن لمحاولة تنزيل الركاب حيث لا يوجد أي منزل قريب، كذلك، فإنها يمكن أن تحصل على معاقبة لذلك. لذلك ربما كنت تريد أن تتبع النقاط في متغير عمومي. يمكنك تنفيذ ربما الموقت، حيث المستخدم لديه كمية معينة من الوقت لالتقاط وغلبه النعاس و عدد معين من الركاب. ربما حتى دمج هذه مع نظام النقطة. أو يمكنك تحرير الرسم البياني بحيث يتم فرز الركاب المنزل. بحيث ربما يكون نوعا تعمل لshuttle.seats. يمكنك تطبيق سمة الطيران، حيث إذا كان المستخدم مدخلات كونامي رمز، ثم المكوك ترفع قبالة الأرض ومكوك يمكن أن تطير. ولكن لانخفاض قبالة آمنة، وأفضل لجعل المكوك الهبوط عجلاتها على الأرض أولا. يمكنك أيضا تنفيذ تحريك تخاطر، حيث يمكنك جعل انخفاض أسفل قائمة المباني في index.html و. واختيار واحدة من تلك، و وسوف يتم نقل المستخدم ل أن بناء في الحرم الجامعي. موافق، على الرغم من أن السفر من خلال جدران بعض المباني على طريقك هناك. يمكنك أيضا تغيير سرعة المكوك، مما يتيح للمستخدم لزيادة أو تقليل السرعة. ربما كنت ترغب في متغير عمومي ل تتبع مقدار الوقود المكوك لديه، وخفض ذلك كما تذهب على طول. بمجرد تصل إلى الصفر، على الرغم من المكوك لن تكون قادرة على التحرك إلا إذا كنت قد بالوقود، ربما باستخدام زر واحدة، أو حتى جعل محطة الغاز الخاصة بك. ولكن هذا ليس بالتأكيد قائمة شاملة. تحقق من المواصفات الكاملة ل قائمة، أو ربما اقتراح الخاصة بك لTF الخاص بك. السماء هي الحد. هذا هو الخاص مشاركة CS50 ف مجموعة، بحيث يكون متعة معها. كان هذا CS50 المكوك. لقد حصلت على القول، انها كانت متعة مما يجعل هذه لك مع فريق الإنتاج. وآمل أن كنت قد التمتع بها، كذلك. اسمي Zamyla. وكان هذا CS50.