road.cpp

/*

Programmer: Jennifer Leopold Date: November 7, 2015

File: road.cpp

Purpose: Implementation file for the Road class

*/

#include "road.h"

#include <iostream>

using namespace std;

Road::Road()

{

m_width = INIT_WIDTH;

for (int i = 0; i < MAX_WIDTH; i++)

m_sectors[i] = EMPTY;

}

void Road::placeCar(const int carWidth,

const int leftmostCarPosition,

const char mark)

{

int endPosition;

if ((carWidth < 0) || (carWidth >= MAX_WIDTH))

endPosition= 0;

else endPosition = leftmostCarPosition + carWidth - 1;

for (int i = 0; i < MAX_WIDTH; i++)

if ((i >= leftmostCarPosition) && (i <= endPosition))

m_sectors[i] = mark;

else m_sectors[i] = EMPTY;

return;

}

ostream& operator << (ostream& outs, const Road& r)

{

for (int i = 0; i < r.m_width; i++)

outs << "|" << r.m_sectors[i];

outs << "|\n";

return(outs);

}