קורס פיתוח מתקדם בפייתון
פרק
>
רמה
אסינכרוני/המתן
קריאת הודעות
מטרה
בדוק שמספר הפריטים במרתף היין נכון באמצעות הפונקציה read() וסכם את המלאי הנותר.
במרתף היין יש מספר תיבות עם בקבוקי יין, אשר מיועדות להעברה למעלה לחלוקה. באולם האחסון, על השולחנות יהיו פקסים עם הזמנות, ולצידם תיבות המכילות את הבקבוקים. עליך לוודא שמספר הבקבוקים בכל תיבה תואם למספר המופיע בפקסים ולהשלים פריטים חסרים.
ראשית, אסוף את הבקבוקים המשתחררים שנמצאים בחדר היין כדי שיהיו ברשותך להשלמת הפריטים החסרים בהזמנות. קיימים שלושה (3) סוגים של בקבוקי יין, ולאחר האיסוף, צור משתנים עבורם כדלקמן: empty_bottles , purple_bottles , yellow_bottles ואחסן את המספר שאספת מכל אחד במשתנים.
לאחר שתקבל את כל הבקבוקים בשטח, עבור אל הסימנים X הבהירים בתוך אולם האחסון ופנה אל הפקסים. השתמש בפונקציית read() לקריאת פרטי ההזמנה על הפקס על ידי הפעלת תיבת קופצת. בדומה לפונקציית write(), הפונקציה read() היא פונקציית async ודורשת await לפני כתיבת הקוד, כך: await player.read().
הממוספרים מקודדים בצבע על פי השטיחים שמתחתיהם, וברגע שתכיר את מספרי ההזמנות, עבור אל הסימנים X הכהים שמול התיבות המקודדות בצבע והשתמש בפונקציית speak() כדי לבדוק את תכולת כל תיבה. קיימים שלושה (3) קבועים התואמים לכל אחת מהתיבות: green_crate , blue_crate ו-red_crate.
וודא שתכולת כל תיבה תואמת לזו של הפקס השייך לשטיח בצבע המתאים. אם קיימים פריטים חסרים בתיבות כפי שמפורט בפקס, הוסף אותם לתיבות המתאימות. צור משתנים: empty_missing , purple_missing ו-yellow_missing והוסף את המספר החסר של כל סוג לתכולת התיבה.
לאחר שהמשתנים הוגדרו, השתמש בפונקציית place() כדי להוסיף את הבקבוקים החסרים לתיבות, לדוגמה: player.place(empty_missing). לאחר שסידרת את כל הפריטים, עבור אל סימן ה-X הזהוב וwrite() את סיכום כל הבקבוקים הנותרים שלא אוחסנו.
טיוטה של ההודעה תיכתב בעורך הקוד, קבע את הכמויות הנכונות של כל הבקבוקים הנשארים שלא אוחסנו על ידי חיסור שני המשתנים שיצרת, לדוגמה: empty_bottles-empty_missing. לאחר שסיכמת את כל הפריטים הנותרים, תסיים את השלב.