מערכים של אובייקטים - Arrays of Objects (Video Version)
-
0:01 - 0:03בואו נמשיך לחקור מה אנו יכולים לעשות עם אובייקטים.
-
0:04 - 0:08אנחנו שוב עם התוכנית שהשתמשנו בה במדריך לפונקציות.
-
0:09 - 0:14בתוכנית הזאת יש פונקציית drawWinston שיודעת לצייר את ווינסטון במיקום X ו-Y מסוים.
-
0:14 - 0:23ואז כאן למטה, אנחנו קוראים ל-drawWinston ארבע פעמים, כל פעם עם קואורדינטות X ו-Y שונות.
-
0:23 - 0:28אתם מכירים אותי, כשאני מסתכלת על ארבעת הקריאות האלו לפונקציה drawWinston שהן כל כך דומות,
-
0:29 - 0:39כל מה שאני יכולה לחשוב זה כמה זה היה יותר טוב אם יכולנו להשתמש בלולאה ולקרוא לפונקציה רק פעם אחת בתוך הלולאה, עם שינוי קואורדינטות ה-X ו-Y בכל סיבוב.
-
0:39 - 0:47אז, כדי לעשות את זה, אנחנו צריכים למצוא דרך לשמור את מיקומי ה-X וה-Y במערך כדי שנוכל לעבור עליו בלולאה.
-
0:47 - 0:56ובכן, יש לנו שני סטים של ערכים, אז נוכל לעשות את זה עם שני מערכים. אחד למיקומי ה-X, ואחד למיקומי ה-Y.
-
0:56 - 1:09עבור מיקומי X יהיו לנו למשל, 99, 294, 101, ו-294, ועבור מיקומי Y יהיו לנו 117, 117, 316, 316.
-
1:09 - 1:18אוקיי, עכשיו נוכל לעבור עם לולאה על המערכים האלו עם לולאת for. נרשום: var i = 0;
i < xPositions.length;
i++ -
1:18 - 1:30אז אנחנו עוברים על כל איבר במערך xPositions והפקודה שנרשום היא
drawWinston(xPositions[i], yPositions[i]) -
1:30 - 1:34אוקיי, אז, בואו נראה אם זה עבד, נחמק את זה...
-
1:34 - 1:36בסדר, זה עבד.
-
1:36 - 1:45עכשיו יש לנו שורת קוד אחת שקוראת לפונקציה drawWinston, והיא מתבצעת עבור כל מיקום במערך xPosition.
-
1:45 - 1:57אנחנו יכולים להוסיף עוד... (10,1) ואז (1,1), ו-(100,1).
-
1:57 - 2:13עכשיו זה מתחיל להיראות קצת מבולגן, ואני לא אוהבת את זה, כי זה ממש קשה לראות איזה Xים שייכים לאיזה Yים. אני רוצה רק להעיף מבט ולדעת מה הם
-
2:13 - 2:21הזוגות של X ו-Y, במקום שאצטרך לוודא שאני מסדרת אותם אחד מעל השני במערך.
-
2:22 - 2:27אני רוצה למצוא דרך אחרת לשמור את המיקומים האלו.
-
2:27 - 2:31רעיון אחד הוא לשמור אותם בתור אובייקטים.
-
2:31 - 2:39תחשבו על זה, כל מיקום הוא בסה"כ שני חלקי מידע: מיקום ה-X וה-Y. אז, אנחנו יכולים להחזיק אובייקט שיש לו מאפיין X ומאפיין Y
-
2:39 - 2:44ואז יכול להיות לנו מערך של אובייקטים עם כל מיקומי ה-X וה-Y.
-
2:44 - 2:46בואו נעשה את זה.
-
2:46 - 2:51נרשום: var positions שווה.. וכאן יהיה לנו מערך גם.
-
2:51 - 2:56אבל, כל איבר, במקום להיות מספר, הולך להיות אובייקט.
-
2:56 - 3:05אז, כאן הסוגריים המסלוסלים שלנו, ואז נרשום פשוט: X: 99, Y: 117.
-
3:05 - 3:13אוקיי, אז עכשיו יש לנו את אחד המיקומים שלנו, נוסיף עוד אחד.
-
3:13 - 3:31אוקיי, X צריך להיות 294, 117, השלישי הולך להיות 101, 316, והאחרון 294, 316.
-
3:31 - 3:38אוקיי, עכשיו יש לנו מערך של אובייקטים, וכל אובייקט מכיל מאפייני X ו-Y.
-
3:38 - 3:44כאן למטה, בלולאת ה-for שלנו, נשנה את הלולאה כך שתרוץ מספר פעמים כאורך המערך positions.length
-
3:44 - 3:49אז נעביר את האובייקט
-
3:49 - 3:59עכשיו זה מעביר את כל האובייקט, אבל אנחנו רוצים להעביר את ה-X וה-Y, אז אנחנו צריכים לרשום: positions[i].X ו-positions[i].Y.
-
3:59 - 4:00טה-דה!
-
4:00 - 4:04עכשיו, אנחנו יכולים להיפטר מהמערכים הישנים.
-
4:04 - 4:13מעולה, זה נראה הרבה יותר נחמד, והופך את הקוד להרבה יותר קריא - וזה תמיד יותר טוב שיש לנו קוד יותר קריא.
-
4:13 - 4:25זה גם הופך את זה לפשוט יותר להוסיף מיקומים, אם נרצה. אני אוסיף אחד כאן - X הוא 200, Y הוא 200, נכניס את ווינסטון שם באמצע.
-
4:25 - 4:27מגניב.
-
4:27 - 4:31עכשיו אני רוצה להראות לכם משהו אפילו יותר יפה.
-
4:31 - 4:39שימו לב שהפונקציה שלנו מקבלת כרגע שני מספרים, ואז משתמשת בשני המספרים האלו.
-
4:39 - 4:45אנחנו יכולים לשנות את הפונקציה כך שהיא תצפה לאובייקט יחיד, ואז היא לוקחת את מאפייני ה-X וה-Y מהאובייקט,
-
4:45 - 4:49כך שכאן נוכל פשוט להעביר את האובייקט.
-
4:49 - 4:51בואו ננסה את זה.
-
4:51 - 4:54נעביר את האובייקט, עכשיו זה לא עובד.
-
4:54 - 5:00זה כי הפונקציה שלנו עדיין מצפה לשני פרמטרים והיא מקבלת רק אחד, אז נשנה את זה
-
5:00 - 5:07נרשום שהיא מקבלת facePosition, ועכשיו אנחנו מקבלים עוד שגיאה, ש-faceX לא מוגדר
-
5:07 - 5:13כי קודם העברנו את faceX כפרמטר, אבל עכשיו הוא לא קיים, אנחנו מקבלים רק אובייקט.
-
5:13 - 5:21אז, מה שאנחנו יכולים לעשות, זה לשמור את מיקום ה-X שיש באובייקט בתוך המשתנה faceX.
-
5:21 - 5:28אז קיבלנו את האובייקט הזה, אנחנו יודעים שיש לו מאפיין X, אז אנחנו פשוט הולכים לשמור את הערך הזה לתוך המשתנה faceX.
-
5:28 - 5:34אנחנו יכולים לעשות את אותו הדבר עם Y, אז faceY = facePosition.y.
-
5:34 - 5:35טה-דה!
-
5:35 - 5:38ואז, שאר הפונקציה משתמשת ב-faceX וב-faceY.
-
5:38 - 5:44שימו לב, אנחנו צריכים לוודא שאנחנו מאייתים את זה נכון, אם היינו כותבים xx, זה לא היה עובד כי זה לא מה שרשום למטה
-
5:44 - 5:48במערך האובייקטים שלנו - זה צריך להתאים.
-
5:48 - 5:53זה די מגניב - אתם יכולים ליצור מערכים של אובייקטים, ליצור פונקציות שמקבלות אובייקטים
-
5:53 - 6:00ואתם תגלו שלתוכניות שלכם יכול להיות הרבה כוח עם הדרך שבה אובייקטים מארגנים מידע
-
6:00 - 6:05בייחוד כי זה מאוד נפוץ לרצות לצמד את X ו-Y יחד, אני חושבת שתמצאו את זה
-
6:05 - 6:09מאוד שימושי בכל תוכניות הציור והאנימציה.
-
6:09 - 6:12אז תמשיכו עם זה ותהנו!
- Title:
- מערכים של אובייקטים - Arrays of Objects (Video Version)
- Description:
-
זהו פשוט צילום מסך של שיעור הקוד האינטראקטיבי שלנו, שהוכן כדי להקל על הכנת כתוביות ותרגום. עדיף לצפות בשיעורים שלנו בכתובת:
https://www.khanacademy.org/cs/programming/This is just a screen grab of our interactive coding talk-through, prepared to make captioning and translation easier. It is better to watch our talk-throughs here:
https://www.khanacademy.org/cs/programming/ - Video Language:
- English
- Duration:
- 06:12
רועי חרמוני edited Hebrew subtitles for Arrays of Objects (Video Version) | ||
nataly.eliyahu edited Hebrew subtitles for Arrays of Objects (Video Version) | ||
nataly.eliyahu edited Hebrew subtitles for Arrays of Objects (Video Version) |