מלחמה

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

דוגמאות לפעולת המחלקה ניתן למצוא ב-Demo.cpp.

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

כיתבו את כל הקבצים הדרושים כך שהפקודות הבאות יעבדו ללא שגיאות:

make demo && ./demo
make test && ./test

מומלץ גם להריץ:

make tidy
make valgrind

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

בהצלחה