diff options
author | RossTheRoss <msattr@gmail.com> | 2019-03-31 19:35:55 -0500 |
---|---|---|
committer | RossTheRoss <msattr@gmail.com> | 2019-03-31 19:35:55 -0500 |
commit | 489c2406e8c70f4115eb260f793452ed78d18636 (patch) | |
tree | 100ec10c4d0387647c728a52f3ea2f7144021dac /ee1301/wk5/hw5_directory | |
parent | Rearrange (diff) | |
download | homework-489c2406e8c70f4115eb260f793452ed78d18636.tar homework-489c2406e8c70f4115eb260f793452ed78d18636.tar.gz homework-489c2406e8c70f4115eb260f793452ed78d18636.tar.bz2 homework-489c2406e8c70f4115eb260f793452ed78d18636.tar.lz homework-489c2406e8c70f4115eb260f793452ed78d18636.tar.xz homework-489c2406e8c70f4115eb260f793452ed78d18636.tar.zst homework-489c2406e8c70f4115eb260f793452ed78d18636.zip |
Start HW
Diffstat (limited to 'ee1301/wk5/hw5_directory')
-rw-r--r-- | ee1301/wk5/hw5_directory/maze.txt | 10 | ||||
-rw-r--r-- | ee1301/wk5/hw5_directory/mazeRunner_v1.cpp | 104 |
2 files changed, 114 insertions, 0 deletions
diff --git a/ee1301/wk5/hw5_directory/maze.txt b/ee1301/wk5/hw5_directory/maze.txt new file mode 100644 index 0000000..cd95590 --- /dev/null +++ b/ee1301/wk5/hw5_directory/maze.txt @@ -0,0 +1,10 @@ +WWWW-O-WWW +---W------ +--WWWWWW-W +---------- +WWWWWWWWW- +---------- +-WW-WW-WW- +---------- +WW-WW-WW-W +X---------
\ No newline at end of file diff --git a/ee1301/wk5/hw5_directory/mazeRunner_v1.cpp b/ee1301/wk5/hw5_directory/mazeRunner_v1.cpp new file mode 100644 index 0000000..8e6c3ee --- /dev/null +++ b/ee1301/wk5/hw5_directory/mazeRunner_v1.cpp @@ -0,0 +1,104 @@ +#include <iostream> +#include <fstream> +#include <string> +using namespace std; + +const char BLANK = '-'; +const char ROBOT = 'X'; +const char GOAL = 'O'; +const int screen_num_lines = 25; +const int lengthX = 10; // for now we only support square boards +const int lengthY = 10; // it "should" work with non-square, YMMV +// Board is described by the following coordinate system: +// 0 --> +X +// | +// | +// V +// +Y + +void initBoard(char board[lengthX][lengthY], int &xPos, int &yPos); +void clearScreen(); +void showGrid(char board[lengthX][lengthY]); + +bool hasChar(char board[lengthX][lengthY], char findMe); +void updateGrid(char board[lengthX][lengthY], int &xPos, int &yPos, char action); + +int main() +{ + char board[lengthX][lengthY] = {0}; + int xPos = 0, yPos = 0; + + initBoard(board, xPos, yPos); + + while(hasChar(board, GOAL)) + { + char action; + clearScreen(); + showGrid(board); + cout << "Where would you like to go? (l, r, u, d) " << endl; + cin >> action; + + updateGrid(board, xPos, yPos, action); + } + + clearScreen(); + showGrid(board); + cout << "You found the cookie! Congratulations!\n"; + + return 0; +} + +void initBoard(char board[lengthX][lengthY], int &xPos, int &yPos) { + for(int curRow=0; curRow < lengthY; curRow++) { + for(int curCol=0; curCol < lengthX; curCol++) { + board[curCol][curRow] = BLANK; + } + } + + board[0][0] = GOAL; + board[lengthX/2][lengthY/2] = ROBOT; + + xPos = lengthX/2; + yPos = lengthY/2; +} + +bool hasChar(char board[lengthX][lengthY], char findMe) { + for(int curRow=0; curRow < lengthY; curRow++) { + for(int curCol=0; curCol < lengthX; curCol++) { + if(board[curCol][curRow] == findMe) { + return true; + } + } //end curCol loop + } // end curRow loop + + return false; +} + +void clearScreen() { + for(int i = 0;i<screen_num_lines;i++) { + cout << endl; + } +} + +void showGrid(char board[lengthX][lengthY]) { + for(int curRow=0; curRow < lengthY; curRow++) { + for(int curCol=0; curCol < lengthX; curCol++) { + cout << board[curCol][curRow]; + } // end curCol loop + cout << endl; + } // end curRow loop +} + +void updateGrid(char board[lengthX][lengthY],int & xPos, int & yPos,char action) { + board[xPos][yPos] = BLANK; + if (action == 'l' && xPos > 0) { + xPos--; + } else if(action == 'r' && xPos < lengthX - 1) { + xPos++; + } else if(action == 'u' && yPos > 0) { + yPos--; + } else if(action == 'd' && yPos < lengthY - 1) { + yPos++; + } + board[xPos][yPos] = ROBOT; +} |