תרגיל 10 -  Stack B(מתקדם)

מטרת התרגיל לשכלל את תוכנית המחסנית כדי לאפשר משחק מילחמה (ראה הסברים –סעיף 6).
 לשם כך יש להכניס את התוספות הבאות לפרויקט Stack1:

1. הוסף משתנה (member) name   למחלקה  (class)    Stack.    
2. כתוב השיטה (method)      הבאות של  המחלקה    Stack:
        2.1 shuflle() המערבבת קלפים.
  2.2       move(Stack st1, int n)  להזזה של n קלפים  מ-st1 ל-st2
              כאשר הקריאה ל-method מתבצעת כך:
                                st2.move(st1,n);
      2.3  create_full()  מיצרת Stack של חפיסה מלאה.
3. הוסף לפרויקט  Stackמחלקת Game ;
4.  למחלקה Game יש להגדיר את ה-members הבאים:
Hands[2]                     מטיפוס    Stackקלפים עם הפנים למטה – נמצאים בידי 
     השחקן.
Table[2]               	      מטיפוס  Stack  קלפים עם הפנים למעלה.
  Deck                מטיפוס  Stack. 
 
5. למחלקה Game יש להגדיר את ה-methods הבאים:
        5.1  new_game()  המאתחל את המשחק:
               בונה מחסנית   Deck בעזרת create_full(),
               מערבבת  Deck בעזרת shuflle() ,
              מחלקת קלפים לשני משתתפים Hands, כאשר הפנים למטה.
        5.2 round() – בודק מי זכה בסיסוב הזה ומעדכנת את המחסניות של שני
              השחקנים.
        5.3 int winner()  מחזיר את המנצח במשחק.
        5.4  show() מציג את כל הקלפים של שני השחקנים.

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