#include <RoboSim.hpp>
Classes | |
class | RoboAPIImplementor |
class | SimGridAllyDeterminant |
Public Member Functions | |
vector< vector< GridCell > > & | getWorldGrid () |
int | getOccupantPlayer (const GridCell &cell) const |
RoboSim (int initial_robots_per_combatant, int skill_points, int length, int width, int obstacles) | |
int | executeSingleTimeStep () |
Private Member Functions | |
vector< vector< GridCell > > | getSanitizedSubGrid (int x_left, int y_up, int x_right, int y_down, int player) const |
Static Private Member Functions | |
static Robot_Specs | checkSpecsValid (Robot_Specs proposed, int player, int skill_points) |
Private Attributes | |
vector< vector< GridCell > > | worldGrid |
vector< RobotData > | turnOrder |
int | turnOrder_pos |
Static Private Attributes | |
static const int | WALL_HEALTH = 10 |
static const int | WALL_DEFENSE = 10 |
Definition at line 21 of file RoboSim.hpp.
RoboSim::RoboSim | ( | int | initial_robots_per_combatant, |
int | skill_points, | ||
int | length, | ||
int | width, | ||
int | obstacles | ||
) |
Constructor for RoboSim:
initial_robots_per_combatant | how many robots each team starts out with |
skill_points | skill points per combatant |
length | length of arena |
width | width of arena |
obstacles | number of obstacles on battlefield |
Definition at line 66 of file RoboSim.cpp.
References robot_api::RobotData::assoc_cell, robot_api::Robot_Specs::charge, robot_api::Robot_Status::charge, checkSpecsValid(), Robot::createRobot(), robot_api::Robot_Status::defense_boost, robot_api::EMPTY, robot_api::Robot_Status::health, robot_api::RobotData::invested_assoc_cell, robot_api::RobotData::investedPower, robot_api::NOTHING, robot_api::RobotData::player, RBP_CALL_CONSTRUCTOR, RBP_NUM_PLAYERS, robot_api::RobotData::robot, robot_api::SELF, robot_api::RobotData::specs, robot_api::RobotData::status, turnOrder, turnOrder_pos, robot_api::WALL, WALL_HEALTH, robot_api::RobotData::whatBuilding, and worldGrid.
|
staticprivate |
Definition at line 58 of file RoboSim.cpp.
References robot_api::Robot_Specs::attack, robot_api::Robot_Specs::charge, robot_api::Robot_Specs::defense, and robot_api::Robot_Specs::power.
Referenced by RoboSim::RoboAPIImplementor::finalizeBuilding(), and RoboSim().
|
inline |
Executes one timestep of the simulation.
Definition at line 332 of file RoboSim.hpp.
References Robot::act(), robot_api::RobotData::buffered_radio, robot_api::Robot_Specs::charge, robot_api::Robot_Status::charge, robot_api::Robot_Status::defense_boost, robot_api::Robot_Specs::power, robot_api::Robot_Status::power, robot_api::RobotData::robot, robot_api::RobotData::specs, and robot_api::RobotData::status.
|
inline |
SimulatorGUI needs to see who owns the robots in the cells This is a hack to allow this by downcasting the passed GridCell to SimGridCell and extracting the data.
Definition at line 54 of file RoboSim.hpp.
References robot_api::GridCell::occupant_data, and robot_api::RobotData::player.
Referenced by SimulatorGUI::do_timestep().
|
private |
Helper method to retrieve a sanitized subgrid of the world grid
x_left | left x coordinate (inclusive) |
y_up | smaller y coordinate (inclusive) |
x_right | right x coordinate (inclusive) |
y_down | larger y coordinate (inclusive) |
player | player number |
Definition at line 34 of file RoboSim.cpp.
References robot_api::ALLY, robot_api::GridCell::contents, robot_api::ENEMY, robot_api::GridCell::has_private_members, robot_api::GridCell::occupant_data, robot_api::RobotData::player, robot_api::SELF, and robot_api::GridCell::wallforthealth.
Referenced by RoboSim::RoboAPIImplementor::getVisibleNeighborhood(), and RoboSim::RoboAPIImplementor::getWorld().
|
inline |
This is so SimulatorGUI can get a copy of world
Definition at line 49 of file RoboSim.hpp.
Referenced by SimulatorGUI::do_timestep().
|
private |
Definition at line 44 of file RoboSim.hpp.
Referenced by RoboSim::RoboAPIImplementor::processAttack(), RoboSim(), and RoboSim::RoboAPIImplementor::sendMessage().
|
private |
Definition at line 45 of file RoboSim.hpp.
Referenced by RoboSim::RoboAPIImplementor::processAttack(), and RoboSim().
|
staticprivate |
Definition at line 40 of file RoboSim.hpp.
|
staticprivate |
Definition at line 39 of file RoboSim.hpp.
Referenced by RoboSim::RoboAPIImplementor::finalizeBuilding(), and RoboSim().
|
private |
Definition at line 43 of file RoboSim.hpp.
Referenced by RoboSim::RoboAPIImplementor::charge(), RoboSim::RoboAPIImplementor::getVisibleNeighborhood(), RoboSim::RoboAPIImplementor::getWorld(), RoboSim(), RoboSim::RoboAPIImplementor::scanEnemy(), and RoboSim::RoboAPIImplementor::sendMessage().