#include "mygrid.h" int find(int v,int map[][2],int NM) { for(int i=0; i < NM; i++) if(v==map[i][0]) return i; return -1; } void Grid_Show(ostream &out,int grid[_NR][_NC],int NR,int NC,int map[][2],int NM) { int i; for(int r=0;r=0) out << char(map[i][1]); else out << grid[r][c]; } out << endl; } } void Grid_Load(int grid[_NR][_NC],int &rStart,int &cStart, int &rFinish, int &cFinish, int &NRows, int &NCols) { int row=0,col=0; char c=0,cPrev=0; while((c = getchar())!=EOF) { if((row > _NR-1) || (col > _NC-1)) { stringstream ss; ss << "Out of Bounds!!! Max:" << _NR << "x" << _NC; throw exception(ss.str().c_str()); } cPrev=c; switch(c) { case '0': case '1': { grid[row][col++] = atoi((const char *) &c); break; } case '2': { rStart=row; cStart=col; grid[row][col++]=0; } break; case '3': { rFinish=row; cFinish=col; grid[row][col++]=0; } break; case '\n': if(col>0) {row++;NCols=col;col=0;} break; default: grid[row][col++] = 1; } } if(row > 0 && (cPrev!='\n')) row++; NRows=row; }