ויקיספר hewikibooks https://he.wikibooks.org/wiki/%D7%A2%D7%9E%D7%95%D7%93_%D7%A8%D7%90%D7%A9%D7%99 MediaWiki 1.46.0-wmf.26 first-letter מדיה מיוחד שיחה משתמש שיחת משתמש ויקיספר שיחת ויקיספר קובץ שיחת קובץ מדיה ויקי שיחת מדיה ויקי תבנית שיחת תבנית עזרה שיחת עזרה קטגוריה שיחת קטגוריה שער שיחת שער מדף שיחת מדף TimedText TimedText talk יחידה שיחת יחידה אירוע שיחת אירוע מבוא לתכנות של קבוצת בטא/קורס אלפא 0 30658 180346 179294 2026-05-04T09:24:02Z The duke 19 /* איך מחפשים משהו בvim? */ 180346 wikitext text/x-wiki דף מידע מקוצר לתלמידי קורס אלפא - קורס מבוא לקבוצת בטא שמתאים לבתי ספר. = מעקב מיקרו הרצאות באלפא = [[מבוא לתכנות של קבוצת בטא/קורס אלפא/מיקרו הרצאות|זה פה.]] = תזכורות - לינוקס = === מה כותבים כדי להפעיל את הלינוקס? === <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> virtualbox </source> === יש לי כבר משתמש במחשב שם אבל לא מתחבר לי פה === כי אין לך משתמש במחשב פה. זה לא חשבונות גוגל, כל מחשב מנהל את המשתמשים של עצמו. === איך בודקים אם יש לי משתמש על המחשב? === מריצים את הפקודה הזו עם שם המשתמש שלכם במקום username: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> id username </source> אם יש לכם משתמש הוא יכתוב לכם מה מספר המשתמש שלו ועוד פרטים עליו. אם אין לכם, הוא יגיד שאין משתמש כזה. === אין לי משתמש ושכחתי את הפקודה ליצירת משתמש === זאת הפקודה, עם שם המשתמש שלכם במקום username: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> adduser username </source> * '''זה מבקש סיסמה, אנחנו לא יודעים מה הסיסמה שנתנו לנו מבית הספר''' לא מעניין אותנו סיסמת משרד החינוך. זה לא קשור. אנחנו צריכים שתמציאו סיסמה למשתמש שאתם יוצרים עכשיו בלינוקס. * '''הוא לא כותב לי את הסיסמה!''' הוא קיבל את הסיסמה שכתבת, הוא פשוט לא רוצה שאני אראה את הסיסמה שלך. * '''כתבתי סיסמה ולחצתי enter, מה הוא רוצה עכשיו?''' שוב את אותה סיסמה. לוודא שלא טעיתם. * '''הוא שואל אותי דברים''' אל תענו לו, הוא לא חייב לדעת. תלחצו enter כדי לא לענות. ==== זהו, סיימתי ליצור משתמש, מה עכשיו? ==== עכשיו לחזור לטרמינל 7: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> CTRL+ALT F7 </source> ולהתחבר עם שם וסיסמה. === יצרתי כבר משתמש אבל שכחתי את הסיסמה === 1) עברו לטרמינל 1: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> CTRL+ALT F1 </source> 2) הכניסו שם משתמש root 3) הכניסו סיסמת root (עוזרי המדריכים ועופר יעזרו עם הסיסמה) 4) השתמשו בפקודה של שינוי הסיסמה, עם שם המשתמש שלכם במקום username: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> passwd username </source> 5) סיימתם? חזרה לטרמינל 7: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> CTRL+ALT F7 </source> ולהתחבר עם שם וסיסמה. == פקודות לא עובדות, הטרמינל השתגע. מה עושים? == לוחצים כמה פעמים <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> CTRL+C </source> זה מרגיע את הטרמינל. == איך מגדילים את המסך? == בוחרים בתפריט של הציפור System settings, ואז screen resolution. הרזולוציה שאנחנו רוצים היא 1920x1080. אחרי שבוחרים, לוחצים ok כדי שלא יחזור לרזולוציה הקודמת, ואז save כדי שישמור. וזהו, אפשר לסגור את החלון של הגדרות מסך. == הפקודה whatis לא עובדת לי == נתקן את זה בגירסה 3 של הלינוקס של הכיתה. בינתיים תצטרכו לתקן בעצמכם, שזה אומר לייצר את מסד הנתונים של whatis שחסר אצלכם. וזה אומר להיכנס בתור root (המנטורים יעזרו עם זה), להריץ את הפקודה שמתקנת את מסד הנתונים הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mandb </source> וכשהוא מסיים עם התיקונים שלו לצאת מהחשבון של root בעזרת הפקודה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> עכשיו whatis יעבוד. == קיבלתי מחשב נייד ממשרד החינוך! איך דואגים שיהיה עליו לינוקס? == למחשבים שנותנים משרד החינוך יש דיסק די קטן, לכן לא נתקין עליהם מכונה וירטואלית עם לינוקס מלא, אלא נפעיל את מערכת הלינוקס שקיימת בwindows ונתקין עליה רק מה שאנחנו צריכים. שלא יתפוס הרבה מקום. ובשביל זה יש לנו את [[מבוא_לתכנות_של_קבוצת_בטא/קורס אלפא/המדריך המהיר להתקנת לינוקס WSL על הנייד של משרד החינוך|המדריך המהיר להתקנת לינוקס WSL על הנייד של משרד החינוך]]. = תזכורות - כלים ליצירת תוכנה = === מה היתה הפקודה של העורך טקסט כדי לכתוב קוד בשפת C? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> vim hello.c </source> === מה זה vim? === זה העורך טקסט החביב עליכם, שאיתו אתם עורכים את הקוד. === ואיך מקמפלים? === כתוב ב[[מבוא_לתכנות_של_קבוצת_בטא#קימפול_(הידור)|בטא ספר]]. === מה זה בכלל לקמפל? === גם כתוב ב[[מבוא_לתכנות_של_קבוצת_בטא#קימפול_(הידור)|בטא ספר]]. === איפה הקוד hello world שאני אמור לקמפל? === בקובץ hello.c שכתבתם במפגש הקודם. אם כתבתם ושמרתם אותו. בואו נחפש אותו: <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> הוא שם? אם כן, נסו לראות מה יש בתוכו: <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> cat hello.c </source> אם ראיתם את הקוד, מצוין. לא מצאתם את הקובץ? מצאתם אבל אין בתוכו את הקוד? אז תצטרכו לכתוב את הקוד מחדש. [[מבוא_לתכנות_של_קבוצת_בטא#כתיבת_הקוד|רק 7 שורות, לא סיפור]]. === הקומפיילר כועס עלי וכותב דברים === אז יש באג בקוד: משהו כתוב לא נכון. בדקו לאן הקומפיילר מצביע, שם הבעיה. === קימפלתי, הצליח, מה עכשיו? === [[מבוא_לתכנות_של_קבוצת_בטא#הרצה|להריץ את התוכנה]] ולוודא שהיא עושה מה שצריך. ==== היא לא עושה מה שצריך ==== יש באג. לכו לתקן את הקוד בvim. לא לשכוח לקמפל שוב אחרי שמתקנים. ==== תיקנתי, אבל התוכנה עדיין עושה את אותה בעיה ==== קימפלתם אחרי התיקון? אם לא מקמפלים, המחשב לא בונה את התוכנה לפי ההוראות החדשות. === קימפלתי, הרצתי, עובד. מה עכשיו? === מזל טוב, עליתם מחגורה שקופה לחגורה לבנה! # בקשו מעופר שיכניס אתכם לטבלת משחק קוד נינג'ה של בטא. # פתרו [[betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|אתגרי C נוספים מטבלת האתגרים של בטא]] וקבלו עוד נקודות! ==== זה אתגרים קשים מדי! לא הבנתי כלום! ==== היעזרו בתזכורות שפת C שמופיעות למטה בתור התחלה. ואז לימדו מ[https://he.wikibooks.org/wiki/%D7%A9%D7%A4%D7%AA_C ויקיספר C] ותצליחו לפתור. = תזכורות - שפת C = === איך נראה הקוד של תוכנה בסיסית? === ראו [[מבוא_לתכנות_של_קבוצת_בטא#כתיבת_הקוד|הhello world בבטא ספר]]. === איך מדפיסים למסך? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> printf("hello"); </source> === איך מגדירים משתנה למספרים שלמים? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> int foo; </source> === איך מקבלים מספר שלם מהמקלדת? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> scanf("%d", &foo); </source> === איך מדפיסים למסך טקסט עם ערך ממשתנה? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> printf("here: %d", foo); </source> === איך כותבים תנאי? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> if(a > b) { } </source> === איך כותבים תנאי עם else? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> if(a > b) { } else { } </source> === איך כותבים שרשרת תנאים? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> if(a > b) { } else if(a <= b) { } else { } </source> [[קטגוריה:מבוא לתכנות של קבוצת בטא]] === איפה אתגרי בטא בשפת C? === ב[[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|טבלה בויקיברסיטה]]. === מאיפה אפשר ללמוד עוד שפת C? === ב[[:b:he:שפת C|ויקיספר C]]. === איפה כתוב כמה נקודות עשיתי בשפת C? === ב[[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#פעילים|טבלת משחק קוד נינג'ה בויקיברסיטה]]. ==== מה המיקום שלי במשחק "סמוראי C"? ==== אם יש לכם פחות מ5 נקודות בשפת C, אז עדיין לא נכנסתם למשחק "סמוראי C". אם יש לכם 5 נקודות ומעלה, חפשו ב[[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#הטבלה_2|טבלת סמוראי C בויקיברסיטה]]. = תזכורות - עבודה עם vim = === איך כותבים פה קוד? === לוחצים על <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> i </source> ואז vim עובר למצב insert. במצב הזה אפשר לכתוב. === כתבתי קוד. איך שומרים? === קודם כל מקש <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> Esc </source> כדי לצאת ממצב insert למצב פקודות. ואז <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> :w </source> זה אמור לשמור את הקובץ. vim כותב לכם בתחתית החלון אם הוא הצליח. === שמרתי, איך יוצאים? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> :q </source> === אי אפשר לשמור ולצאת במכה אחת? === אפשר: <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> :wq </source> === כתבתי שטויות בטעות. איך יוצאים בלי לשמור? === מכריחים אותו לצאת: <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> :q! </source> === vim לא עושה מה שאני אומר לו. הוא השתגע, מה עושים? === לוחצים על מקש Esc כמה פעמים. זה מוציא אותו מכל מיני מצבים שאולי הוא נכנס אליהם. === איך מחפשים משהו בvim? === בעזרת <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> / </source> '''ואז Enter.''' לדוגמה, אם רוצים לחפש את המילה size כותבים: <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> /size </source> '''ואז Enter.''' אם רוצים את המקום הבא שבו המילה נמצאת לוחצים: <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> n </source> כמה פעמים שרוצים. אם רוצים את המקום הקודם שבו מצאו את המילה לוחצים: <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> N </source> כמה פעמים שרוצים. אם נמאס, לוחצים מקש Esc ויוצאים מהחיפוש. וזהו.{{הערה|לא באמת זהו[[/שינוי קוד משחק|,]] יש את המשימה האחרונה[[מבוא לתכנות של קבוצת בטא/קורס אלפא/שינוי קוד משחק בג'וליה|.]]..}} = הערות שוליים = {{הערות שוליים}} jxlw2h6pmppvymo3siydgpaewznl2v6 180347 180346 2026-05-04T09:24:26Z The duke 19 /* איך מחפשים משהו בvim? */ 180347 wikitext text/x-wiki דף מידע מקוצר לתלמידי קורס אלפא - קורס מבוא לקבוצת בטא שמתאים לבתי ספר. = מעקב מיקרו הרצאות באלפא = [[מבוא לתכנות של קבוצת בטא/קורס אלפא/מיקרו הרצאות|זה פה.]] = תזכורות - לינוקס = === מה כותבים כדי להפעיל את הלינוקס? === <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> virtualbox </source> === יש לי כבר משתמש במחשב שם אבל לא מתחבר לי פה === כי אין לך משתמש במחשב פה. זה לא חשבונות גוגל, כל מחשב מנהל את המשתמשים של עצמו. === איך בודקים אם יש לי משתמש על המחשב? === מריצים את הפקודה הזו עם שם המשתמש שלכם במקום username: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> id username </source> אם יש לכם משתמש הוא יכתוב לכם מה מספר המשתמש שלו ועוד פרטים עליו. אם אין לכם, הוא יגיד שאין משתמש כזה. === אין לי משתמש ושכחתי את הפקודה ליצירת משתמש === זאת הפקודה, עם שם המשתמש שלכם במקום username: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> adduser username </source> * '''זה מבקש סיסמה, אנחנו לא יודעים מה הסיסמה שנתנו לנו מבית הספר''' לא מעניין אותנו סיסמת משרד החינוך. זה לא קשור. אנחנו צריכים שתמציאו סיסמה למשתמש שאתם יוצרים עכשיו בלינוקס. * '''הוא לא כותב לי את הסיסמה!''' הוא קיבל את הסיסמה שכתבת, הוא פשוט לא רוצה שאני אראה את הסיסמה שלך. * '''כתבתי סיסמה ולחצתי enter, מה הוא רוצה עכשיו?''' שוב את אותה סיסמה. לוודא שלא טעיתם. * '''הוא שואל אותי דברים''' אל תענו לו, הוא לא חייב לדעת. תלחצו enter כדי לא לענות. ==== זהו, סיימתי ליצור משתמש, מה עכשיו? ==== עכשיו לחזור לטרמינל 7: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> CTRL+ALT F7 </source> ולהתחבר עם שם וסיסמה. === יצרתי כבר משתמש אבל שכחתי את הסיסמה === 1) עברו לטרמינל 1: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> CTRL+ALT F1 </source> 2) הכניסו שם משתמש root 3) הכניסו סיסמת root (עוזרי המדריכים ועופר יעזרו עם הסיסמה) 4) השתמשו בפקודה של שינוי הסיסמה, עם שם המשתמש שלכם במקום username: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> passwd username </source> 5) סיימתם? חזרה לטרמינל 7: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> CTRL+ALT F7 </source> ולהתחבר עם שם וסיסמה. == פקודות לא עובדות, הטרמינל השתגע. מה עושים? == לוחצים כמה פעמים <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> CTRL+C </source> זה מרגיע את הטרמינל. == איך מגדילים את המסך? == בוחרים בתפריט של הציפור System settings, ואז screen resolution. הרזולוציה שאנחנו רוצים היא 1920x1080. אחרי שבוחרים, לוחצים ok כדי שלא יחזור לרזולוציה הקודמת, ואז save כדי שישמור. וזהו, אפשר לסגור את החלון של הגדרות מסך. == הפקודה whatis לא עובדת לי == נתקן את זה בגירסה 3 של הלינוקס של הכיתה. בינתיים תצטרכו לתקן בעצמכם, שזה אומר לייצר את מסד הנתונים של whatis שחסר אצלכם. וזה אומר להיכנס בתור root (המנטורים יעזרו עם זה), להריץ את הפקודה שמתקנת את מסד הנתונים הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mandb </source> וכשהוא מסיים עם התיקונים שלו לצאת מהחשבון של root בעזרת הפקודה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> עכשיו whatis יעבוד. == קיבלתי מחשב נייד ממשרד החינוך! איך דואגים שיהיה עליו לינוקס? == למחשבים שנותנים משרד החינוך יש דיסק די קטן, לכן לא נתקין עליהם מכונה וירטואלית עם לינוקס מלא, אלא נפעיל את מערכת הלינוקס שקיימת בwindows ונתקין עליה רק מה שאנחנו צריכים. שלא יתפוס הרבה מקום. ובשביל זה יש לנו את [[מבוא_לתכנות_של_קבוצת_בטא/קורס אלפא/המדריך המהיר להתקנת לינוקס WSL על הנייד של משרד החינוך|המדריך המהיר להתקנת לינוקס WSL על הנייד של משרד החינוך]]. = תזכורות - כלים ליצירת תוכנה = === מה היתה הפקודה של העורך טקסט כדי לכתוב קוד בשפת C? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> vim hello.c </source> === מה זה vim? === זה העורך טקסט החביב עליכם, שאיתו אתם עורכים את הקוד. === ואיך מקמפלים? === כתוב ב[[מבוא_לתכנות_של_קבוצת_בטא#קימפול_(הידור)|בטא ספר]]. === מה זה בכלל לקמפל? === גם כתוב ב[[מבוא_לתכנות_של_קבוצת_בטא#קימפול_(הידור)|בטא ספר]]. === איפה הקוד hello world שאני אמור לקמפל? === בקובץ hello.c שכתבתם במפגש הקודם. אם כתבתם ושמרתם אותו. בואו נחפש אותו: <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> הוא שם? אם כן, נסו לראות מה יש בתוכו: <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> cat hello.c </source> אם ראיתם את הקוד, מצוין. לא מצאתם את הקובץ? מצאתם אבל אין בתוכו את הקוד? אז תצטרכו לכתוב את הקוד מחדש. [[מבוא_לתכנות_של_קבוצת_בטא#כתיבת_הקוד|רק 7 שורות, לא סיפור]]. === הקומפיילר כועס עלי וכותב דברים === אז יש באג בקוד: משהו כתוב לא נכון. בדקו לאן הקומפיילר מצביע, שם הבעיה. === קימפלתי, הצליח, מה עכשיו? === [[מבוא_לתכנות_של_קבוצת_בטא#הרצה|להריץ את התוכנה]] ולוודא שהיא עושה מה שצריך. ==== היא לא עושה מה שצריך ==== יש באג. לכו לתקן את הקוד בvim. לא לשכוח לקמפל שוב אחרי שמתקנים. ==== תיקנתי, אבל התוכנה עדיין עושה את אותה בעיה ==== קימפלתם אחרי התיקון? אם לא מקמפלים, המחשב לא בונה את התוכנה לפי ההוראות החדשות. === קימפלתי, הרצתי, עובד. מה עכשיו? === מזל טוב, עליתם מחגורה שקופה לחגורה לבנה! # בקשו מעופר שיכניס אתכם לטבלת משחק קוד נינג'ה של בטא. # פתרו [[betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|אתגרי C נוספים מטבלת האתגרים של בטא]] וקבלו עוד נקודות! ==== זה אתגרים קשים מדי! לא הבנתי כלום! ==== היעזרו בתזכורות שפת C שמופיעות למטה בתור התחלה. ואז לימדו מ[https://he.wikibooks.org/wiki/%D7%A9%D7%A4%D7%AA_C ויקיספר C] ותצליחו לפתור. = תזכורות - שפת C = === איך נראה הקוד של תוכנה בסיסית? === ראו [[מבוא_לתכנות_של_קבוצת_בטא#כתיבת_הקוד|הhello world בבטא ספר]]. === איך מדפיסים למסך? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> printf("hello"); </source> === איך מגדירים משתנה למספרים שלמים? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> int foo; </source> === איך מקבלים מספר שלם מהמקלדת? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> scanf("%d", &foo); </source> === איך מדפיסים למסך טקסט עם ערך ממשתנה? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> printf("here: %d", foo); </source> === איך כותבים תנאי? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> if(a > b) { } </source> === איך כותבים תנאי עם else? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> if(a > b) { } else { } </source> === איך כותבים שרשרת תנאים? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> if(a > b) { } else if(a <= b) { } else { } </source> [[קטגוריה:מבוא לתכנות של קבוצת בטא]] === איפה אתגרי בטא בשפת C? === ב[[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|טבלה בויקיברסיטה]]. === מאיפה אפשר ללמוד עוד שפת C? === ב[[:b:he:שפת C|ויקיספר C]]. === איפה כתוב כמה נקודות עשיתי בשפת C? === ב[[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#פעילים|טבלת משחק קוד נינג'ה בויקיברסיטה]]. ==== מה המיקום שלי במשחק "סמוראי C"? ==== אם יש לכם פחות מ5 נקודות בשפת C, אז עדיין לא נכנסתם למשחק "סמוראי C". אם יש לכם 5 נקודות ומעלה, חפשו ב[[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#הטבלה_2|טבלת סמוראי C בויקיברסיטה]]. = תזכורות - עבודה עם vim = === איך כותבים פה קוד? === לוחצים על <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> i </source> ואז vim עובר למצב insert. במצב הזה אפשר לכתוב. === כתבתי קוד. איך שומרים? === קודם כל מקש <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> Esc </source> כדי לצאת ממצב insert למצב פקודות. ואז <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> :w </source> זה אמור לשמור את הקובץ. vim כותב לכם בתחתית החלון אם הוא הצליח. === שמרתי, איך יוצאים? === <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> :q </source> === אי אפשר לשמור ולצאת במכה אחת? === אפשר: <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> :wq </source> === כתבתי שטויות בטעות. איך יוצאים בלי לשמור? === מכריחים אותו לצאת: <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> :q! </source> === vim לא עושה מה שאני אומר לו. הוא השתגע, מה עושים? === לוחצים על מקש Esc כמה פעמים. זה מוציא אותו מכל מיני מצבים שאולי הוא נכנס אליהם. === איך מחפשים משהו בvim? === בעזרת <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> / </source> '''ואז Enter.''' לדוגמה, אם רוצים לחפש את המילה size כותבים: <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> /size </source> '''ואז Enter.''' אם רוצים את המקום הבא שבו המילה נמצאת לוחצים: <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> n </source> כמה פעמים שרוצים. אם רוצים את המקום הקודם שבו מצאו את המילה לוחצים: <source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS"> N </source> כמה פעמים שרוצים. אם נמאס, לוחצים מקש Esc ויוצאים מהחיפוש. וזהו.{{הערה|לא באמת זהו[[/שינוי קוד משחק|,]] יש את המשימה האחרונה[[/שינוי קוד משחק בג'וליה|.]]..}} = הערות שוליים = {{הערות שוליים}} 55af9v15ual5g5vg0gbf6ppn4qu4i42 מבוא לתכנות של קבוצת בטא/קורס אלפא/שינוי קוד משחק 0 30665 180340 179188 2026-05-04T09:10:08Z The duke 19 /* שינוי משחק שכתוב ב C */ 180340 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === כי סיימנו את המשימה המסכמת של קורס אלפא. ברוכים הבאים לקבוצת בטא, עכשיו באמת מתחילים לתכנת. === מה עוד אפשר לעשות? === אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שינוי משחק שכתוב בג'וליה = המשחק עם הכדור שראיתם בהצגת הקורסים כתוב בשפת ג'וליה. אבל במחזור הראשון של קורס אלפא לא הספקנו ללמוד על ג'וליה, אז נעשה את [[מבוא לתכנות של קבוצת בטא/קורס אלפא/שינוי קוד משחק בג'וליה|זה]] בפעם אחרת. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. איזה מזל שהרגע סיימתם את קורס אלפא. 🥳 ואם יש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|נסו להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! תודה שהשתתפתם, היה כיף, וניפגש במפגשים של קבוצת בטא. (ועד שתחזור הפגישה השבועית של בטא במתנ"ס, מוזמנים לבקש מעופר להיות עוזרי מדריך במחזור הבא של קורס אלפא.) עכשיו באמת זהו. 1c671yme64xxtq507omlio44xy2ohup 180341 180340 2026-05-04T09:11:39Z The duke 19 /* ממש מרוצים מעצמנו */ 180341 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === כי סיימנו את המשימה המסכמת של קורס אלפא. זה אומר שיש לנו את היכולות שנדרשות כדי להתקדם לדרגה 1. === מה עוד אפשר לעשות? === אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שינוי משחק שכתוב בג'וליה = המשחק עם הכדור שראיתם בהצגת הקורסים כתוב בשפת ג'וליה. אבל במחזור הראשון של קורס אלפא לא הספקנו ללמוד על ג'וליה, אז נעשה את [[מבוא לתכנות של קבוצת בטא/קורס אלפא/שינוי קוד משחק בג'וליה|זה]] בפעם אחרת. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. איזה מזל שהרגע סיימתם את קורס אלפא. 🥳 ואם יש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|נסו להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! תודה שהשתתפתם, היה כיף, וניפגש במפגשים של קבוצת בטא. (ועד שתחזור הפגישה השבועית של בטא במתנ"ס, מוזמנים לבקש מעופר להיות עוזרי מדריך במחזור הבא של קורס אלפא.) עכשיו באמת זהו. 6p02rak03w0nlgzf6aeil4dtzqw3c8b 180342 180341 2026-05-04T09:13:34Z The duke 19 /* ממש מרוצים מעצמנו */ 180342 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === כי סיימנו את המשימה המסכמת של קורס אלפא. למי ששרדו עד השלב הזה יש את היכולות שנדרשות כדי להתקדם לדרגה 1. === מה עוד אפשר לעשות? === אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שינוי משחק שכתוב בג'וליה = המשחק עם הכדור שראיתם בהצגת הקורסים כתוב בשפת ג'וליה. אבל במחזור הראשון של קורס אלפא לא הספקנו ללמוד על ג'וליה, אז נעשה את [[מבוא לתכנות של קבוצת בטא/קורס אלפא/שינוי קוד משחק בג'וליה|זה]] בפעם אחרת. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. איזה מזל שהרגע סיימתם את קורס אלפא. 🥳 ואם יש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|נסו להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! תודה שהשתתפתם, היה כיף, וניפגש במפגשים של קבוצת בטא. (ועד שתחזור הפגישה השבועית של בטא במתנ"ס, מוזמנים לבקש מעופר להיות עוזרי מדריך במחזור הבא של קורס אלפא.) עכשיו באמת זהו. fud0nrdxvy7eihi5av3dw4qvvq16lko 180343 180342 2026-05-04T09:14:41Z The duke 19 /* מה עוד אפשר לעשות? */ 180343 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === כי סיימנו את המשימה המסכמת של קורס אלפא. למי ששרדו עד השלב הזה יש את היכולות שנדרשות כדי להתקדם לדרגה 1. === מה עוד אפשר לעשות? === זה אמנם לא יתן לכם נקודות, אבל זה כיף: אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שינוי משחק שכתוב בג'וליה = המשחק עם הכדור שראיתם בהצגת הקורסים כתוב בשפת ג'וליה. אבל במחזור הראשון של קורס אלפא לא הספקנו ללמוד על ג'וליה, אז נעשה את [[מבוא לתכנות של קבוצת בטא/קורס אלפא/שינוי קוד משחק בג'וליה|זה]] בפעם אחרת. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. איזה מזל שהרגע סיימתם את קורס אלפא. 🥳 ואם יש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|נסו להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! תודה שהשתתפתם, היה כיף, וניפגש במפגשים של קבוצת בטא. (ועד שתחזור הפגישה השבועית של בטא במתנ"ס, מוזמנים לבקש מעופר להיות עוזרי מדריך במחזור הבא של קורס אלפא.) עכשיו באמת זהו. 7utz1x4lr9x1lj31pfn3hh1vv8f6kml 180344 180343 2026-05-04T09:15:36Z The duke 19 /* ממש מרוצים מעצמנו */ 180344 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === כי סיימנו את המשימה המסכמת של קורס אלפא. ואתם קרובים בעוד שתי נקודות לדרגה 1. === מה עוד אפשר לעשות? === זה אמנם לא יתן לכם נקודות, אבל זה כיף: אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שינוי משחק שכתוב בג'וליה = המשחק עם הכדור שראיתם בהצגת הקורסים כתוב בשפת ג'וליה. אבל במחזור הראשון של קורס אלפא לא הספקנו ללמוד על ג'וליה, אז נעשה את [[מבוא לתכנות של קבוצת בטא/קורס אלפא/שינוי קוד משחק בג'וליה|זה]] בפעם אחרת. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. איזה מזל שהרגע סיימתם את קורס אלפא. 🥳 ואם יש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|נסו להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! תודה שהשתתפתם, היה כיף, וניפגש במפגשים של קבוצת בטא. (ועד שתחזור הפגישה השבועית של בטא במתנ"ס, מוזמנים לבקש מעופר להיות עוזרי מדריך במחזור הבא של קורס אלפא.) עכשיו באמת זהו. 24qot189v66n9r35cuv15ip62257pgq 180345 180344 2026-05-04T09:16:12Z The duke 19 /* ממש מרוצים מעצמנו */ 180345 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === כי סיימנו את המשימה המסכמת של קורס אלפא. ואנחנו מתקרבים לדרגה 1. === מה עוד אפשר לעשות? === זה אמנם לא יתן לכם נקודות, אבל זה כיף: אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שינוי משחק שכתוב בג'וליה = המשחק עם הכדור שראיתם בהצגת הקורסים כתוב בשפת ג'וליה. אבל במחזור הראשון של קורס אלפא לא הספקנו ללמוד על ג'וליה, אז נעשה את [[מבוא לתכנות של קבוצת בטא/קורס אלפא/שינוי קוד משחק בג'וליה|זה]] בפעם אחרת. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. איזה מזל שהרגע סיימתם את קורס אלפא. 🥳 ואם יש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|נסו להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! תודה שהשתתפתם, היה כיף, וניפגש במפגשים של קבוצת בטא. (ועד שתחזור הפגישה השבועית של בטא במתנ"ס, מוזמנים לבקש מעופר להיות עוזרי מדריך במחזור הבא של קורס אלפא.) עכשיו באמת זהו. jjfwnyv98jza15tzvx7our5z9kbwk96 180348 180345 2026-05-04T09:25:15Z The duke 19 /* שינוי משחק שכתוב בג'וליה */ 180348 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === כי סיימנו את המשימה המסכמת של קורס אלפא. ואנחנו מתקרבים לדרגה 1. === מה עוד אפשר לעשות? === זה אמנם לא יתן לכם נקודות, אבל זה כיף: אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. איזה מזל שהרגע סיימתם את קורס אלפא. 🥳 ואם יש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|נסו להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! תודה שהשתתפתם, היה כיף, וניפגש במפגשים של קבוצת בטא. (ועד שתחזור הפגישה השבועית של בטא במתנ"ס, מוזמנים לבקש מעופר להיות עוזרי מדריך במחזור הבא של קורס אלפא.) עכשיו באמת זהו. tsrlz7bqk1ajxsoxtufomx9xqxjejcl 180349 180348 2026-05-04T09:26:35Z The duke 19 /* ממש מרוצים מעצמנו */ 180349 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === ובא לנו לשנות עוד דברים במשחק. === מה עוד אפשר לעשות? === זה אמנם לא יתן לכם נקודות, אבל זה כיף: אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. איזה מזל שהרגע סיימתם את קורס אלפא. 🥳 ואם יש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|נסו להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! תודה שהשתתפתם, היה כיף, וניפגש במפגשים של קבוצת בטא. (ועד שתחזור הפגישה השבועית של בטא במתנ"ס, מוזמנים לבקש מעופר להיות עוזרי מדריך במחזור הבא של קורס אלפא.) עכשיו באמת זהו. e9sj03okcate3oz72w3c28nbtbbm213 180350 180349 2026-05-04T09:26:48Z The duke 19 /* מה עוד אפשר לעשות? */ 180350 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === ובא לנו לשנות עוד דברים במשחק. ==== מה עוד אפשר לעשות? ==== זה אמנם לא יתן לכם נקודות, אבל זה כיף: אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. איזה מזל שהרגע סיימתם את קורס אלפא. 🥳 ואם יש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|נסו להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! תודה שהשתתפתם, היה כיף, וניפגש במפגשים של קבוצת בטא. (ועד שתחזור הפגישה השבועית של בטא במתנ"ס, מוזמנים לבקש מעופר להיות עוזרי מדריך במחזור הבא של קורס אלפא.) עכשיו באמת זהו. nraxc043oj03ng5ldexqe28gv5nj2a4 180351 180350 2026-05-04T10:02:31Z The duke 19 /* יש לי עוד רעיונות לשינויים! */ 180351 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === ובא לנו לשנות עוד דברים במשחק. ==== מה עוד אפשר לעשות? ==== זה אמנם לא יתן לכם נקודות, אבל זה כיף: אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. שהרגע סיימתם אותו. מזל טוב! 🥳 == מה, זהו? == נראה לכם?! רק התחלנו! אלא אם תכנות לא מעניין אתכם ובמפגש האחרון נרדמתם על המקלדת. במקרה כזה אז כן, זהו. ביי. == לא זהו! תכנות מאוד מעניין אותי! יש לי המון משחקים לשנות! == בדיוק! ואם היה לכם כיף לתכנת ויש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|זה הזמן להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! למעשה, אפשר להתקדם בדרגות בטא גם בזמן בית הספר, באותם מפגשים שבהם מתקיים קורס אלפא. דברו עם עופר אם תרצו להמשיך להתקדם ואולי גם להיות מנטורים במחזורים הבאים של קורס אלפא. אבל זה כבר לא קשור למדריך הזה. אז עכשיו באמת זהו. 4rvppuxincx139v55t44ehd16n6ao8u 180352 180351 2026-05-04T10:03:10Z The duke 19 /* יש לי עוד רעיונות לשינויים! */ 180352 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === ובא לנו לשנות עוד דברים במשחק. ==== מה עוד אפשר לעשות? ==== זה אמנם לא יתן לכם נקודות, אבל זה כיף: אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. שהרגע סיימתם אותו. מזל טוב! 🥳 == מה, זהו? == נראה לכם?! רק התחלנו! אלא אם תכנות לא מעניין אתכם ובמפגש האחרון נרדמתם על המקלדת. במקרה כזה אז כן, זהו. ביי. == לא זהו! תכנות מאוד מעניין אותי! יש לי המון משחקים לשנות! == בדיוק! ואם היה לכם כיף לתכנת ויש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|זה הזמן להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! למעשה, אפשר להתקדם בדרגות בטא גם בזמן בית הספר, באותם מפגשים שבהם מתקיים קורס אלפא. דברו עם עופר אם תרצו להמשיך להתקדם ואולי גם להיות מנטורים במחזורים הבאים של קורס אלפא. אבל זה כבר לא קשור למדריך הזה. אז עכשיו באמת זהו. dymm0oxb8r0rmfl5ye1o16dy52oocn3 180353 180352 2026-05-04T10:06:21Z The duke 19 /* לא זהו! תכנות מאוד מעניין אותי! יש לי המון משחקים לשנות! */ 180353 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === ובא לנו לשנות עוד דברים במשחק. ==== מה עוד אפשר לעשות? ==== זה אמנם לא יתן לכם נקודות, אבל זה כיף: אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. שהרגע סיימתם אותו. מזל טוב! 🥳 == מה, זהו? == נראה לכם?! רק התחלנו! אלא אם תכנות לא מעניין אתכם ובמפגש האחרון נרדמתם על המקלדת. במקרה כזה אז כן, זהו. ביי. == לא זהו! תכנות מאוד מעניין אותי! יש לי המון משחקים לשנות! == בדיוק! ואם היה לכם כיף לתכנת ויש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|זה הזמן להתקדם לדרגה 1 ומשם להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! == יש! איפה נפגשים בשביל להתקדם בבטא? == המפגשים של בטא במתנ"ס עדיין לא חזרו. אז בינתיים אפשר להתקדם בדרגות בטא בזמן בית הספר, באותם מפגשים שבהם מתקיים קורס אלפא. ואפשר גם להתקדם בבית. דברו עם עופר אם תרצו להמשיך להתקדם ואולי גם להיות מנטורים במחזורים הבאים של קורס אלפא. אבל זה כבר לא קשור למדריך הזה. אז עכשיו באמת זהו. 0ed6v50w14okjsbui3lg2bj0fkmkruo 180354 180353 2026-05-04T10:07:01Z The duke 19 /* לא זהו! תכנות מאוד מעניין אותי! יש לי המון משחקים לשנות! */ 180354 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === ובא לנו לשנות עוד דברים במשחק. ==== מה עוד אפשר לעשות? ==== זה אמנם לא יתן לכם נקודות, אבל זה כיף: אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. שהרגע סיימתם אותו. מזל טוב! 🥳 == מה, זהו? == נראה לכם?! רק התחלנו! אלא אם תכנות לא מעניין אתכם ובמפגש האחרון נרדמתם על המקלדת. במקרה כזה אז כן, זהו. ביי. == לא זהו! תכנות מאוד מעניין אותי! יש לי המון משחקים לשנות! == בדיוק! ואם היה לכם כיף לתכנת ויש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|זה הזמן להתקדם לדרגה 1 ומשם להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! == יש! איפה נפגשים בשביל להתקדם בבטא? == המפגשים של בטא במתנ"ס עדיין לא חזרו. אז בינתיים אפשר להתקדם בדרגות בטא בזמן בית הספר, באותם מפגשים שבהם מתקיים קורס אלפא. ואפשר גם להתקדם בבית. דברו עם עופר אם תרצו להמשיך להתקדם ואולי גם להיות מנטורים במחזורים הבאים של קורס אלפא. אבל זה כבר לא קשור למדריך הזה. אז עכשיו באמת זהו. ezmcrly1x5gvuo3kho09afo9f7cdq8t 180355 180354 2026-05-04T10:07:27Z The duke 19 /* יש! איפה נפגשים בשביל להתקדם בבטא? */ 180355 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === ובא לנו לשנות עוד דברים במשחק. ==== מה עוד אפשר לעשות? ==== זה אמנם לא יתן לכם נקודות, אבל זה כיף: אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. שהרגע סיימתם אותו. מזל טוב! 🥳 == מה, זהו? == נראה לכם?! רק התחלנו! אלא אם תכנות לא מעניין אתכם ובמפגש האחרון נרדמתם על המקלדת. במקרה כזה אז כן, זהו. ביי. == לא זהו! תכנות מאוד מעניין אותי! יש לי המון משחקים לשנות! == בדיוק! ואם היה לכם כיף לתכנת ויש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|זה הזמן להתקדם לדרגה 1 ומשם להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! == יש! איפה נפגשים בשביל להתקדם בבטא? == המפגשים של בטא במתנ"ס עדיין לא חזרו. אז בינתיים אפשר להתקדם בדרגות בטא בזמן בית הספר, באותם מפגשים שבהם מתקיים קורס אלפא. ואפשר גם להתקדם בבית. דברו עם עופר אם תרצו להמשיך להתקדם ואולי גם להיות מנטורים במחזורים הבאים של קורס אלפא. אבל זה כבר לא קשור למדריך הזה. אז עכשיו באמת זהו. jgqzvakc3op4jratnz77it3kw938qdu 180356 180355 2026-05-04T10:12:44Z The duke 19 /* מה, זהו? */ 180356 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === ובא לנו לשנות עוד דברים במשחק. ==== מה עוד אפשר לעשות? ==== זה אמנם לא יתן לכם נקודות, אבל זה כיף: אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. שהרגע סיימתם אותו. מזל טוב! 🥳 == מה, זהו? == נראה לכם?! רק התחלנו! אלא אם תכנות לא מעניין אתכם ובמפגש האחרון נרדמתם על המקלדת. במקרה כזה עדיף שתלמדו גיאוגרפיה, חשבון וזה. היה כיף, תבואו לבקר. == לא זהו! תכנות מאוד מעניין אותי! יש לי המון משחקים לשנות! == בדיוק! ואם היה לכם כיף לתכנת ויש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא! [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|זה הזמן להתקדם לדרגה 1 ומשם להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! == יש! איפה נפגשים בשביל להתקדם בבטא? == המפגשים של בטא במתנ"ס עדיין לא חזרו. אז בינתיים אפשר להתקדם בדרגות בטא בזמן בית הספר, באותם מפגשים שבהם מתקיים קורס אלפא. ואפשר גם להתקדם בבית. דברו עם עופר אם תרצו להמשיך להתקדם ואולי גם להיות מנטורים במחזורים הבאים של קורס אלפא. אבל זה כבר לא קשור למדריך הזה. אז עכשיו באמת זהו. e61puidpmrsc54q1vm53tulvkntnnja 180357 180356 2026-05-04T10:14:13Z The duke 19 /* לא זהו! תכנות מאוד מעניין אותי! יש לי המון משחקים לשנות! */ 180357 wikitext text/x-wiki = שינוי משחק שכתוב ב C = == מה עושים פה? == # '''מייצרים משחק''' ## מורידים קוד של משחק ## מקמפלים אותו ## מריצים אותו ומשחקים בכיף שלנו. ## מקבלים נקודה בתחום OS. ## מרוצים מעצמכם. # '''משנים את המשחק''' ## עושים שינויים בקוד ## מקמפלים אותו ## מריצים אותו ## מקבלים נקודה בתחום C. ## ממש מרוצים מעצמכם. == איך מתחילים? == מתחילים עם להוריד את הקוד מהאינטרנט. עברו לכותרת "משיגים את הקוד של המשחק". === ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב === {{מוסתר|מי שניסו כבר פעם אחת ורוצים לנקות הכל ולנסות שוב מהתחלה, לחצו על "הצגה".|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= ננקה מה שעשינו בנסיון הקודם. פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> rm -r ~/games </source> וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך. }} == משיגים את הקוד של המשחק == === מאיפה מורידים את הקוד? === [https://github.com/duke-of-spacingham/raylib_c_arkanoid/archive/refs/heads/main.zip מהקישור הזה]. סיים לרדת? קדימה לשלב הבא. === מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים === יוצרים את תיקיית המשחקים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mkdir games </source> נכנסים אליה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd games </source> מעבירים אליה את המשחק מהתיקיה שאליה הורדנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> mv ~/Downloads/raylib_c_arkanoid-main.zip . </source> שתדעו: הסימן ~ שקוראים לו "טילדה" או "גל" אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי". סימן ה"נקודה" בפקודה הזו אומר "התיקיה שאנחנו נמצאים בה עכשיו". {{מוסתר|ואם כתבתי את הפקודה אבל הלינוקס כותב לי דברים ונראה שהוא כועס עלי? |bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=זכרתם להוריד את הקובץ בשלב "מאיפה מורידים את הקוד"? אם לא, אז איך הוא יעביר קובץ שלא קיים? תורידו את הקובץ וזה יעבוד.}} === ופותחים את הקובץ שהורדנו === פותחים בעזרת הפקודה unzip: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> unzip raylib_c_arkanoid-main.zip </source> עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק. אל תאמינו לי. תעשו <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> כדי לבדוק. נוצרה לכם התיקיה של המשחק? יופי. '''היכנסו אליה''' והמשיכו לקימפול. == קדימה קימפול. איך מקמפלים את המשחק? == === מורידים ומתקינים את כל הספריות שצריך לקימפול === שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול. {{מוסתר|ואם אני במכונה וירטואלית בבית, שלא התקינו בה את הספריות?|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2=אז תצטרכו להתקין אותן, ככה: יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו. אז ניכנס לתיקיה של המשחק: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cd raylib_c_arkanoid-main </source> נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.): <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> su </source> ונריץ בתור מנהל המערכת את הסקריפט של ההורדות: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./raylib_dependencies_install.sh </source> מחכים, מחכים מחכים, עד שסיים את ההורדות. וכשמסיים '''יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס''': <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> exit </source> }} === מכינים לקומפיילר את כל מה שהוא צריך === האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake. אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake -S . -B build </source> התוכנה כותבת כמה שורות למשך ואז עובדת איזה דקה וחצי בלי להגיד כלום. תנו לה לעבוד, בלי לחץ. {{מוסתר|ואם לא עובד לי? לינוקס כועס עלי! הוא אומר דברים באנגלית שאם אני אטרח לקרוא אותם אני אגלה שהם אומרים שחסר לי איזה קובץ!|bg1=#F0F080|bg2=#FFFFA0|ta2= right|2= הקובץ קיים והוא בתיקיה הנכונה. פשוט אתם בתיקיה הלא נכונה. חיזרו לשלב "'''ופותחים את הקובץ שהורדנו'''" ושימו לב טוב מה כתוב אחרי הרצת פקודת הunzip. כן, כן, לקרוא כל מה שכתוב. לא לדלג על שורות. בעיקר לא על האחרונה. }} סיים? יופי. זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. === מקמפלים === עכשיו מקמפלים אל התיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> יופי, רק תבדקו שאכן יש תיקיה build: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls </source> ושבתוכה יש את התוכנה שיצרנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ls build/arkanoid </source> רואים שם arkanoid ירוק? זה המשחק שלכם. === מריצים את המשחק === נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.) בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות. === מקבלים נקודה בתחום OS === קראו לעופר שיראה אתכם משחקים במשחק שקימפלתם. זה יתן לכם נקודה. === מרוצים מעצמנו === ובצדק. == איך משנים את המשחק? == ננסה לשנות את הגודל של הכדור. למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src. אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> vim src/main.c </source> === איפה נמצא פה גודל של כדור? === אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - [[:w:רדיוס|הרדיוס של העיגול]]. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.) איך מחפשים מילה בvim? כתוב לכם [[מבוא_לתכנות_של_קבוצת_בטא/קורס_אלפא#איך_מחפשים_משהו_בvim?|בתזכורות של קורס אלפא]]. === מצאתי את הגודל! איך לשנות אותו? === מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ. יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק. תזכורת, ככה מקמפלים את המשחק הזה: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> cmake --build build </source> ואז מריצים: <source lang = "shell" line="GESHI_NORMAL_LINE_NUMBERS"> ./build/arkanoid/arkanoid </source> השתנה הגודל של הכדור? '''ניצחון.''' === מקבלים נקודה בתחום C === קראו לעופר שיראה אתכם משחקים במשחק ששיניתם בו דברים. זה יתן לכם נקודה. === ממש מרוצים מעצמנו === ובא לנו לשנות עוד דברים במשחק. ==== מה עוד אפשר לעשות? ==== זה אמנם לא יתן לכם נקודות, אבל זה כיף: אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתחילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות? או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות. = שיניתי דברים במשחק! איזה כיף. = == יש לי עוד רעיונות לשינויים! == מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות. בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו. שהרגע סיימתם אותו. מזל טוב! 🥳 == מה, זהו? == נראה לכם?! רק התחלנו! אלא אם תכנות לא מעניין אתכם ובמפגש האחרון נרדמתם על המקלדת. במקרה כזה עדיף שתלמדו גיאוגרפיה, חשבון וזה. היה כיף, תבואו לבקר. == לא זהו! תכנות מאוד מעניין אותי! יש לי המון משחקים לשנות! == בדיוק! ואם היה לכם כיף לתכנת ויש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: '''קבוצת בטא!''' [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#C_Challenges|זה הזמן להתקדם לדרגה 1 ומשם להגיע]] [[:betawikiversity:לימודי_מחשבים_בשיטת_בטא#משחק_Code_Ninja|לחגורה צהובה בבטא]]. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם! == יש! איפה נפגשים בשביל להתקדם בבטא? == המפגשים של בטא במתנ"ס עדיין לא חזרו. אז בינתיים אפשר להתקדם בדרגות בטא בזמן בית הספר, באותם מפגשים שבהם מתקיים קורס אלפא. ואפשר גם להתקדם בבית. דברו עם עופר אם תרצו להמשיך להתקדם ואולי גם להיות מנטורים במחזורים הבאים של קורס אלפא. אבל זה כבר לא קשור למדריך הזה. אז עכשיו באמת זהו. 9gmoguvautt93io9pfsbky1fheirtvm