תוכן עניינים:

קישורים ממשתנים בחוטים עם קוביית סוכר: 10 שלבים
קישורים ממשתנים בחוטים עם קוביית סוכר: 10 שלבים

וִידֵאוֹ: קישורים ממשתנים בחוטים עם קוביית סוכר: 10 שלבים

וִידֵאוֹ: קישורים ממשתנים בחוטים עם קוביית סוכר: 10 שלבים
וִידֵאוֹ: Section 8 2024, יולי
Anonim
קישורים ממשתנים בחוטים עם קוביית סוכר
קישורים ממשתנים בחוטים עם קוביית סוכר

אני כל כך שמח שהצטרפת אלי שוב! זה אומר שהוומפוס עדיין לא אכל אותך. טוֹב!

לאלו מכם שאינם מכירים, זוהי קבוצת הדרכות שאני מכינה כדי לסייע לבת דודתי הקסומה המדהימה של אוצ'י-סקוטצ'י בפרויקט הבכיר שלה. הדרכות אלה נועדו להוות אסמכתא למה שאתה יכול לעשות עם כמה מתכונות התכנות של חוט וקוביות סוכר. אם אתה רוצה לעקוב, תוכל למצוא כאן את ההדרכה הראשונה.

במדריך האחרון בניתי קבוצה קטנה של חדרים שהנגן יכול לחקור. הוספתי אובייקט Wumpus ועשיתי קוד כללי לחדר כדי לשנות את מה שמוצג בכל חדר בהתאם למקום שבו Wumpus נמצא.

שלב 1: צור את הנגן שלך

צור את השחקן שלך
צור את השחקן שלך

שלב זה פשוט מאוד. בעיקרו של דבר אני משתמש באותו קוד כמו $ wumpus שלי, אבל עם משתנה $ player במקום זאת.

שלב 2: קוד חדר חדש

קוד חדר חדש
קוד חדר חדש

שינית את קוד החדר הגנרי שלך כך שהערך של $ player הוא החדר הנוכחי. לאחר מכן השווה $ wumpus לשחקן $ במקום החדר הנוכחי.

זהו שינוי מינורי, ואינו הכרחי לחלוטין, אך אני אוהב לשמור על הקוד שלי מאורגן.

שלב 3: יצירת קישור ממשתנה

יצירת קישור מתוך משתנה
יצירת קישור מתוך משתנה

לבסוף, אני רוצה להחליף את הקישור בחדר ההתחלה שלי לכזה שמשתנה בהתאם לערך של $ player. ניתן לעשות זאת באמצעות הפונקציה "" ב- Sugarcube. תוכל לקרוא עוד על כך בדף התיעוד של Sugarcube.

המחרוזת הראשונה אחרי הפקודה שלנו היא הביטוי שיופיע בקטע שלנו. השני הוא שם הקטע שאליו ברצוננו לקשר. אני משתמש ב"צוד את הגוזל! " כביטוי שלי, אך נוכל להשתמש במשתנה שלנו במקום אם נרצה שהשחקן יידע לאן הוא הולך לפני כן, כך:

שלב 4: בדוק

מִבְחָן
מִבְחָן
מִבְחָן
מִבְחָן

כאשר אתה בודק את הקוד שלך, אתה אמור לגלות שהקישור שלך הוחלף בכל ביטוי שכתבת קודם. לחיצה עליו מעבירה אותך לחדר אקראי במשחק שלך.

למרבה הצער, זה יכול גם לקחת אותך ישר לחדר Wumpus! זה לא משנה הרבה כרגע, אבל במשחק אמיתי זה יהיה משחק מיידי. אנחנו צריכים לתקן את זה.

שלב 5: הוסף רשימת חדרים

הוסף רשימת חדרים
הוסף רשימת חדרים

ראשית, אנו הולכים ליצור רשימת חדרים, כדי להקל על ניהול החדרים. על ידי הצהרת מערך זה, אנו יכולים להשתמש בו כדי להגדיר את ערכי $ player ו- $ wumpus שלנו מבלי לחזור על הקוד. יש לו גם יתרון נוסף שנחקור בהמשך.

בדיקה עם קוד זה אמורה להתנהג בדיוק כפי שהייתה בעבר.

שלב 6: חיסול חדרים

חדרי חיסול
חדרי חיסול

הוספתי שורה קוד אחת לקוד מלפני (מודגש).

למערכים ב- Sugarcube יש פונקציה מובנית המאפשרת לך למחוק מהם אלמנטים בשמם. במקרה זה, ברגע שאנו מקצה $ wumpus לחדר, נוכל למחוק את החדר הזה מרשימת החדרים $ שלנו. עם זאת, פונקציה זו היא מסובכת. זה לא יעבוד אלא אם תפוקת הפונקציה תוקצה או תשתמש בה בדרך כלשהי. כדי לטפל בכך, יצרתי את המשתנה הזמני _temp.

ב- Sugarcube, משתנים זמניים מתחילים עם קו תחתון (_) במקום דולר ($). הם שימושיים מכיוון שהם נמחקים לאחר הפעלת המעבר, כך שאינך צריך לדאוג לשמות משתנים חופפים.

אני מוחק את חדר השחקן $ גם מרשימת $ roomlist, כמובן כמובן מאליו.

שלב 7: בדיקה

בדיקה
בדיקה
בדיקה
בדיקה

למרות שנוכל להריץ את הקוד כפי שהוא כעת, זו לא תהיה בדיקה יסודית במיוחד. אם נריץ את הקוד ונגלה ש- $ player ו- $ wumpus מוקצים לחדרים שונים, איננו יודעים אם זה בגלל שהקוד עובד, או שזה רק במקרה. בטח, נוכל להריץ את הקוד פעמים רבות, ולהניח שאם זה לעולם לא יקצה לשניהם את אותו החדר שהוא לעולם לא יקבל, אבל זה ייקח לנצח ועדיין לא מובטח במאה אחוז שזה לעולם לא יכול לקרות.

במקום זאת, אנו צריכים דרך לבדוק.

הוספתי שלוש שורות לראש קטע המבוא שלנו שיאפשרו לנו לראות את הערכים של משתני $ wumpus, $ player ו- $ roomlist. בגלל האופן שבו הגדרנו את הקוד שלנו, אנו יודעים שחדר $ wumpus וחדר $ שחקנים צריכים להימחק מרשימת החדרים $.

כאשר אנו מפעילים את הקוד הזה, אנו יכולים לבדוק לוודא שזה המצב.

שלב 8: מוזרות עם קוביית סוכר וחפצים

מוזרות עם קוביית סוכר וחפצים
מוזרות עם קוביית סוכר וחפצים
מוזרות עם קוביית סוכר וחפצים
מוזרות עם קוביית סוכר וחפצים
מוזרות עם קוביית סוכר וחפצים
מוזרות עם קוביית סוכר וחפצים

חפצי קוביית הסוכר מעט מוזרים. תן לי להדגים זאת.

בזמן שבניתי את הפרויקט הזה במקור, רציתי לשמור את רשימת החדרים שלי במשתנה $ saveroom לפני שהתחלתי למחוק ממנו חדרים. הבנתי שזה יהיה שימושי אחר כך.

כאשר קיבלתי התנהגות מוזרה מהקוד הזה, הוספתי שורה נוספת לדף ההקדמה שלי כדי לאפשר לי להסתכל על משתנה $ saveroom שלי (תמונה שנייה).

הייתי המום לגלות שהרכיבים שמחקתי מרשימת החדרים $ נמחקו גם מהרשימה השמורה שלי! אתה יכול לראות זאת בפעולה בתמונה השלישית.

הסיבה לכך היא שכאשר אתה מעתיק מערך כזה, אתה בעצם לא אומר לטוויין להעתיק את המערך, אתה אומר לטוויין ששני המשתנים האלה הם אותו מערך. כאשר אתה עושה משהו למערך באמצעות משתנה אחד, הוא משנה את אותו מערך שהמשתנה השני מסתכל עליו!

נוכל לתקן זאת בעזרת הפונקציה clone ().

שלב 9: פונקציית השיבוט ()

פונקציית השיבוט ()
פונקציית השיבוט ()
פונקציית השיבוט ()
פונקציית השיבוט ()

תוכל לקרוא על הפונקציה שיבוט () בדף התיעוד של קוביית הסוכר.

עותק "רדוד" הוא מה שעשינו בעבר. במקום ליצור עותק מלא של המערך כולו, הוא רק מניח שהמשתנה שלך עובד עם אותו מערך. במקום עותק רדוד, שיבוט () עושה עותק "עמוק", שמתנהג כמו שהיית מצפה. כל אלמנט של המערך מועתק למערך חדש, והוא נפרד לחלוטין מהמקור.

אם נבדוק את הקוד החדש הזה, נגלה שהוא פועל כצפוי.

כמובן, זה לא משנה אם אתה שומר $listlist או לא. לצורך הפרויקט שלי, אני לא מתכוון. כל זה היה רק כדי להדגים עותקים עמוקים לעומת רדודים.

שלב 10: זהו בינתיים

זהו בינתיים!
זהו בינתיים!

הוספנו קוד המאפשר לשחקן שלנו להתחיל בחדר אקראי. בנוסף לכך, חיסלנו באג שבו השחקן יתחיל באותו חדר שבו נמצא הוומפוס.

למדנו כיצד ליצור קישורים ממשתנים וכיצד מטפלים בהעתקת מערך על ידי Sugarcube.

העניינים מתגברים, אבל אנחנו רק מתחילים!

ציד שמח!

מוּמלָץ: