×
Reviews 4.9/5 Order Now

Create a Program to Implement Riders of Fortune Game in C++ Assignment Solution

July 15, 2024
Professor Mitchell
Professor Mitchell
🇺🇸 United States
C++
Professor Mitchell is a renowned educator with a master's degree in software engineering from Stanford University. With over 700 completed orders, he excels in teaching and implementing object-oriented programming concepts in C++, ensuring students grasp fundamental principles effectively.
Key Topics
  • Instructions
  • Requirements and Specifications
Tip of the day
Break your Python assignment into smaller tasks and test each part separately. Use meaningful variable names, write comments for clarity, and leverage built-in functions to simplify your code.
News
In 2025, JetBrains Fleet 2.0 introduced AI-powered code completion, while VS Code added advanced AI-driven bug detection and coding assistants, enhancing programming efficiency.

Instructions

Objective

Write a C++ assignment program to implement riders of fortune game.

Requirements and Specifications

program to implement riders of fortune game in C++
program to implement riders of fortune game in C++ 1

Source Code

#ifndef board_h #define board_h #include #include #include #include "Location.h" using namespace std; class Board { public: // Create the board Board() { for (int row = 0; row < 8; row++) for (int col = 0; col < 8; col++) if (col == 0 || col == 7 || row == 0 || row == 7) _grid[row][col] = '*'; else _grid[row][col] = ' '; // Put the graveyards put('G', Location(getHeight() / 2 - 1, getWidth() - 1)); put('G', Location(getHeight() - 1, 0)); // Put the cathedrals put('C', Location(0, getWidth() - 1)); put('C', Location(getHeight() - 1, getWidth() - 1)); // Put the wells put('W', Location(0, getWidth() / 2)); put('W', Location(getHeight() - 1, getWidth() / 2)); // Put the exit put('E', Location(getHeight() / 2 - 1, 0)); } // Return what's in the location char explore(const Location &location) { if (location.getRow() < 0 || location.getRow() >= 8 || location.getColumn() < 0 || location.getColumn() >= 8) return '\0'; return _grid[location.getRow()][location.getColumn()]; } // Getter methods int getWidth() const { return 8; } int getHeight() const { return 8; } // Put an object into the grid void put(char c, const Location &loc) { if (loc.getRow() < 0 || loc.getRow() >= 8 || loc.getColumn() < 0 || loc.getColumn() >= 8) return; _grid[loc.getRow()][loc.getColumn()] = c; } // Return a string representation of a board string toString() const { stringstream ss; for (int r = 0; r < 8; r++) { for (int c = 0; c < 8; c++) ss << _grid[r][c] << " "; ss << endl; } return ss.str(); } private: char _grid[8][8]; }; #endif

CHARACTER

#ifndef character_h #define character_h #include #include #include #include #include "Location.h" #include "Weapon.h" using namespace std; enum Alignment { GOOD, EVIL }; class Character { public: // Construct the character Character() : _hp(100), _xp(0), _bagCapacity(5), _bagSize(0), _turns(0) { _bag = new string[_bagCapacity]; } // Clear used pointers ~Character() { delete[] _bag; } // Setter methods void setTurns(int turns) { _turns = turns; } void setHP(int hp) { if (hp > 100) hp = 100; else if (hp < 0) hp = 0; _hp = hp; } void setAlignment(Alignment alignment) { _alignment = alignment; } void setXP(int xp) { _xp = xp; } void setLocation(const Location &location) { _location = location; } // Getter methods int getTurns() const { return _turns; } int getHP() const { return _hp; } int getXP() const { return _xp; } vector getWeapons() const { return _weapons; } Location getLocation() const { return _location; } Alignment getAlignment() const { return _alignment; } // Return items in bag vector getBag() const { vector theItems; for (int i = 0; i < _bagSize; i++) theItems.push_back(_bag[i]); return theItems; } // Put item to pag void addToBag(const string &item) { // Extend the bag's capacity if out of sace if (_bagSize >= _bagCapacity) { int capacity = _bagCapacity + 5; string *bag = new string[capacity]; for (int i = 0; i < _bagSize; i++) bag[i] = _bag[i]; delete[] _bag; _bag = bag; _bagCapacity = capacity; } _bag[_bagSize++] = item; } // Put in a weapon void addWeapon(const Weapon &weapon) { _weapons.push_back(weapon); } // Atempt to apply item to character string applyItem(const string &item) { int position = -1; for (int i = 0; i < _bagSize; i++) { if (_bag[i] == item) { position = i; break; } } stringstream ss; if (position == -1) { ss << item << " is not in your bag."; } else if (item == "Potion 1") { _hp += 5; ss << "Used " << item << " 5 HP recovered."; } else if (item == "Potion 2") { _hp += 10; ss << "Used " << item << " 10 HP recovered."; } return ss.str(); } // Remove an item from bag void deleteItem(const string &item) { int position = -1; for (int i = 0; i < _bagSize; i++) { if (_bag[i] == item) { position = i; break; } } if (position == -1) return; for (int i = position; i < _bagSize - 1; i++) _bag[i] = _bag[i + 1]; _bagSize--; } // Find if character has item bool hasItem(const string &item) const { for (int i = 0; i < _bagSize; i++) if (_bag[i] == item) return true; return false; } // Find the weapon in the player's inventory bool hasWeapon(const Weapon &weapon) const { for (unsigned i = 0; i < _weapons.size(); i++) if (_weapons[i] == weapon) return true; return false; } // Return a string representation string toString() const { stringstream ss; ss << "HP : " << _hp << endl; ss << "XP : " << _xp << endl; ss << "Turns : " << _turns << endl; ss << "Weapons: " << "Stick"; for (int i = 0; i < (int)_weapons.size(); i++) ss << ", " << _weapons[i].name; ss << endl; ss << "Bag : "; for (int i = 0; i < _bagSize; i++) { ss << _bag[i]; if (i + 1 < _bagSize) ss << ", "; } return ss.str(); } private: int _hp; int _xp; int _bagCapacity; int _bagSize; int _turns; Location _location; Alignment _alignment; vector _weapons; string *_bag; }; #endif

ENEMY

#ifndef enemy_h #define enemy_h #include #include #include #include "Weapon.h" using namespace std; class Enemy { public: // Create the enemy Enemy() { _xp = (rand() % 10) + 1; _hp = (rand() % (_xp * 5)) + 1; switch (rand() % 5) { case 0: _weapon = Weapon("Crossbow", 3); break; case 1: _weapon = Weapon("Flail", 5); break; case 2: _weapon = Weapon("Broad Sword", 8); break; case 3: _weapon = Weapon("Morning Star", 13); break; case 4: _weapon = Weapon("Holy Staff", 21); break; } } // Setter methods void setHP(int hp) { _hp = hp; } // Getter methods int getHP() const { return _hp; } int getXP() const { return _xp; } Weapon getWeapon() const { return _weapon; } // Return a string representation string toString() const { stringstream ss; ss << "HP: " << _hp; return ss.str(); } private: int _hp; int _xp; Weapon _weapon; }; #endif

LOCATION

#ifndef location_h #define location_h class Location { public: // Create a location Location() : _row(0), _col(0) { } // Create a location Location(int row, int col) : _row(row), _col(col) { } // Setter methods void setColumn(int col) { _col = col; } void setRow(int row) { _row = row; } // Getter methods int getColumn() const { return _col; } int getRow() const { return _row; } Location getLeft() const { return Location(_row, _col - 1); } Location getRight() const { return Location(_row, _col + 1); } Location getUp() const { return Location(_row - 1, _col); } Location getDown() const { return Location(_row + 1, _col); } // Compare if locations are the same bool operator == (const Location &location) const { return _row == location._row && _col == location._col; } private: int _row; int _col; }; #endif

Similar Sample

Explore our C++ assignment samples to witness firsthand the quality and expertise we bring to programming education. Our curated examples cover diverse topics, showcasing our commitment to clarity, precision, and practical application in C++ programming. Whether you're a student or professional, these samples illustrate our proficiency in delivering top-notch solutions tailored to your learning needs.