משחק קלפים משונה מחברת 1

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

מצטרפת לשאלה…

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

לייק 1

אוקי, אני אולי אחכה להעלות את התרגיל למקרה שצוות יענה על השאלה.

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

אם לא כתוב במפורש ליצור פונקציה שעושה משהו, אפשר גם לכתוב בלי פונקציה. אבל נהוג ומומלץ לכתוב בפונקציה - ואפילו לפצל לכמה פונקציות אם יש כמה משימות שצריך לעשות

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

ולכן כדי למקסם את הערבוב - מערביבים את החבילה, ואז מחלקים אחד אחד לשחקנים.
זה נועד נותן לחבילה “ערבוב נוסף” נקרא לזה.

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

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

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

לייק 1

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

לייק 1

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

:smiley: בדיוק ניסיתי להסביר לילדים מה הדרך הנכונה לחלק קלפים

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

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

3 לייקים

צריך לחשוב מודולרי ופונקציונלי. מחר אחד מהשחקנים פורש. איך מחלקים 52 ל-3? אם מחלקים לכל שחקן קלף בתורו, מתקבלת חלוקה “שווה” כלשהי - כמו בחיים. אם מחלקים מראש 13, זה יוצר בעיה.

אבל אמרו שמחלקים ל4, זה משנה לי קצת אם צריך לקחת בחשבון שלא יהיו 4 שחקנים, גם אם לא חילקתי מראש 13 לכל אחד

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

2 לייקים

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

אם לחשוב בצורה אלגוריתמית, אז תמיד להעדיף קוד שיוצר את הקלפים.
ליצור ידנית 52 קלפים זה מעט, אבל מה אם יהיה משחק של 1,000 קלפים?
במקרה כזה הקוד יעבוד - לא משנה כמה קלפים יש. במקרה של הרבה קלפים, זה יחייב המון עבודה.

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

איזה סוג מבנה הוא הכי טוב, זו החלטה שלך ובהתאם לאיך את רוצה לפתור את התרגיל :slight_smile:

2 לייקים

למה?
לא נראה לי שחייב…
אפשר ליצור פשוט מלכתחילה משתנה שיצביע על כל חפיסת הקלפים, לא?

“כל חפיסת הקלפים” - זה סוג של מבנה נתונים כלשהו שאיתו עובדים.

לייק 1

רציתי לכתוב “מלך” אבל זה לא 20 תווים , אז- איזו תשובה נהדרת :slight_smile:

לייק 1