100% Guaranteed Results


Cpp – תרגיל בית מספר 2 Solved
$ 24.99
Category:

Description

5/5 – (1 vote)

נושא: מימוש מונחה- עצמים של משחק הלוח “Alchemize”
הגשה ביחידים

בהצלחה רבה!
תיאור התרגי ל
בתרגיל זה תממשו את משחק האסטרטגיה “Alchemize “. התכנית שתבנו תאפשר משחק בין שני שחקנים אנושיים, תוך
אכיפת חוקיו. מעבר לאתגר התכנותי, המטרה של תרגיל זה הינה תכנות ראשון בקורס בשפת C++ כשפה מונחית עצמים.
“Alchemize”: הגדרות משחק
Alchemize הוא משחק אסטרטגיה לשני שחקנים. המשחק בנוי על לוח בגודל N*N. המשחק זמין אונליין כא ן
השחקנים הם בצבע אדום וכחול, וכל שחקן בתורו מניח שיקוי בצבע של ו. משבצת המכילה שיקוי לא יכולה להשתנות יותר.
שחקן יכול להניח שיקוי על משבצת פנויה בלבד .כאשר מניחים שיקוי ,נוצרים קריסטלים בכל משבצת שנוגעת בשיקוי החדש שהונח וגם נוגעת בשיקוי בצבע של השחקן השני. בנוסף, כל משבצת שנוגעת בשיקוי ה חדש שהונח וגם נוגעת בשיקוי בצבע של השחקן הנוכחי תושח ר.
משבצת שהושחרה יצאה מהמשחק ולא תוכל להשתנות יותר.
המשחק נגמר כאשר הלוח מתמלא, והמטרה של כל שחקן היא לאסוף כמה שיותר קריסטלים ולהביס את הירי ב.
השחקן האדום משחק תמיד ראשון.
חוק 1 : משבצת הנוגעת בשיקויים של שני שחקנים שונים תצבע בצבע השחקן שהניח את השיקוי שיצר זאת.
)בדוגמה השחקן האדום התחיל(

חוק 2: משבצת הנוגעת בשיקויים של אותו שחקן תושחר ותצא מהמשחק.

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

פורמט והנחות עבודה
• על התכנית להדפיס את מצב הלוח לאחר כל מהלך. פורמט ההדפסה יהיה מטריצה המבוססת על צירופי התווי ם
{O, X, R, r, B, b}
o ‘O’ – משבצת ריק ה o ‘X’ – משבצת מושחר ת o ‘R’ – שיקוי של השחקן האדום o ‘B’ – שיקוי של השחקן הכחול.
o r” – קריסטל של השחקן האדום o ‘ b ‘ – קריסטל של השחקן הכחו ל

התווים יופרד ו באמצעות טאב) tab( בין ערכי שורת הלוח, והפרדה של n” בין כל שתי שורות בלוח.
בכל שלב לפני הדפסת הלוח יש להדפיס את מספר הקריסטלים שיש לכל שחקן.
להלן פלט תקין של לו ח

Red count: 0 Blue count: 2
O O O O O O O O
O O O O O O O O
O O O O O O O O
O O O R b O O O
O O O b B O O O
O O O O O O O O
O O O O O O O O
O O O O O O O O

• לאחר קומפילציה של התכנית, התכנית תדפיס לוח ריק ותדפיס בקשה להזנת קלט מהשחקן הראשון R :
“R: ”
• המשתמש יזין את הקלט )שני מספרים שלמים מופרדים ע”י רווח(
• במידה והקלט לא תקין )חורג מגבולות הלוח או משבצת שאינה פנויה המערכת תדפיס הודעת שגיאה “Invalid row/col index or non free cell ” ותדפיס בקשה נוספת להזנת קלט מהשחק ן )ללא הדפסת הלוח בשנית(

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

• בכל תור לאחר הלוח תדפיס המערכת הודעת בקשה להזנת קלט מהשחקן שמשחק כעת) R: “” עבור השחקן האדום ו – B: “” עבור השחקן הכחול.(

• בתום המשחק, התכנית תכריז על המנצח, למשל:
Blue won
• במידה והמשחק מסתיים בשיווין יש להדפיס The game ended with a tie

גודל הלוח יועבר כארגומנט קלט בעת הרצת התוכנית. במידה ולא הועבר גודל הלוח או שהועברו ארגומנטים נוספים על
“Invalid run arguments; run the game with board size. ” התוכנית להדפיס את הודעת השגיאה
דגשי ם
• יש לתכנן מראש את מבנה התכנית, להקפיד על תיאור מונחה-עצמים, ולהגדיר בהתאם את המרכיבים איתם תעבדו.
• יש לתכנת באמצעות רכיבי C++ ולא באמצעות פונקציות C.
• יש לכתוב את חמשת הגדולים עבור כל המחלקות שתכתבו. או להסביר מדוע ברירת המחדל )במקרה וקיימ ת( מספיקה.
• בתרגיל בית זה אין להשתמש בספריית STL; מבני הנתונים והאלגוריתמים צריכים להיות ממומשים על-ידיכם.
• עליכם לוודא כי התכנית עוברת קומפילציית g++ התואמת את הקומפיילר שעל שרת החוג ללא כל שגיאות או אזהרות
כלשהן, ורצה בהצלחה.
• עליכם לתעד את הקוד באמצעות הערות המתארות בקצרה את המחלקות והפונקציות השונות.
• יש להריץ את הבודק האוטומטי על שרת החוג בטרם ההגשה בכדי לוודא תאימות ונכונות של ההגש ה: hwcheck
הגש ה
עליכם להגיש במערכת Moodle קובץ ארכיב מטיפוס zip בלבד, ששמו כולל את קוד הקורס )‘44’(, שם התרגיל
)’2‘ex( ותעודת הזהות של הסטודנט/ית המגיש/ה, מופרדים בקו תחת י בפורמט הבא:
. 44_ex2_studID.zip •
על ארכיב zip זה להכיל את כל קבצי המקור )ממשק/מימוש( הנדרשים לקומפילציה, והוא רשאי להכיל תיעוד טקסטואלי; מבחינת טיפוסי קבצים, עליו לכלול רק קבצים עם סיומות *.cpp *.h *.txt •
לדוגמה: על סטודנט שמספר הזיהוי שלו הינו 012345678 להגיש ארכיב בשם _ex2_012345678.zip44 הכולל את כל קבצי המקור של הפרויקט, ללא תיקיות כלשה ן, ורשאי להכיל קובץ טקסטואלי לתיעוד. •
אי -הקפדה על ההנחיות, כולל פורמט ההגשה הדיגיטלי, תגרור הורדה בציון התרגיל.
לא תתקבלנה הגשות באיחור!

Reviews

There are no reviews yet.

Be the first to review “Cpp – תרגיל בית מספר 2 Solved”

Your email address will not be published. Required fields are marked *

Related products