קליטה של 2 פרמטרים- משחק איקס עיגול

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

row, col = input(f"Player ‘{player_char}’ Please choose cell: ")

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

שנית: זו יותר שאלה לסגל, אבל לדעתי עדיין לא השתמשנו בכתיב כזה row, col לשמירת ערכים, אבל מגניב שזה אפשרי!

איזה טריק מגניב ! לא ידעתי שזה אפשרי

אכן לא השתמשנו :slight_smile:
מדבר על זה במחברות של שבוע הבא.

לייק 1

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

אז האם זה תקין?
אפשר להשאיר כך את האינפוט?

הרמז פה הוא שבמחרוזת גם רווח הוא תו, וככזה את יכולה להפעיל עליו פעולות של מחרוזות ולטפל בו כראות עינייך. יש כל מיני מתודות שמאפשרות לך את זה במחברת 5 שבוע 2.

ז"א “0 1” זו מחרוזת שאת יכולה לקבל ממשתמש דרך אינפוט.

מה שהטריק שעשית עושה זה לחלק את האיבר הראשון ב־iterable ל־row, ואת האיבר השני ל־col.
מהסיבה הזו התוכנית שלך תקרוס אם תכניס כל דבר שאינו 2 תווים, ולדעתי זה פחות מוצלח בנסיבות האלו.

תודה על המענה. אתקן למחרוזת :slight_smile:

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

יש מצב, לא קראתי אותו לאחרונה.
אני רק אומר שזה טריק “לא בריא” במקרים האלו, ושאם נצטרך מחר להרחיב טיפה את התוכנית זה סתם יהיה מבאס.
במקרים של וידוא קלט אני באופן אישי ממליץ לא להתקמצן ולכתוב כמה שורות שעושות את העבודה. זה לא דורש הרבה מהמתכנת וכבר יש לכם את הידע לדאוג לזה :slight_smile:

לייק 1

פליקס זה נכון שזה לא הוגדר ספציפית פה אבל זה אכן מצב אפשרי, אני אישית עשיתי בדיקה עבור כל אופציה לא אפשרית (סתם כדי לאתגר את עצמי)