Giter VIP home page Giter VIP logo

c-assignment-4's Introduction

משחק מלחמה - שלב א

במטלה זו עליכם לתכנן משחק מלחמה לשני שחקנים על לוח מלבני.

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

רשימת החיילים והיכולות

  • FootSoldier - רגלי - יכול ללכת משבצת אחת לכל כיוון. יורה על החייל של האויב שנמצא הכי קרוב אליו (אם יש כמה - הוא יורה על אחד מהם שרירותית).
  • FootCommander - כמו רגלי, אבל כשהוא זז, לא רק הוא יורה אלא כל החיילים הרגלים של אותו שחקן יורים.
  • Sniper - צלף - יכול ללכת משבצת אחת לכל כיוון. יורה על החייל החזק ביותר של האויב - זה שיש לו הכי הרבה נקודות בריאות (אם יש כמה - הוא בוחר אחד מהם שרירותית).
  • SniperCommander - כמו צלף, אבל כשהוא זז, לא רק הוא יורה אלא כל הצלפים של אותו שחקן יורים.
  • Paramedic - חובש - יכול ללכת משבצת אחת לכל כיוון. לא יורה בכלל, אלא רק מרפא את כל החיילים של אותו שחקן שנמצאים במשבצת לידו (מחזיר את מספר נקודות-הבריאות שלהם למספר ההתחלתי).
  • ParamedicCommander - כמו חובש, אבל כשהוא זז, כל החובשים של אותו שחקן מרפאים את החיילים שנמצאים לידם.

תכונות החיילים

  • FootSoldier: initial health points=100, damage per activity=10.
  • FootCommander: initial health points=150, damage per activity=20.
  • Sniper: initial health points=100, damage per activity=50.
  • SniperCommander: initial health points=120, damage per activity=100.
  • Paramedic: initial health points=100, health per activity=50.
  • ParamedicCommander: initial health points=200, health per activity=100.

מחלקות

בנוסף למחלקות המייצגות את סוגי החיילים השונים, אתם צריכים לממש את המחלקה Board המייצגת את לוח המשחק, בהתאם לכותרת שבקובץ Board.hpp.

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

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

הגשה

כמו תמיד בשלב א יש לכתוב בדיקות-יחידה. הפקודות הבאות צריכות לרוץ בלי שגיאות:

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

כיוון שהמטלה ארוכה מהרגיל, במטלה זו אין צורך לבדוק את כל מקרי-הקצה, אלא רק את הדרישות הבסיסיות.

דגשים

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

מקורות

  • ההשראה למטלה היא ממטלה של גיל לוי בקורס "תיכנות מתקדם" שנת ה'תשע"ז.

c-assignment-4's People

Contributors

erelsgl avatar itamar600 avatar ozmaatuk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.