קדימה אני כבר מתה לפתח משהו שיעזור לי להוכיח שהקוביות של אלעד מזויפות! אז איך אני מתחילה??
יסמין
כמובן אמרנו שנרצה להשוות בין הקובייה שלו לקובייה הוגנת…
דורון
…ואמרנו שצריך להטיל את הקובייה שלו הרבה פעמים, אני זוכרת! אבל איך?
יסמין
כאשר רצינו להטיל קובייה הוגנת השתמשנו ב-random במחשב. אבל עכשיו אנחנו נרצה להטיל קובייה כלשהי - זה לא אותו דבר.
דורון
אז איך נשתמש במחשב בשביל להטיל קובייה מסוימת?
יסמין
למזלנו יש לנו רובוט שיודע להטיל קובייה! הוא מעביר לנו כל פעם את הפאה שהתקבלה, ומה שנשאר לנו לעשות זה לבדוק את התוצאות. תראו משהו דומה:
https://www.youtube.com/watch?v=UdA5ydENTHY
דורון
אז מה תכלס המערכת שלנו תעשה?
המערכת צריכה לבדוק את הקוביות החשודות של אלעד.
אנחנו כבר יודעים שלבדוק = להטיל מלא מלא פעמים (ולהשוות לקובייה הוגנת).
כאמור למזלנו יש לנו רובוט חביב שיודע להטיל בשבילנו!
בשביל להפעיל את הרובוט נקרא לפקודה roll_tested_dice, ואז הרובוט יטיל את הקובייה פעם אחת ויחזיר לנו מהי הפאה שהתקבלה.
הפקודה roll_tested_dice (=הטלת קובייה נבדקת) מקבלת מספר אחד בסוגריים:
-
מספר מזהה של הקובייה (לכל קובייה ניתן מספר שיזהה אותה, למשל הקוביות של אלעד הן קוביות 1 ו-2)
המערכת שלנו צריכה לקלוט מהמשתמש שני מספרים: את המספר המזהה של הקובייה, וכמה פעמים יש להטיל אותה.
המערכת תטיל קובייה זו לפי מספר הפעמים המבוקש (כלומר תבקש מהרובוט להטיל…), ותצייר לנו בגרף את התוצאות.
אוקי הבנתי את ההטלה, אבל מה עם ההשוואה לקובייה הוגנת?
יסמין
למען ההשוואה, לגרף יש להוסיף גם קו אופקי, בגובה שבו היינו מצפים לראות את כל העמודות - אם הקובייה הנוכחית היא הוגנת. ככה נוכל לראות בקלות האם הקובייה הוגנת או לא - האם העמודות שלה מגיעות כולן לאיזור הקו שציירנו, או שלא…
כלומר - אפשר לחשוב על הקו הזה כמשהו שמחליף את העמודות של הקובייה ההוגנת.
דורון
בשביל ציור הקו הכירו פקודה חדשה: add_expected_line (=הוספת קו מצופה).
הפקודה מקבלת מספר אחד בסוגריים:
-
גובה הקו בציר ה-Y
לסיום המערכת תדפיס הודעה האם הקובייה הוגנת או לא. יש להדפיס שהקובייה אינה הוגנת אם:
-
פאה מסוימת התקבלה 0 פעמים
-
פאה מסוימת התקבלה ביותר מ-1/4 מההטלות
אחרת יש להדפיס שהקובייה הוגנת.
שימו לב כי אם הטילו את הקובייה מעט פעמים אז כמובן אין לסמוך על התוצאות וכדאי להדפיס אזהרה בנושא! אפשר למשל להתייחס ל-500 כמספר הטלות מספק לצורך קביעה על הקובייה במערכת שלנו.
כדי שהמערכת תהיה יפה וכייפית לשימוש, מוזמנים ומוזמנות להוסיף להדפסות גם גיפים מתאימים באמצעות הפקודה show_gif :)
דורון